
開発手法・プロセス
アジャイル開発
Agile / アジャイル
開発対象を最初にすべては確定させず、数週間ごとに動作するものを構築して確認し、優先順位を再検討しながら開発を継続する考え方です。発注側が継続して関わる手間がかかります。
うぉーたーふぉーるかいはつ / Waterfall / ウォーターフォールモデル
要件定義、設計、実装、テストの工程を順に1回ずつ遂行し、前の工程を確定させてから次へ移行する開発の進め方です。何を開発するかを着手前に決め切れる案件向けで、途中の変更には追加の費用と期間がかかります。

システム開発を要件定義、設計、実装、テスト、リリースといった工程に分割し、上から順に1回ずつ遂行する進め方です。各工程の成果物を確定させ、発注側が承認してから次の工程に移行します。前の工程のやり直しは想定外の手戻りとみなします。
建物でいえば注文住宅の建て方に近いです。間取りと仕様を設計図で確定させてから着工し、着工後の間取り変更には追加の費用と工期がかかります。
工程を定めずに開発しながら修正していく進め方では、規模が拡大するほど、どこまでできたかと残りにいくらかかるかを把握できなくなります。複数の会社で分担すると、どこまでが誰の責任かの線も引けません。そこで開発を工程に区切り、各工程の成果物を承認してから次へ移行するようにしました。これで費用と納期を事前に見積もれ、工程ごとに成果物を受け渡せます。
国内の受託開発では今も主流の進め方です。IPA(情報処理推進機構)は、IT企業から集めた2016〜2021年度の開発プロジェクトのデータをソフトウェア開発分析データ集2022に収録しています。このデータでは進め方の回答があった約1,400件のうち97%をウォーターフォールが占めます。企業向けの受託開発に偏ったデータで、市場全体の比率は表していません。
何を開発するかが着手前に確定する案件なら、そのまま採用してかまいません。確定していない部分がある案件では、その部分だけ試作を確認しながら決定する進め方を組み合わせます。
ウォーターフォールのままでよいのは次のような案件です。
判断の目安は着手前に主要な画面、帳票、連携先の一覧を列挙し、業務部門がそれを承認できるかどうかです。列挙できない部分が全体の2〜3割を超える案件は、全体をウォーターフォールで確定させると、完成時に要件が業務の実態と一致しなくなっているリスクが高まります。期間が1年を超えて途中で事業の状況が変化しそうな案件も同じです。
組み合わせる場合は接続仕様や基幹の処理をウォーターフォールで確定させ、画面や操作性は試作を確認しながら反復して開発する形が珍しくありません。反復する部分では社内標準の工程ごとの承認を、区切りごとに試作を確認する場で代替します。
要件定義が完了する前の金額は、確定額でなく幅のある概算とみなします。要件定義と開発は契約を分離し、開発の総額は要件定義の後に確定させます。IPAの情報システム・モデル取引・契約書も、工程ごとに個別の契約を結ぶ多段階契約を基本にしています。
見積もりとあわせて、次の点を確認します。
承認済みの工程のやり直しを伴う変更には、原則として追加の費用と期間がかかります。最初に確定した金額と納期が守られるのは、要件が着手前に確定し、途中で変更されない場合に限られます。
書類の完成度ではなく、動作するものと試験の結果で進捗を確認します。ウォーターフォールではシステム全体をつないだ試験を後半に実施するので、設計の誤りや性能の問題を終盤まで把握しにくいです。
開発会社の報告会では未解決の課題の件数と、その増減を毎回確認します。課題の件数が減少しないまま工程だけが進行しているなら、問題は後半に一斉に発覚します。
事業の課題や技術的な悩みなどどんなことでもお聞かせください