今回は「助っ人の教育」をテーマに、『追加人員の教育』と『早期戦力化』を同時に実施する最良の方法について詳しく解説する
大混乱プロジェクトに人員を追加すると、「ブルックスの呪い」のため、必ず遅れが拡大します。ブルックスの呪いの正体は、「コミュニケーション・パスの急激な増加」「助っ人の教育」「作業の再配分」の3つです。前回「『ブルックスの呪い』から逃れるために」では、この中で「コミュニケーション・パスの急激な増加」に対する対処法を述べました。
今回は、最も厄介な「助っ人の教育」に正面から切り込んでいきたいと思います。
大混乱しているプロジェクトに人員を投入した瞬間、どんなことが起きるのでしょうか? おそらく、日本中で次のような会話が交わされているに違いありません。
熊谷(プロジェクト・マネージャ) 「先週の全社工程会議で最低20人欲しいといったら、専務があちこちの開発部署に声を掛けてくれて(※1)、家電ソフトウェア第1開発部から5、6人出してくれるらしい。1時半にその連中が来るからそろそろだな……。阿波君、その人たちの面倒を見てやってよ。オレ、いまから事業部工程会議(※2)に行かなきゃならないんで」(といいながらノートをつかんで席を立つ)。
阿波(サブ・マネージャ) 「あっ、熊谷さん。どんなレベルの人が来るんですかね? それと、足りないエンジニアはどうするんですか?」。
熊谷 「レベル? うーん、よく分からん。足りない分は、ボチボチ出してもらえるはずだよ(※3)。まあ、よろしく頼むわ」(と飛んでいく)。
――やがて1時半になり、5人のエンジニアが到着。
中野(家電ソフトウェア第1開発部のエンジニア) 「あの、『家ソ1』の中野ですけど、ここへ1時半に来いといわれまして……。熊谷さんいらっしゃいますか?」。
阿波 「熊谷さんは事業部工程会議に行きました。今度、お手伝いいただく『家ソ1』の方ですね。よろしくお願いします。熊谷さんからお話は聞いています」(といいながら、使えそうなヤツかどうか5人を値踏みし、『こいつらハズレだろうなぁ。イイやつは出してくれないものね』とガッカリするも、『でも、何かの役には立つだろう』と気を取り直す)。「ところで、これまでFAX機器のソフトウェア開発を担当された人はいますか?」。
中野 「この蜷川(にながわ)君は、メール・サーバの開発経験がありますが、あとの4人は通信系ははじめてですね」。
阿波 「(“やっぱりね”とガッカリしながら(※4))分かりました。では、このプロジェクトの概要を説明しますんで、会議室へ移動してください」。
――ゾロゾロとプロジェクトの真ん中を突っ切って5人は会議室に向かう。3日は帰宅していないようなエンジニア連中が必死にソースコードとにらめっこしている様子を見て、“来週はオレたちもああなるんだなぁ”と5人は暗い気分になる……。会議室で、1時間にわたり、阿波がプロジェクトの状況や開発しているFAX機器の機能の概要を説明する。
阿波 「……というわけなんですが、5人ともFAX機器の開発経験がないということなんで、まずは、仕様書を読んで、大ざっぱな機能を理解してください(※5)。分からないところがたくさんあると思いますが、何でも質問してもらって構いません(※6)。いまから仕様書をコピーしてきます。それと、5人分の机がないので、大至急用意しますが(※7)、それまで申し訳ないんですが、ここで作業をしてください」(といい残して、会議室を出ていく)。
高橋 「パソコンがすぐにはもらえないのか。ちょっと不便だね。オレ、メールをチェックしなきゃいけないんで、『家ソ1』に戻るわ」。
蜷川 「じゃあ、オレも」。
――かくして、1週間が無駄に過ぎるのであった……。
経験したことのないソフトウェアを開発する場合、「仕様書を読めば機能が分かる」ことはあり得ません。まして、ソースコードを渡して、「ロジックを追い掛けて」とお願いしてもそんなことは不可能です。
上記のケースのように、助っ人の受け入れ態勢がまったく整っていない状況では、投入人員が戦力になるには数カ月かかるでしょう。助っ人の教育に取られる工数を最小限にし、かつ、投入人員の効果を早急に出す最善の方法が「デバッグの支援」です。
前回のコラム「『ブルックスの呪い』から逃れるために」でも書きましたが、プロジェクトが混乱するのはデバッグ工程以降です。デバッグ工程は、テスト項目がきちんと設計されていれば、追加されたエンジニアを最も効率よく使える工程です。
以下に、テスト項目をまじめに作っているプロジェクトで、追加人員の教育と、早期戦力化を同時に実施する最良の方法を示します。
上記のステップが成功するかどうかは、質の良いテスト仕様書、テスト項目をきちんと作っているかどうかに掛かっています。高品質のテスト・ドキュメントができているようなプロ集団のまじめなプロジェクトは、当たり前ですが大混乱はしません。まともなテスト項目を設計していないからこそ、プロジェクトの遅れが後工程にならないと分からず、どうしようもなくなって、爆発してしまうのです……。
テスト項目をきちんと設計していないプロジェクトは、デバッグがどこまで完了したのか、定量的に把握できていないはずです。テスト項目の総数が分からず、何パーセント終わったか測定できません。そんな混沌プロジェクトでは、人員投入をする前に、すべての作業をやめて以下を実施する必要があります。
テスト項目の設計は、対象ソフトウェアの「操作説明書」をベースにして、助っ人に作成してもらうことも可能ですが、テスト項目をキチンと設計していないプロジェクトにまともな「操作説明書」があるとは思えません。
世の中の工業製品で、唯一、品質基準や安全基準が存在しないのがソフトウェアです。実際のソフトウェアの品質制御では、テスト項目の設計が非常に重要ですが、品質管理だけでなく、リスク管理や遅延回復でも、テスト項目をちゃんと設計しているかどうかが非常に重要な鍵になるのです。(次回に続く)
Copyright © ITmedia, Inc. All Rights Reserved.