先日、僕が大好きでリスペクトしてるソフトウェアエンジニアさんたちと意見交換会(呑み会)中にソフトウェアエンジニアの信用と信頼について話題になったのでメモ。
僕が「このソフトウェアエンジニアは信用できる」っていうのはどういう指標がありますか?って質問した時に出た意見としては
- コードに対して何らかの貢献をしている
- 新規プロダクトの開発など
- OSSのメンテナンスなど(パッチを送るなど)
- 自分の持つプロダクトに対する反応など
が出てきた。
これらのような「良質なアウトプット」を定期的に行う頻度も大事だよねという感じ。
なるほど、確かにって思ったのだけど更にその中で良質なアウトプットとは何かという話題になった。
ソフトウェアエンジニアの属性
ソフトウェアエンジニアには得手不得手がある。
言語だったりレイヤーだったりで好き嫌いも含めて得手不得手がある。
更にもっと言えば「プロダクトの成長段階」でも得手不得手がある。
例えば
- 0から1にする
- 1を100にする
- 100を10000にする
- 10000を維持する
これらは全て別々のスキルだ。
そしてどれも重要な役割である。
とある人の話でその人は0から1を作るのが得意であった。
とても手が早いし、作るプロダクトの目の付け所が素晴らしい。
しかしその人は「プロダクトのメンテナンスをするつもりが全くない」という特性があった。
だからその人が作るプロダクトに対して会社としてその他の人たちを雇用してアサインする。
その結果、そのプロダクトは世界的に使われるOSSとして評価されている。
どの属性のソフトウェアエンジニアが凄いか
0から1を作り出すソフトウェアエンジニアは凄い。
では他のフェーズを担当するソフトウェアエンジニアはどうなのだろう?
結論、どのフェーズを担当するソフトウェアエンジニアも凄い。
前述にも言ったがそれぞれは別のスキルなのである。
そしてそれぞれのフェーズで適切な成果、アウトプットを出せることがその人の価値なのである。
もちろん複数フェーズを担当できる人もいるし、前述のような0を1にするのがとても得意な人もいる。
重要なことは自分が何が得意でその分野において評価されるアウトプットの有無なのである。
どうやってアウトプットし、信頼を獲得するか
上記をまとめると
- 自分の得意なレイヤー、フェーズのことを深掘りする
- 得意なことをアウトプットする
- アウトプットを定期的に行うことでその人の実力であったり、価値観が共有される
- その結果、その分野において「この人は信用できる」
となるという話だ。
なので0から1をしたり1を100にするのが得意な人はプロダクトやツールのコードを書くと良い。
100を10000や維持するのが得意な人はOSSの世界でパッチを送ったりすると良い。
アウトプットはそれ以外にも
- 良質な情報を発信する
- 良質なサービスを開発する
- 良質なチームを作り出す
- 良質なコミュニティを作り、育て、運営する
なども含まれる。
この 良質 はコード同等に難しい、だからこそ評価されるのである。
そーだいなるアウトプット
僕はソフトウェアエンジニアとしての評価としてはそれほど高くないと自認している。
天才的なアイディアがあるわけでもない。
しかしそれでもエンジニアとして自分がアウトプット出来ることはある。
そしてそれがみんなの信頼を勝ち取れる内容になるように品質を高める必要がある。
例えばJPUGの活動もMackerelというサーバ監視サービスを世に広める事もそうだ。
日本PostgreSQLユーザ会 | 日本PostgreSQLユーザ会
そういうことが僕の出来るエンジニアリングだ。
それ以外のRDBみたいな僕が得意なところも含めて貢献していきたい。
それを継続することがエンジニアの信用を勝ち取るってことに繋がると思ってる。
エンジニアの信頼を勝ち取ることはなぜ必要か?
そもそもなぜ、エンジニアの信用を高め、信頼を勝ち取る必要があるのだろうか。
それは一人で出来ることは限界があり、
- やりたいことを実現する
- 問題を解決する
これらをするためにはとても必要な事だからだ。
例えば自分が1を100にするのが得意な場合、0から1を作るのが得意な人が必ず必要だ。
逆も然りでプロダクトを大きく、サービスが成長すればするほど一人で出来ることの限界とぶつかる。
我々エンジニアは世の中の問題を解決するために何かを生み出し、成長させて問題を解決してその報酬として対価を得ている。
つまり大きな問題を解決するためには一人では限界がある。
だからこそみんなの力を借りるためにも信頼されたエンジニアで有る必要があるのだ。
まとめ
エンジニアの信用を高め、信頼を勝ち取るには良質なアウトプットを繰り返し行うことに他ならない。
そして何かを達成するためにはエンジニアの信頼が必要だ。
エンジニアにとって「信頼される」というのはやりたいことを実現するため、問題を解決するためにはとても必要な事でその信頼ゲージは継続的な良質なアウトプットによって貯まるので僕は頑張ろうって気持ちになりました。
— そーだい@初代ALF (@soudai1025) 2017年5月20日
だからこそ定期的に良質なアウトプットする。
このエントリーはそれを行うという決意表明である。