システム開発プロジェクトで協力企業に仕事を依頼する場合、どのように作業を指示しているだろうか。契約形態が「一括請負契約」であれば、発注仕様書に基づいて、後は全て相手の会社にお願いするという方法になるだろうが、「準委任契約」「業務委託契約」「派遣契約」ではそうはいかない。一括請負契約の場合は成果物責任があるが、それ以外の契約だと成果物責任が無いので、作業の進め方を曖昧にしていると高い生産性を期待できない。
小規模システムのPMを任されたAさんの場合
Aさんはこれまで幾つかのプロジェクトにメンバーとして参画してきた。Aさんのキャリアパスを考えた会社が、そろそろステップアップをと考え、今回、小規模のシステム開発プロジェクトのPMを任せることになった。
これまでAさんが携わってきたプロジェクトはいずれも数百人月クラスの大規模プロジェクトで、開発フェーズを協力企業に一括発注することが多かった。だが、今回のプロジェクトは小規模で、参画するメンバーはAさん以外に若手社員のK君と、協力企業の技術者4人の合計6人である。
詳細設計以降について一括請負で発注することも考えたが、規模が小さいことや、期間が比較的短いこと、また先輩PMからの助言もあり、協力企業と業務委託契約を結んで開発することにした。協力企業への指示については、契約書に従って今回常駐するメンバーの中で最年長であり、同社の指揮命令権者であるBさんに対して行うことになった。
要件定義・基本設計と順調だった。ここまでのフェーズは何度も経験しており、Aさんは特に悩むことなく自信を持って采配をふるったのだった。基本設計のレビューも終了し、いよいよ詳細設計フェーズとなった。Aさんにとっては未知のフェーズの始まりである。これまでは詳細設計以降を協力企業に任せ、その間、テスト仕様書の作成、週次の進捗管理、顧客向け・社内向け報告資料の作成、収支状況のチェックといった事務方の作業をすることが多かった。
しかし、今回は現場のまっただ中に立たされている。いろいろと考えた揚げ句、Aさんの出した結論はこうだ。「現場の真ん中にいたとしても、事務方の作業が無くなるわけではない。従って、ここからのフェーズはBさんに任せ、自分はこれまで通りに行おう。ただし、K君には経験を積ませるために、○○機能を担当してもらおう。さすがに1機能くらいなら一人でも十分なはずだ」――。
AさんはBさんに次のような指示を出した。「詳細設計以降は、Bさんの会社のメンバーを中心に基本設計に沿って実装してください」。また、K君に対しても「○○機能について一人で詳細設計から単体テストまでを完了させるように」と指示したのだった。その後プロジェクトはAさんの指示通り、Bさんの会社のメンバー主体で進んで行く。K君もまた、試行錯誤しながら○○機能の作成に取り組んでいった。
Aさんは、進捗会議のたびにBさんから提出される成果物を必ず確認し、その都度自分の考えに合わない箇所については修整するよう指摘した。しかし実装フェーズに入ってしばらくたつと、進捗状況が悪化していった。進捗会議のたびにAさんが指摘する事項が手戻りとなって積み重なっていたからだった。
これを知ったAさんはBさんに対して、「早急に遅延を回復するように」と指示した。そして「もっと利用者のことを考えて実装してください」と付け加えた。一方、K君はというと、こちらも数日の遅延を起こしていた。そのため、Aさんは、K君に対しても「何とか遅延を取り戻すように」と指示した。
しかしその後進捗状況は一向に回復しない。それどころかK君に至っては遅延が拡大している。心配になったAさんは、Bさんに対してK君の担当箇所を手伝うように指示し、結合テスト開始までには遅延を取り戻すように指示を出したのだった。
しばらくしてAさんは、K君が自分の担当する箇所の実装ではなく、別の箇所の単体テストを行っていることを知る。手伝いに入ったBさん配下のメンバーが、K君の作った成果物に対して「これじゃ使い物にならない」と、手戻りを承知で作り直しているからだった。
そのため、プロジェクト全体としての遅延はさらに大きくなっていた。それどころか、Bさんからは「プロジェクトの納期を1カ月ほど延期してもらえませんか?」と相談されてしまったのである。
これを聞いたAさんは驚き、すぐに自分の上司に報告した。そして、Bさんの会社の営業担当者を呼び出し、責任問題について話し合おうとした。だが、上司から「業務委託契約ならばBさんにも、その会社にも成果物責任は無いよ。全ては君の責任だ。すぐに対策会議を開く準備を進めなさい」と言われてしまったのである。