アプレッソというベンチャー企業の CTO を務めて6年と2ヶ月になる。変化の激しいベンチャーに比較的長い期間身をおいていたので、社内外のいろいろなタイプのエンジニアと仕事をしてきた。 あるエンジニアが参加することで開発チームが短い期間で大きく変わったこともあったし、開発チームのメンバーが15人いた頃よりも、お互い補い合えるエンジニアが5人くらいの頃の方が成果が出たりすることもあった。

そういう経験を重ねていくにつれ、私の中では、スターエンジニアと呼べる人たちの持っているものについての、いくつかの類型ができてきている。今まで一緒に仕事をしていく中で本当に心強かったのは、最近エンジニアのキャリアパスの議論でよく言われるような財務のわかるエンジニアとか営業もできるエンジニアではなく、あるいは人と異なるユニークな能力を身に付けようとしているエンジニアでもなかった。ではどういうエンジニアが、ということを自分の中で整理するためにも、臨機応変性とか先進性とか、私が今まで出会ってきたスターエンジニアの要素について、このところずっと考えてきた。その内容をまとめたものが次の表である。

分類 能力
風のエンジニア 迅速な設計/実装によってチームを加速させる風のエンジニア。
風のエンジニアがいない開発チームでは、他に先駆けて新製品やサービスをリリースすることが困難になる。
林のエンジニア 突発的なトラブルが発生しても冷静に対処し、チームに乱れぬペースを提供する林のエンジニア。
林のエンジニアがいない開発チームはトラブル発生時に何をすべきかの正確な判断を行えず、混乱に陥りやすい。
火のエンジニア 新しい技術/方法/ツールの積極的な導入によってチームやその成果物の競争力を高める火のエンジニア。
火のエンジニアがいない開発チームは同じやり方を繰り返すことはできるが、進歩する機会が少ない。
山のエンジニア 厳密なエラーチェックと堅牢なプログラミングによって成果物の安定性を高める山のエンジニア。
山のエンジニアがいない開発チームは常に品質の低さからくる不安にさいなまれる。

私が重要だと思う要素を並べてみると、上の表のように、風の要素、林の要素、といった具合に、風林火山のそれぞれの要素とマッピングできる。

傾向として、風と火の要素は一人のエンジニアの中に共存しやすく、林と山の要素も一人のエンジニアの中に共存しやすい。風または火のエンジニアに足りないものを、林または山のエンジニアは補ってくれることが多い。そして、どんなスター・エンジニアでも、これらすべての要素において人より優れたオールマイティーなエンジニアになることはとても難しい。

自分とチームの他のメンバーについて、それぞれの要素について自己評価または相互評価を行い、説明つきで◎、○、△、×をつけてみると色々と見えてくるものがある。

また、個人だけでなく、開発チームのメンバーそれぞれについて上のような表を作成し、チーム全体としてどこが弱いのかということを考えていくと、個人のスキルセットの今後を考えるだけでなく、チームとしてのスキルセットのこれからを考えていく上での一つの手立てとなるのではないかと思う。


達人プログラマー―システム開発の職人から名匠への道
アンドリュー ハント デビッド トーマス
Andrew Hunt David Thomas 村上 雅章
ピアソンエデュケーション (2000/11)
売り上げランキング: 6,120
おすすめ度の平均: 4.22
5 初級PGから上級PGになるための本
4 SEの基本が書かれてます
5 達人エンジニアになる方法