ソフトウェアエンジニアの仕事ってなんだ?
#日記 に書こうとしたけどうまくまとまらなくて下書きのまま放置していた内容 #仕事 #労働 ボツ原稿として公開
前提: 自社プロダクト開発での話
定期的に #エンジニア の仕事はなにかで議論になったり炎上していたりする コードを書くことだとか、あるいはそうではないとか
僕は芸術家ではなくて会社員なので、コードを書くこと、 #ソフトウェア を作ることを目的にはしてない それを目的にする才能があったら会社員という生き方を選ばない
ビジネスがうまくいく方策、お金が自分の所属企業に入るためにはどうすればいいのかを考えている
資本主義自由市場経済のもとで生きているから
個人としてはイデオロギーを大切にしているが、お金のためならいつでも投げ捨てる程度の信念
だけど現実問題いいものが売れるわけではない
Google でさえいいものを作れば生き残るってわりとナイーブなこと書いている
How Google Works という本
ある程度までは真実かも
でもコンセプトがいいから売れるわけではないし
でもアーキテクチャをよくしたから売れるわけではない
コードがきれいかどうかなんてユーザーにとってはマジでどうでもいい
最初に「売る」という壁を突破するのにはソフトウェアのコンセプトや質とは異なるファクターが間違いなくある
一方でひとたび売るという壁を突破すると、ソフトウェアの質は重要になってくることがある
コードの質、アーキテクチャの質については売れてからじゃないと議論する意味があまりない。
売れた場合は、ユーザー数やデータ数に応じてアーキテクチャを改善しないとユーザー体験が悪くなる
売れた場合は、コードの品質も上げないと機能追加が難しくなっていく
営業には新規顧客を作る(売る)という使命がある
カスタマーサクセスには既存顧客に活用してもらい、更なる売り上げ向上へと導く使命がある
結局ソフトウェアの品質に貢献することしかできない
当たり前品質の向上
下記に書くのは一般論
早さ
ページのローディングとか基本的には早ければ早いほどいい
コア機能の安定性
TODOリストを謳っているのに TODO の作成でエラーが出るとか、とてもじゃないけどやってられない
驚きの少ないUI
魅力品質の向上
ソフトウェアに応じて何が付加価値なのかが変わるので一概に言いづらい
TODOリストの例
コモディティ化しすぎてて今となっては当たり前な気もするけど
ラベルつけして整理しやすい
プロジェクト分けて管理できる
僕らの使命は品質向上を通じてプロダクトの魅力を向上させ、売り上げをあげること
今はそう考えている
一方でどんなことをすれば品質があがるのかは自明ではない
新規顧客を獲得したい場合、クライアントによってNG要件が異なる
売り上げアップを図りたい場合、クライアントによって条件が異なる
クライアントの声を知っているのはたいていソフトウェアエンジニアではない
品質をあげるために何をすればいいのかは実はソフトウェアエンジニアに情報はない
情報がある場所
商談の場
カスタマーサクセスのオンボーディングの場
カスタマサポートへの問い合わせ
プロダクトのデータ分析基盤
Google Analytics とか
どうやるかではなく何をするかを決めるのが難しい
プログラミングをする、コードを書く、はどうやるかの領域でしかない
本当に難しいところに立ち向かえる人間になりたいなと思っている
結局いつも通りのお気持ち表明にしかならなかった