【サイボウズ式編集部より】
この「ブロガーズ・コラム」は、著名ブロガーをサイボウズ外部から招いて、チームワークに関するコラムを執筆いただいています。今回は、日野瑛太郎さんによる「プロジェクトの遅延とチームの人員追加の関係」について。
プロジェクトにはトラブルが付き物です。すべてが予定通りに進むプロジェクトなんてほとんどないと言ってよいでしょう。
相次ぐトラブルのせいでスケジュールが予定より大きく遅れてしまった場合、それはどのようにすれば取り戻せるのでしょうか。誰でも思いつく一番単純な方法は、残業や休日出勤などで労働時間を伸ばすことです。しかし、これは必ずしもいい方法とは言えません。普段の2倍の時間働いたからと言って、2倍のアウトプットが出せるようには普通なりません。休みなく働けば、それだけメンバーは疲弊し、チーム内の雰囲気も悪化します。残業の常態化は生産性の低下に直結します。そう安々と使うべき手段ではありません。
それに、残業や休日出勤で巻き返せる範囲には限界があります。それでも間に合わないとなれば、次に考えられるのは「追加人員の投入」です。時間が増やせないなら、人を増やせばいい――素朴に考えると、これは正しいように思えます。
しかし、本当にこれでいいのでしょうか? 賢明な方はもうお気づきだと思いますが、このやり方は最悪です。追加人員の投入は、遅れを巻き返すどころか、時にはさらにプロジェクトを遅らせることになるかもしれません。
人月の神話
アメリカの計算機科学者フレデリック・ブルックスの著書『人月の神話』には、「ブルックスの法則」というとても有名な法則が出てきます。
"「遅れているソフトウェアプロジェクトへの要員追加は、プロジェクトをさらに遅らせる」
この法則が成り立つ理由は以下の2点から説明されます。
まず、プロジェクトに新規で追加された人員は、すぐに活躍できるわけではありません。実際に新入りがチームに貢献できるようになるためには、ある程度キャッチアップのための時間が必要です。時には、新入りの教育のために既存のメンバーが時間を割かなければならなくなることもあるでしょう。また、まだプロジェクトに十分慣れていない段階では、新入りがミスを犯して逆に進捗を遅らせる懸念もあります。
また、人員の追加はそれだけでチーム内のコミュニケーションコストを増加させます。人が増えれば増えるほど、それだけ協調して仕事をするのが難しくなります。人員追加による労働力増加の恩恵を受ける以前に、プロジェクト遂行の煩雑さが増えてしまうのです。
この「ブルックスの法則」は、「9人の妊婦を集めても、1ヶ月で赤ちゃんを出産することはできない」という比喩によって説明される場合もあります。この説明からもわかるように、プロジェクトのアウトプットは単純なチーム内労働力の足し算で計算できるものではありません。「遅れを取り戻すためにとりあえず人を増やそう」という考え方は、足し算できないものを足し算で済ませようとしているという点で、誤りなのです。
『人月の神話』が最初に刊行されたのは1975年で、今から約40年前です。もはや古典の領域に入っている本ですが、未だに「ブルックスの法則」は過去のものになっていません。僕も会社員時代、納期を守るために無理な人員追加を行って逆に返り討ちにあうような例を何度か目にしてきました。これは歴史ある、とても根深い問題なのです。
もし、あなたのチームのリーダーが「人が足りない!」と言い出したら、どういう意図で発言しているのかよく確かめたほうがよいでしょう。単純にスケジュールを挽回するつもりでそう言っているのだとしたら、それは非常に危険な発想だと言うことができます。
「ブルックスの法則」をどう克服するか
「ブルックスの法則」がある以上、原則として遅れているプロジェクトの火消し目的で追加人員の投入を行うことはすべきではありません。納期厳守に現実的に対応するのであれば、人を増やすのではなく仕様を削る方向によって対応すべきです。いたずらに人を増やすだけでは、かえって傷口が広がりかねません。
とはいえ、それはあくまで理想論です。「間に合わないので、仕様を削ります」と言って、そのまますんなり同意が得られることはまずないでしょう。実際には、人員投入という選択で押し切られてしまうことも多いものです。
どうしても追加人員の投入が行われる場合には、以下の3点に留意しなければなりません。
まず第一に、日頃から可能な限りチーム内の業務を標準化しておくことです。社内やチーム内でのみ独自に使用されているツールや言語ではなく、広く一般的に普及しているツールや言語を日頃の業務から使うようにしておけば、助っ人のスキル次第で立ち上がりが早くなります。一方で、業務が標準化されていないと、どんなに優秀な人を投入しても立ち上がりに時間がかかってしまいます。
第二に、チーム内の独自ルール・知識などは日頃からドキュメント化・マニュアル化を心がけることです。これがないと、新しい人が入る度にコミュニケーションが生じます。同じことを、何度も何度も新人が入るたびに説明するのは時間の無駄ですし、誰だってうんざりするに違いありません。ドキュメントやマニュアルを作るのは面倒ですが、一回作ってしまえば何度も同じことを繰り返さなくて済むようになります。
第三は、助っ人には、とびきり優秀な人を選定することです。忙しい時に、「猫の手も借りたい」なんて表現を使ったりすることがありますが、遅れたプロジェクトを立て直すのに猫の手では明らかに不足です。存在しない情報は豊富な経験によって補完でき、チームに投入されたらすぐに自力で立ち上がれるような本当に優秀な人でなければ追加人員としては役にたちません。とりあえず手が開いている暇なだけな人や、新人を投入するなどはもってのほかです。適当に助っ人を選定すると、レッドブルやリポDを買いに行ってもらうぐらいしかやってもらうことがなくなります。
いずれも言うのはまだ簡単ですが、実際にやるとなると非常に難しいものばかりです。プロジェクトの内容は必ずしも標準化できるようなものばかりではありませんし、ドキュメントやマニュアルもメンテナンスを怠るとすぐに情報が古くなり、使えなくなります。プロジェクトが火を吹いた時に、そんなに簡単に優秀な追加人員が確保できれば苦労しません。今日もどこかで、効果の薄い人員の追加投入が行われているプロジェクトがあることでしょう。
基本的に、プロジェクトが遅れてから人員の追加を考えるようでは遅いということです。チーム内で「人が足りない」という声が上がりはじめた時には、もう既に病状はかなり悪化していると思わなければなりません。
日野瑛太郎さんより
普段は「脱社畜ブログ」というブログで、日本人の働き方の記事を書いています。このブロガーズ・コラムでは、チームワークという観点から働き方について新たな視点を提供できればと思っています。
(サイボウズ式 2014年6月 9日の掲載記事「「人が足りない!」と気づいた頃にはもう手遅れ、スケジュールの遅れはどうすれば取り戻せるか」より転載しました)
イラスト:マツナガエイコ