最初に整理した各種問題点を解決するためには、委託先選定後にプロジェクトの初期段階で、委託先との合意を十分に吟味してしっかりと行うことが最も重要です。
外部委託プロジェクトでは、作業範囲や納品成果物、要求する品質などに変更が生じた場合に、内部のプロジェクトのように柔軟に合意内容の変更を行いにくい場合が多くなります。
参加者の皆さんの組織が、どのような項目に関して合意しているのかを紹介します。
|
納品物や納期、技術面の環境などは確実に合意していることかと思います。上記の中から明確に合意するのが難しい「作業の委託内容(範囲)」に関して、もう少し掘り下げてみます。
・納品成果物は最初の段階ですべてを明確にできないので、常に変更が発生する
・プロジェクト全体での成果物一覧表を作成し、社内と委託先で担当割りする ・委託先が作成した成果物のレビューを、どちら側が実施するのかを決めている ・“設計書の提出は後でもいいよ”などと、プロジェクトの状況によりテーラリングしている ・変更の発生時に、自責と他責の線引きが難しい |
||||
ここでは、社内のプロジェクトと同様に、できる限り作業内容を分割し、分割した作業ごとに委託部分を明確にすることが必要です。
社内のプロジェクトは基本的な作業工程、作業項目はある程度標準化されているのではないでしょうか。その標準化された作業の階層構造(WBS)を委託先と共有し、作業範囲を明確にするのがよいでしょう。
さらにその中で課題となるのは、委託先に仕様を提示し、設計以降の作業を依頼する場合などで、詳細な仕様をすべて提示することができず、行間を読みながら設計、実装を行うような場合です。そのような場合に、委託先はどこまで明確に仕様を提示しなければならないか。また、委託される側は仕様に記述されていないことを、どこまで盛り込まなければならないのか。この辺りの意識の共有が大変難しくなります。
委託する側もされる側も、この部分に曖昧(あいまい)さがあることを認識しています。ですが、作業範囲を明確に線引きすることは大変難しいことです。委託先に提示する仕様を詳細に記述する場合とそうでない場合で、委託元と委託先のそれぞれでメリットとデメリットがあります。作業の開始時に委託先と腹を割って議論し、共通の認識を持つように心掛けてください。
次に、委託先からの「納品物の品質」に関して考えてみます。まず、品質に関する参加者の皆さんの意見を挙げます。
・ソフトウェア成果物を定期的にもらうが、テストケースが明らかに足りていない不具合が発生する
・委託先に最終的なテストを実施してもらい、結果を確認後にハードグループに渡すが、不具合の報告がよく発生する ・不具合による手戻りで、最終納期に遅れてしまう ・テストでは何とかOKとなるが、プログラムの中身を見てみるとグチャグチャ |
||||
4つ目の意見は、「保守性や移植性」などに関しての意見ですが、それ以外は受け入れてからの不具合の発生に関しての意見になります。ただし、具体的な品質に関する数値などの定量的な意見ではありませんでした。これは、ソフトウェアを受け入れてから安定稼働するまでに、“感覚的に”不具合が多く発生しているという理由からだと考えられます。
この問題を解決するためには、委託先に対して納品物の品質基準を提示する必要があります。これは大変難しいことで、参加者の皆さんの組織では「そこまで実施できていない」とのことでした。
納品物の品質に関する要求は、内部での品質確保と同様に、委託先に依頼する工程ごとに、作業の規模や特性などから、レビューで発見すべき指摘数、テストでの不具合数などの基準を提示します。そして、その基準に収めることや、収まらなかった場合は、乖離(かいり)の理由と対処を明確に示すことなどを要求に盛り込み、合意します。
委託する側の組織で基準を明確にしなければならないので、基準を提示し合意することは簡単に実施できることではありません。まずは、過去実施したプロジェクトの規模データ、不具合データなどを蓄積・分析し、委託先に対する基準を導き出してみてください。
最後に、進捗状況、課題、質問などの「プロジェクトの管理」に関して、どのような合意を行えばよいかを考えてみます。
最初に委託先で詳細なスケジュール作成し、提出してもらう | ||||
作業の進捗状況は週ごとに報告をしてもらう | ||||
問題点が発生した場合は、メールなどで随時報告するように依頼している。必要であれば緊急で会議などを実施している | ||||
これらは、外部委託プロジェクトの管理プロセスを定義して、委託先と合意をしてください。まず、工数などは除き可能な範囲で委託先の作業内容を明確にしてもらうことが重要です。その作業の粒度によって、進捗を報告してもらう間隔を合意するのがよいと思います。理想的には、1つの作業内容を40時間(1週間)以下で明確にしてもらい、週1回で報告をしてもらうのがよいでしょう。また、委託先の過去の実績によっても報告の間隔を調整してみてください。
委託先で発生している課題の共有方法、お互いの質問事項のやりとり、委託元からの要件変更や委託先からの依頼事項のやりとり方法なども明確にして、合意しておいてください。
外部委託プロジェクトの管理は状況が直接見えにくいので、内部でのプロジェクトに比べてQCDを確保することが難しくなります。しかし、コストをはじめとしたメリットも多く、企業、組織が存続するためには避けては通れません。
ソフトウェア開発の外部委託を少しでも成功に近づけるために、自分たちが“何を手に入れたいのか”の目標をしっかりと持ち、その目標を達成するために、監視しなければならない項目をブレークダウンし、委託先との間で“何を取り決めておかなければならないか”を、しっかりと深掘りしてみてください。
外部委託プロジェクトの成功には、委託する側でも仕様の明確化など、取り組まなければならないことも多くあります。簡単に達成できることではないと思いますが、開発エンジニアの皆さんが深く考えれば、必ず効果は表れますので、ぜひ、外部委託プロセスの構築に取り組んでみてください。(次回に続く)
|
Copyright © ITmedia, Inc. All Rights Reserved.