納期に間に合いそうにないので、エンジニアを急いで増やす。よく取られる対策ですが、思ったように進みが早くならない、かえって遅くなった、ということがよくあります。

ソフトウェア開発の世界では、「遅れているプロジェクトに人を足すと、さらに遅れる」という経験則が、1970年代から知られています。人を増やすことそのものが悪いわけではありませんが、増やし方を誤ると逆効果になります。

なぜ遅くなるのか

教える時間がかかる

新しく入った人は、システムのことを知りません。教えるのは、今いるメンバーです。教えている間、今いるメンバーの作業は止まります。何人も同時に入れば、その分だけ教える時間も増えます。

やり取りが増える

人数が増えると、確認や相談のやり取りが増えます。3人のチームと10人のチームでは、話し合いが必要な組み合わせの数がまったく違います。全員が集まる打ち合わせも長くなります。

仕事を分けにくい

開発の仕事は、いつでもきれいに分けられるとは限りません。同じ部分を何人もが同時に触ると、作業がぶつかって、かえって手戻りが増えます。

増やす前に確かめること

本当に人が足りないのか

遅れの原因が、人手不足ではないこともあります。何を作るかが決まっていない、確認が遅れている、技術的な問題で詰まっている。こうした原因なら、人を増やしても解決しません。

新しい人に任せられる仕事があるか

ほかの部分と独立していて、システムの全体を知らなくても進められる仕事があるか。そうした仕事がなければ、人を増やしても待ち時間が増えるだけです。

迎える準備ができているか

アカウント、資料、開発の環境を作る手順。迎える準備ができていないと、入った人は最初の数週間を空回りして過ごします。

うまく増やすための工夫

段階的に増やす

一度に何人も入れるのではなく、一人ずつ、または少人数ずつ増やします。前に入った人が慣れてから次の人を迎えると、教える負担が分散されます。

小さなチームに分ける

人数が増えたら、担当する範囲ごとに小さなチームに分けます。チームの中でやり取りが完結すれば、全体の打ち合わせは減らせます。

範囲を絞る

人を増やすより、納期までに作る範囲を絞るほうが効くことも多くあります。何を先に作り、何を後に回すかを決め直すのは、人を増やすより早く効果が出ます。

急に人を増やすと遅くなる理由と工夫
遅くなる理由 うまく増やす工夫
教える時間がかかる 一人ずつ、段階的に増やす
やり取りが増える 担当する範囲ごとに小さなチームに分ける
仕事を分けにくい 増やすより、作る範囲を絞る

早めに動く

人を増やすなら、遅れが大きくなってからではなく、計画の段階で必要な人数を見込んでおくのが一番です。納期の直前に増やしても、慣れる前に納期が来てしまいます。

開発体制の見直しを外部に相談するなら、遅れが目に見える前のほうが、取れる手が多く残っています。