ソフトウェア開発における契約の種類
まずは、ソフトウェア開発に関する契約の種類を見ていきましょう。
仕事完成義務をもつ「請負契約」
請負契約とは、仕事を完成する義務を持つ契約のことであり、発注側は仕事に対して報酬を支払う義務があります。一般的に建築関連などで使われますが、システム開発や講演など形がない仕事でも使われることが多い契約です。
請負契約の場合、「仕事の完成」が条件となるため、完成品に不備や欠点があれば責任を負うことになります。特にシステム開発の場合は、納期までに完成しない場合は契約を解除して損害賠償を求められる可能性もあります。
そのため、システム開発を請け負うときは注意しましょう。
善管注意義務をもつ「準委任契約」
準委任契約とは、特定の作業・業務のみを委託する契約のことです。
この場合、請負契約とは違い完成品を納品する義務はありません。しかし、しっかりと仕事をこなすために、契約した仕事を誠実に遂行することが受注側に求められます。このことを「善管注意義務」と呼び、受注者には善良なる管理者の注意義務が要求されます。
アジャイル開発では、仕様変更により決まった納期内に完了しない場合があるでしょう。そのため、完成品を納品する請負契約ではなく、準委任契約にて契約されることもあります。
準委任契約の場合、善管注意義務に違反した場合は契約を解除されることもあります。しかし、善管注意義務に違反するかどうかの判断が難しいケースがほとんどです。
そのため、開発の段階に応じて準委任契約と請負契約を使い分ける場合もあります。
派遣先の会社が指揮命令権をもつ「労働者派遣契約」
アジャイル開発の場合は、労働者派遣によって開発に携わるケースも存在します。労働者派遣契約とは、労働者が派遣会社と契約し、指定された派遣先で仕事を行うことです。この場合、派遣先の会社が業務の指揮命令権を持つことが特徴です。
労働者派遣契約は契約期間が決まっている場合が多いため、期間が明確に定められていないアジャイル開発には向いていないでしょう。実際にプロジェクトが未完了でも、契約期間が終了になってしまうこともあります。
そのため、先ほど取り上げた「請負契約」「準委任契約」の2種類が使われるケースが多いです。
アジャイル開発における契約の課題
つづいて、アジャイル開発における各契約には、どのような課題があるのか見ていきましょう。
請負契約:仕様変更に対応しにくい
請負契約は決まっている完成品を納品する義務があるため、仕様変更がある案件は得意ではありません。そして、アジャイル開発は仕様変更が多い開発案件に対応するために使われることが多いでしょう。
実際にアジャイル開発の場合、仕様変更に柔軟に対応できる反面、スケジュールの全体像を読みにくい一面があります。アジャイル開発が適しているような案件で請負契約を結んでしまうと、完成品を納品できなくなるリスクがあるでしょう。
準委任契約:工数やコストが明確でない
準委任契約は、前述のとおり受注者が善管注意義務に違反しても分かりにくいデメリットがあります。そのため、仕様変更により工数が膨らみ、完成スケジュールが不明確になったり、全体のコストがわかりにくくなったりします。
準委任契約は仕様がはっきりと決まっていないアジャイル開発に適した契約です。しかし、開発の進め方によっては発注者側の負担が大きくなってしまうでしょう。
このような事態を防ぐためには、受注者と発注者で内容を明確にした契約を行うことが大切です。場合によっては、短期間で準委任契約を繰り返すと解決できることもあります。
アジャイル開発に適した契約モデル
最後に、どのようにすればアジャイル開発に適した契約になるか見ていきましょう。
多段階で行う「基本契約+個別契約モデル」
アジャイル開発のように仕様変更しやすい案件の場合、内容が固まっている基本契約だけを行うのはリスクがあります。
そのため、プロジェクト全体に共通している内容に対しては基本契約を交わし、確定した部分から個別契約を結ぶことが多いです。この場合、基本契約と個別契約のそれぞれで契約書を交わすのが一般的です。
この契約モデルでは、プロジェクトの進捗に応じていくつかの段階が発生するため、多段階契約とも呼ばれます。仕様変更による開発スケジュールが膨張しないように、個別契約ではある程度、開発期間を決めることが大切です。
また、個別契約ではお互いの信頼関係に応じて請負契約か準委任契約を選択すると良いでしょう。始めは準委任契約で進め、信頼が築けたら請負契約に切り替える方法も有効です。
緊密な協力体制を構築する「組合モデル」
組合モデルとは、発注側が費用を、受注側が開発要員を提供して当該開発案件を進める組織を作ることです。つまり、発注側と受注側が緊密な協力体制を構築し、共同で企画するモデルです。
実際に発注側は開発費用を捻出するため、開発側との信頼関係が重要視されるでしょう。また、受注(開発)側は適切な予算を決定しなければなりません。
アジャイル開発は、ユーザー(発注側)の意見を取り入れやすいモデルであるため、この組合モデルが使われることも多いです。
アジャイル開発に最適な契約を交わし、プロジェクト成功へ!
アジャイル開発は仕様変更に柔軟に対応できるメリットがあるものの、計画の全体像が把握しずらいです。そのため、期限までに完成品を納品する請負契約は不向きでしょう。アジャイル開発の場合、段階に分けて基本契約と個別契約を使い分けるのがおすすめです。
また、アジャイル開発によるプロジェクトを適切に進めるためにも、効率化が図れる開発ツールの利用も検討してみてください。