見出し画像

IT基礎:変化/変更に強いアジャイル開発モデル

事前に完璧な計画を立案し、計画通りに実行することは不可能

システム開発を行う際、顧客・経営層・現場業務メンバー等システムの利用者のニーズ・課題を完璧に理解し、今後5年間に発生するあらゆる外部環境変化も予測しきって予め対応する想定を行い、すべての要求に対応できる機能を漏れなく認識齟齬なく設計でき、設計書通りに寸分違いなくシステム開発できれば、とても効率的でコストも安く短期間で開発プロジェクトは完了できるでしょう。

残念ながら、上記の様にシステム開発プロジェクトを進めることは不可能です。システムの利用予定者が、あらゆるニーズ・課題を言語化して說明することは実際は難しく、外部環境は流動的に変化が激しく、システム設計内容を実装しようとして技術的な課題が発生することもあり、出来上がったシステムをみた利用者が「イメージと違う」となることも普通です。

システム開発の手法には、大きく下記3つがあります。
1.ウォータフォール開発モデル
2.アジャイル開発モデル
3.両者のハイブリッドモデル

下記記事で記載した通り、ウォータフォール開発モデルは、開発の各工程毎に内容を確定させて順次進めていく手法であり、計画立案や進捗管理をやりやすい、請負契約と組み合わせることで、期限厳守・予算厳守のプロジェクト(法律変更対応等)には適する、等様々なメリットはあります。

しかし、一度確定した工程の内容への変更が発生した際、対応コストが大きく、変更に時間を要します。そして、システム開発プロジェクトでは、上記記事で記載した通り、変更は頻繁に発生します。変化・変更の発生を前提とした開発手法が、アジャイル開発モデルです。

アジャイル開発モデルの概要とメリット

下記図の通り、アジャイル開発モデルは、短サイクルで実際に動くシステム機能を開発し、利用者から早期にフィードバックを受けて、改善も早期に行っていく開発モデルです。

ウォータフォールとアジャイル開発モデルの違い
ウォータフォールとアジャイル開発モデルの違い


例示として、ネットでバック販売をするWebサイトを構築するとします。ウォーターフォール開発モデルだと、要件定義段階で定義したシステムに対する利用者の要求事項が実際に動く機能となり、要件定義工程時に想定したイメージとの認識Gapが顕在化するのは検証工程となり、要件定義工程完了から3ヶ月後といったこともありえます。

アジャイル開発モデルでは、最初に2週間(例示です・サイクルはプロジェクト応じて設定)でオンラインショップの基本機能(商品登録・検索・注文)を、実際に動く機能として開発し、利用者に検証してもらってフィードバックうけて改善し、開発機能をリリース(実際にシステムを利用開始する)します。

次の2週間で予約機能を開発し、利用者検証・改善、実際に予約機能の公開。その次の2週間で、サブスクリプション機能の開発・公開といった、短サイクルで実際に動く機能を開発・公開していきます。

システム利用者は、実際に動く機能を操作して事前のイメージとの相違を確認できるため、認識Gapは早期に発見でき、変更も早期にでき、結果として、変更対応コストは低く要する時間も短くなります。

サマリ

システム開発では、事前に完璧な計画を立案し、計画通りに実行することは不可能です。ウォーターフォール開発モデルでは、変更に対する対応に、多くのコストと時間を要します。

アジャイル開発モデルは、変化・変更の発生を前提とした開発手法であり、短サイクルで実際に動く機能を操作して事前のイメージとの相違を確認できるため、認識Gapは早期に発見でき、変更も早期にでき、結果として変更対応コストは低く要する時間も短くできます。

ベラスケス流風景画 Stable Diffusionで生成(アジャイル開発をイメージ)
ベラスケス流風景画 Stable Diffusionで生成
(巨大な構造物に対するアジャイル開発をイメージ)

頂いたサポートは、Noteでの創作活動に活用させて頂きます。