ソフトウェアを発注する際には、遅かれ早かれ、どのように支払いたいかを尋ねられます。代表的な答えは2つあります。プロジェクト全体に対する定額か、作業の進行に応じた実績ベースの支払いです。どちらも安全な選択肢として売られていますが、不適切な種類のプロジェクトに使うと大きな問題になり得ます。私は長年、双方の立場で両方の方式に関わってきました。適切な質問をすれば、正しい選択はほぼ明らかになります。
各モデルの実際の姿
固定価格とは、定められた範囲の業務を、合意した金額で納品することを供給者が約束する方式です。想定より時間がかかるリスクは供給者が負います。その代わり、供給者は範囲が明確に定義されていることを必要とし、範囲の変更には抵抗します。
タイム&マテリアルとは、実際にかかった工数に対して、通常は時間、日、月単位で支払う方式です。サードパーティのライセンスなど、直接の費用も加わります。作業が想定より長引くリスクはお客様が負います。その代わり、方向性の変更、機能の追加、重要でないと分かった機能の削除など、柔軟性があります。
三つ目の形態である専任開発者、すなわち月次契約は、タイム&マテリアル方式に近いものです。毎月一定時間の開発者の時間を確保し、その使い道を指示していただきます。詳細は専任開発者のページでご説明しています。
定額の約束と、その限界
固定価格は予算に入れる数字が得られるため安心感があります。その安心感が本物となるのは、次のような場合です:
- 要件は明確で、文書化されており、変わる可能性は低いです。
- 技術は馴染みがあり、リスクは低いです。
- 作業が完了したと判断する方法を、事前に説明しておくことができます。
これらの条件であれば、定額は効率的です。何を構築するか、いくらかかるかを全員が把握できます。
問題が生じるのは、こうした条件が満たされない場合です。そして、それはよくあることです。要件が曖昧なプロジェクトを想像してください。定額での発注を求められた業者には、誠実な選択肢が2つあります。未知の部分をカバーするために十分な余裕を上乗せするか、そうすると、実際には発生しないかもしれないリスクの分まで支払うことになります。あるいは、低めの見積もりを出し、あらゆる曖昧さを可能な限り狭い解釈で処理して自己防衛するかです。どちらも摩擦を生みます。本来は有用性について話し合うべきところで、「範囲内」かどうかを議論することになってしまいます。
もう一つの見えにくい問題もあります。業者がリスクを負担している場合、テストの削減、ドキュメントの簡素化、迅速だが保守しにくいソリューションなど、目立たない形で手を抜く動機が自然に生まれます。優れた業者はそのようなことはしませんが、契約の仕組み上、そうした誘惑が生じるため、知っておく価値があります。
実績に応じた請求の約束と、その限界
実績に応じた請求は、ソフトウェアの性質に正直に向き合う方式です。問題の最もよい理解は、構築の過程で得られるからです。早く着手でき、実際の利用から学び、調整できます。アイデアがまだ固まっていない段階では、より良い製品になりやすい方式です。
そのリスクは逆の性質のものです。規律がなければ、予算に上限がなく、プロジェクトには自然な終わりがありません。サプライヤーが効率的に作業し、進捗について真実を伝えてくれると信頼する必要があります。また、機能を追加するたびにコストが増えるため、優先順位付けでお客様の役割も果たす必要があります。
次のような簡単な習慣で、そのリスクを大幅に減らせます:
- 最初におおよその範囲に合意し、それを約束ではなく計画上の数値として扱います。
- 短いマイルストーン単位で作業し、各マイルストーンの終わりに、確認・テストできるものをお渡しします。
- 各作業に費やした時間の定期レポートを依頼します。
- レビューポイントを設定し、そこで継続、方向転換、または停止を判断します。
- 優先順位付きのバックログを管理し、最も価値の高い作業を常に最初に行えるようにします。
選び方の簡単な方法
プロジェクトについて、次の質問を自分自身に問いかけてください。
完成品の姿を今どの程度説明できますか? 文書化した仕様を3社の供給者に渡して、似た結果が期待できるなら、固定価格は妥当です。そうでなければ妥当ではありません。
自分の考えが変わる可能性はどの程度ありますか? 率直にお考えください。多くの方は、動くソフトウェアを見て初めて理解が深まります。計画の調整が見込まれる場合は、タイム&マテリアル方式のほうが適しています。
技術や課題はどれほど新しいものですか? 新しい連携やAI機能など、不慣れな領域には不確定要素が伴います。それは価格に隠すより、共有したほうがよいものです。
作業の規模はどの程度ですか? 特定のレポート、単純な連携、明確に定義された修正などの小さく範囲の明確な作業は、固定価格に向いています。大規模で長期にわたるプログラムは、それぞれ個別に合意した段階に分けるほうが適しています。
柔軟性よりも予算の確実性をどの程度重視しますか? 組織によっては、確定した金額を求める調達ルールがあります。これは正当な制約であり、対応する方法を以下で説明します。
たいてい最も効果的な組み合わせ
実際には、最良の体制は多くの場合、複数を組み合わせたものです。
有償の調査、その後に固定価格。 短期間(1〜2週間)の有償フェーズで、書面による範囲定義、プロトタイプ、またはもっともリスクの高い部分を検証する技術的な試作を行います。その後、その範囲に基づいて構築の価格を固定します。小規模で期間を限定した投資により、確実性を得られます。
マイルストーンごとの固定価格。 プロジェクトを段階に分け、各段階に明確な成果物と固定価格を設定します。前の段階が完了してから次の段階に合意します。小さな単位で予測可能性が得られ、段階ごとに調整する自由もあります。
上限付きのタイム&マテリアル。 タイム&マテリアル方式で作業しますが、お客様の承認なしには超えられない上限を合意します。供給者は際限のない範囲から保護され、お客様は際限のない費用から保護されます。
月次契約。 変更が継続的に発生する製品の場合、合意した開発時間に対する月額固定料金は、予算化も運用も簡単です。
変更と、契約での扱い方
どのモデルを選んでも、プロジェクトは変わります。契約には変更の進め方を明記すべきです。固定価格の場合、書面による変更要求の手続きが必要です。変更内容を記述し、影響を見積もり、承認してから進めます。時間と資材による契約では、変更は優先順位の見直しで行われ、問題は合計額が予算に収まるかどうかだけです。契約で変更について触れていない場合は、意見の食い違いが起きると考えてください。
記録しておく価値のあるその他の事項
料金体系にかかわらず、契約には次の基本事項が含まれていることを確認してください:
- 所有権。 作業の対価が支払われた時点で、お客様がコードと知的財産を所有するべきであり、コードはお客様が管理するリポジトリに置かれるべきです。
- 受け入れ。 成果物が完成したと、どのように判断しますか?テスト、デモ、チェックリストなど?
- 秘密保持。 機密性の高い情報を扱う場合は、秘密保持契約(NDA)を締結します。
- 保証とサポート。 公開の翌週にバグが見つかった場合はどうなりますか?
- 契約の終了。 どちらの側が終了できるか、また終了した場合に何を受け取れるかを定めます。
当社のおすすめ
プロジェクトを明確に説明でき、固定価格を求め、スコープと変更プロセスが明確な優れたサプライヤーがそれを提示してくれると期待できる場合は、固定価格を求めてください。できない場合は、無理に進めないでください。短い有償のディスカバリーフェーズ、または上限付きの時間と材料費の段階から始め、明確になった部分から固定価格に移行してください。
IT Labs Indiaでは、これらすべてを提供しており、無料の初回相談の後にモデルをお勧めします。適切な選択は、当社の請求の都合ではなく、お客様のプロジェクトによって決まるためです。各契約は書面による見積もりから始まります。何を依頼すべきか検討中であれば、カスタムソフトウェアのコストを左右する要因に関する当社の記事が参考になります。プロジェクトの進め方については当社の進め方のページでご覧いただけます。準備ができたら、プロジェクトについてお聞かせください。