非凡な才能でコードを書くエンジニアだけではリリースできない

プロダクトをリリースするためにはコードを書くエンジニアが必要だ。できれば非凡で卓越したエンジニアであれば機能的なコードを書いてくれるに違いない。

でも、群を抜いたコードを書くエンジニアが必ずしもリリースできるとは限らないのがマネージャとしては気になるところだが、一歩引いて客観的に見ると面白いところでもある。

1つ目の理由は、エンジニアからコードが手離れするまで安定しない。この安定しないとは、だいたい期待する納期をオーバーランすると言う意味だ。非凡な才能を持っているなら他のエンジニアより早くリリースしてくれると期待してしまうかもしれないが、現実にはそうならない。

それはタスクを渡す側にも選ぶエンジニア側にも理由がある。タスクを渡す側は他のメンバでは完了の見込みが立たないテーマをアサインしたがるし、非凡な才能を持つエンジニアも面白みのあるテーマを選ぶ。ここは一致するがなにせ難易度の高いテーマになりやすいため、結果的に見通しが怪しくなる。

その観点では、最初からリリース日に間に合わない仕事の仕方をしているのかもしれない。

さらにリリースに間に合わなくしている理由がもう1つある。それは、難しいテーマがあるとチームの中で無意識に非凡なエンジニアがやってくれるのだろうという暗黙のルールが出来上がってしまうというものだ。

これは非常に拙い習慣だ。ただ、こうしたことは回避しようと思えば回避できる。それはメンバにはタスクを1つしか渡さないというルールを作ることと、原則、テーマのアサイメントはメンバに選ばせるか、そうなるような場づくりをすることだ。もちろん、技術的に不足しているエンジニアが担当になる場合はサポート体制でフォローしないと終わらないままでリリース日を迎えることになるため、マイルストーンやモニタリングは欠かせない。

2つ目の理由は、如何にコードを書いて実現するかに関心を持っているので、結果に、よりフォーカスしてコードを書く。集中して自分のペースで仕事をするから納期に合わせたコードにしない。

結果的にリリースのスケジュールを気にすることもない。納期に間に合うのかと聞けば、多分とはぐらかされてしまうが守られることは滅多にない。

自分のペースで仕事をするのは何も非凡な才能のエンジニアに限ったことではないから、他のエンジニアと同じように毎日進展を確認する他ない。それよりは、コードに集中できるような環境づくりをして集中させたほうが良い。

 

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)