納期に間に合いそうにないので、エンジニアを急いで増やす。よく取られる対策ですが、思ったように進みが早くならない、かえって遅くなった、ということがよくあります。
ソフトウェア開発の世界では、「遅れているプロジェクトに人を足すと、さらに遅れる」という経験則が、1970年代から知られています。人を増やすことそのものが悪いわけではありませんが、増やし方を誤ると逆効果になります。
なぜ遅くなるのか
教える時間がかかる
新しく入った人は、システムのことを知りません。教えるのは、今いるメンバーです。教えている間、今いるメンバーの作業は止まります。何人も同時に入れば、その分だけ教える時間も増えます。
やり取りが増える
人数が増えると、確認や相談のやり取りが増えます。3人のチームと10人のチームでは、話し合いが必要な組み合わせの数がまったく違います。全員が集まる打ち合わせも長くなります。
仕事を分けにくい
開発の仕事は、いつでもきれいに分けられるとは限りません。同じ部分を何人もが同時に触ると、作業がぶつかって、かえって手戻りが増えます。
増やす前に確かめること
本当に人が足りないのか
遅れの原因が、人手不足ではないこともあります。何を作るかが決まっていない、確認が遅れている、技術的な問題で詰まっている。こうした原因なら、人を増やしても解決しません。
新しい人に任せられる仕事があるか
ほかの部分と独立していて、システムの全体を知らなくても進められる仕事があるか。そうした仕事がなければ、人を増やしても待ち時間が増えるだけです。
迎える準備ができているか
アカウント、資料、開発の環境を作る手順。迎える準備ができていないと、入った人は最初の数週間を空回りして過ごします。
うまく増やすための工夫
段階的に増やす
一度に何人も入れるのではなく、一人ずつ、または少人数ずつ増やします。前に入った人が慣れてから次の人を迎えると、教える負担が分散されます。
小さなチームに分ける
人数が増えたら、担当する範囲ごとに小さなチームに分けます。チームの中でやり取りが完結すれば、全体の打ち合わせは減らせます。
範囲を絞る
人を増やすより、納期までに作る範囲を絞るほうが効くことも多くあります。何を先に作り、何を後に回すかを決め直すのは、人を増やすより早く効果が出ます。
| 遅くなる理由 | うまく増やす工夫 |
|---|---|
| 教える時間がかかる | 一人ずつ、段階的に増やす |
| やり取りが増える | 担当する範囲ごとに小さなチームに分ける |
| 仕事を分けにくい | 増やすより、作る範囲を絞る |
早めに動く
人を増やすなら、遅れが大きくなってからではなく、計画の段階で必要な人数を見込んでおくのが一番です。納期の直前に増やしても、慣れる前に納期が来てしまいます。
開発体制の見直しを外部に相談するなら、遅れが目に見える前のほうが、取れる手が多く残っています。
