システム開発では、プロジェクト管理における受注者と発注者との認識の相違が、トラブルの大きな要因になる。開発方法やテスト方法、検収の条件などを、両者合意の上で、契約に明記する必要がある。また、双方のプロジェクト管理者が開発途中の意思決定に責任を持つことを徹底しなければならない。

 システム開発におけるプロジェクト管理は、システム開発契約の履行過程を構成するプロセスである。ユーザー企業がシステムを自社開発するときはもちろんのこと、ソリューションプロバイダに外部委託する場合には、特に重要なプロセスである。だがそのプロジェクト管理に問題があることが少なくなく、システム開発において発注者と受注者間で発生するトラブルの大きな要因の1つになっている。

 受託開発におけるプロジェクト管理の重要な目的は、システムの仕様書に定めた目的、機能を持つシステムを、スケジュール通りに開発し、最終納品テストに合格した完成品を納期までに発注者に引き渡すことだ。システム開発は、何カ月にもおよぶ長い期間と、それに応じて相当のコストを要するプロジェクトである。開発期限と予算を守って効率的に完了するには、プロジェクトの管理方法を事前に明確にしておくことが必要で、発注者、受注者の双方で、それらを事前に合意しておくことが不可欠となる。

システム開発とテスト方法を契約条項に盛り込む

 プログラム開発手法はその1つだ。大規模なプログラムを開発する際には、開発期間を短縮し、バグの発見、修正を容易にすために、プログラムをモジュール単位に分けて開発することが必要になる。開発するプログラムのモジュールごとに、開発の順序や時期、テストなどの開発過程をスケジュールしておく。

 また、プログラムが完成したときのテスト方法も、重要な合意事項である。複数のプログラムモジュールで構成される単体プログラムごとに単体テストを実施し、さらに複数の単体プログラムを一括した統合テストを実施する。統合テストは、通常の商品の納品検査に相当するテストである。完成したプログラムと既存システムとの親和性や統合性をテストすることも必要となる。

 この過程で、最もトラブルが起きやすいのは、統合テストの方法が、発注者と受注者の双方で適切に合意できていない場合だ。テスト方法やテストデータの内容、およびテスト期間などに関しては、事前に詳細な合意をしておく必要があるが、明確な合意がないばかりに、統合テストの段階で、検収する、しないといった対立が生じるのだ。

 よく問題になるのは、テストデータを誰が用意して、誰がテストを実施するかだ。開発の過程でテストが進むと、実データに準じた複雑なデータを使ってテストする必要が出てくる。このとき、ユーザー側は受注者がデータを用意してテストを実施するものだと考えるし、ソリューションプロバイダの側は、実データを基にするのであれば、ユーザーが当然用意すべきだと考える。事前の合意できていないために、深刻なトラブルにつながることがあるのだ。

 上記のようなプロジェクトの管理手法は、極めて合理的なものであり、多くの開発で一般的に行われていることである。だが、それについて法律の規定がある訳ではなく、それに関する慣習法が形成されているとも言い難い。契約書にその条項を盛り込んで、初めて両当事者を拘束し得るものである。

 トラブルを避けるためには、開発手法や開発手順、開発過程における諸々のチェック事項、チェック方法、チェックのために使用するデータ、既存ソフトとの整合性に関する責任範囲、検査合格基準、不合格だった場合の責任の帰属決定方法などを事前に明確に合意し、システム開発契約の契約条項の一部として盛り込んでおかなければならない。

 開発委託契約に合致する開発だったかどうかを評価する究極の手段は、民事訴訟手続き、または民事調停である。だが、裁判官や民事調停の調停委員が、システム開発のトラブル要因を的確に理解できるとはいえず、システム開発関係の紛争を訴訟・調停・仲裁などの方法で満足に解決できる期待は非常に低いのが現状である。その現状に照らしても、事前の詳細な合意に基づく契約が極めて重要なのである。

プロジェクト管理者が最高の意思決定者

 一方システム開発においては、発注者、受注者の双方のプロジェクト管理者間の合意を最高の意思決定の場とし、プロジェクト管理者の責任においてすべてのシステムの開発プロセスを実施することが、開発プロジェクトを成功に導く最重点項目である。開発に関する細かい取り決めやその変更、合意の追加などは、すべて両プロジェクト管理者間で行い、管理者以外の者による合意は、たとえそれが両社の社長間の合意でも効力を認めるべきではない。両社の意思疎通の経路が複数になり混乱を生じるのを防ぐためである。この点も契約で明確に合意しておく必要がある。

図●システム開発のプロジェクト管理方法について、契約で事前に合意しておく必要がある
図●システム開発のプロジェクト管理方法について、契約で事前に合意しておく必要がある

 プロジェクト管理者間のコミュニケーションは、常時、ドキュメント化して双方で確認し合い、保存することが重要である。必ずしも議事録など形式の決まった書類でなくてもよい。メモ用紙への書き込みも、お互いの合意事項を残す有効な書類になる。メモをコピーして、お互いに保存しておく。

 プロジェクトの遂行に非常に重要な責任を負うプロジェクト管理者の選任は、慎重に行わなければならない。受注者、発注者間の合意事項が契約に盛り込まれていることは大前提であるが、選ばれたプロジェクト管理者同士が、十分な意思疎通を図ることができなければ、システム開発の成功はおぼつかないからだ。

 両当事者の開発チームメンバー同士の不協和や、開発したプログラムの不備、開発遅延など、システム開発では時として様々な問題が発生し、双方の関係を緊張状態にする。このような事態が起こっても、両社のプロジェクト管理者の相互信頼があれば乗り切れる。この領域は、法の合理性、開発作業の生産性志向などの合理的側面だけでは解決できない部分がある。

高石 義一氏 高石法律事務所 弁護士
元・日本IBMの法務・知的所有権担当の常務取締役。1993年に高石法律事務所を設立し、国内外のIT関連の開発、SIビジネスなどに関する法律問題の処理に携わっている。