Development Progress
Overview
開発進行についてまとめるセクション。
システム開発の進め方
システム開発の進め方(開発モデル)には大きく分けて2つある。
- ウォーターフォールモデル
- アジャイルモデル
ウォーターフォールモデル
「滝(waterfall)」という名前が示すとおり、要件定義→設計→開発→テスト、というように1つずつ工程を踏んで、段階的にシステムを作っていく。
滝が逆流できないように工程が逆戻りすることはない。
これは、建物や橋など建築物を造るときの方法でもある。
「家を作っていてあまりうまくいかなそうなので、もう一度図面から引き直しましょう」というのは、時間とお金の無駄が大きすぎるので、まずあり得ない。
つまり、手戻りが難しく、改修が高コストになりがち。
ウォーターフォールモデルは、大規模なシステム開発において採用されがちだが手戻りがきかないということは、各工程をきっちり仕上げる精密さが要求されるということでもある。
アジャイル(Agile)モデル
アジャイル(Agile)モデルは、最初に小さなプログラムを作って顧客やユーザーに見せてフィードバックをもらい、それを取り入れた形で改良版を作って顧客やユーザーに見せてというサイクルを繰り返す循環的な開発手段。
サイクルの期間は一般的に1カ月以内とされており、アジャイルの開発フレームワークであるスクラムでは、1つの開発サイクルをスプリントと呼ぶ。
早い段階からシステムの具体的なイメージを開発者や顧客と共有できるため以下のメリットがある。
- 要件定義の取りこぼしや意思疎通の齟齬を防げる
- 途中で仕様が変更になっても対応しやすい
一方でデメリットもある。
- 何度も同じ工程を繰り返す必要があり、変更を繰り返すうちに発散して収拾がつかなくなるというリスクもある。
こうした特性から、かつては小規模のシステムに対して適用されていたが、現在は大規模開発をターゲットとして方法論も発展してきている。
近年ではアジャイルをスムーズに実行するためにCI/CD(Continuous Integration/Continuous Delivery)という自動化によってビルドやテストを高速に実行しスムーズにデプロイすることを可能にする開発技法も発展してきている。
近年のソフトウェア開発(DOAとPOA)
- DOA
- データ ➡ プログラム
- POA
- プログラム ➡ データ
データ中心アプローチ(Data Oriented Approach:DOA)という考え方が主流。
システムを作る際にプログラムよりも前にデータの設計から始める方法論。
データがあまり変化しない(永続的)のため、データの意味や形式が先に決まっていれば複数のプログラムで共用することも容易で、業務要件の仕様変更にも柔軟に対応できるメリットが得られる。
歴史的にはかつてのシステム開発の主流の考え方は、プロセス中心アプローチ(Process Oriented Approach:POA)だった。