「請負」か「準委任」か、アジャイル開発でよく耳にする質問です。
一般的に、ウォーターフォールは「一括請負契約」で、アジャイルは「準委任契約」だと言われます。
なぜか考えてみましょう。
本来、契約は開発手法によって決まるモノではないはずです。何をするかで、契約が決まるべきです。
何をするかは利用者が決めます。利用者のニーズや要求が契約を決定するのです。
利用者の要求が具体的で固定なら、最終成果物も固定できますから、「一括請負契約」がフィットします。
利用者の要求がまだ具体化されておらず、今ある要求についても変わる可能性が高いなら、最終成果物も変動しますから、一括請負契約ではおかしなことになります。
なにが欲しいか定義できないのに、契約だけ固定しようとするわけですから。。
最終形がくっきりわからないなら、準委任しかありません。これを無理に一括請負にすると、開発ベンダーは相当バッファーを積まねばならず、結果、発注意欲をなくす様な金額を提示されることになります。
要求の確度が低い場合は「準委任契約」との相性がよいです。
何を創るか確定できないが、顧客にとって本当に必要なものを探して、創っていく為に、ベンダーさんにスキルと経験を提供してもらいます。「使い手」と「作り手」が一緒になってつくるために協力してもらうパートナーシップです。リスクの押しつけあいでは、いいものは生まれません。
協力会社に、顧客価値に焦点をあててもらう為に、「成果ボーナス」を設定することをお薦めします。
契約を「タイムアンドマテリアル」部分と「成果ボーナス」部分の二階層にするのです。
成果ボーナスはプロダクトオーナーの満足度に連動して支払われます。
結果、ベンダーさんはPOの要求を高いレベルで実現しようとしますし、利用者も機能・非機能要件共に満たす高品質のアプリケーションを手に入れることができます。