これまで2回にわたり、アジャイル開発の概要や特長について、主にウォーターフォール型開発と比較しながら解説してきました(「第1回:アジャイル開発って何がいいの?」「第2回:アジャイル開発はなぜ難しい?」)。「変化への対応を重要視する」「顧客が開発に密接に関与する」など、ウォーターフォール型開発では見られなかった、さまざまな新しい特徴を有していることをご理解いただけたでしょうか。
ウォーターフォール型開発と開発スタイルが大幅に異なるのですから、顧客と開発側で締結する契約のあり方もこれまでとは違ってきます。最終回となる今回は、アジャイル開発をスムーズに導入し、プロジェクトを成功裏に終わらせるための契約モデルのあり方について考えていきたいと思います。
開発者の方は、「契約なんて自分には関係ない」と思われるかもしれませんが、アジャイル開発を採用するには避けて通れない問題です。自社の契約や調達の担当者を説得するためにも、ぜひ理解していただきたいと思います。
アジャイル開発で採用されている契約モデル
日本でもソフトウェアを“内製”する場合は、アジャイル開発が多く採用されています。しかし、内製以外でなかなか普及しないのは、前回説明したように「一括請負契約」という障壁があるためです。
また、派遣契約を除き、発注側の担当者から受注側の担当者に直接作業の指示や管理をすることは、法律上「偽装派遣」として禁止されています。このため、開発チームの担当者同士の緊密なコミュニケーションやコラボレーションが求められるアジャイル開発では、契約の種類によっては制約となります。
一方、欧米では、“内製”が主流です。ソフトウェア開発を外部に委託する場合は、後述の準委任契約と同等の「Time and Material契約」が主に使われています。この契約は、要件定義や開発の責任やリスクは顧客側が負うため、アジャイル開発でも問題が起きません。開発側への動機づけの課題がありますが、インセンティブを付けた契約案などが示されています。
ソフトウェア開発における契約には、次の3つの種類があります。
- 一括請負契約
- 準委任契約
- 派遣契約
以下では「一括請負契約」「準委任契約」の2つについて事例を交えて紹介します。派遣契約は、開発スタイルに依存せず、アジャイル開発の障壁とはならないため、今回は説明を割愛します。