はじめに
前回、システム(ソフトウェア)開発の大まかな流れについてお話ししました。
流れはわかったけど、V字工程を1週回したら終わるの?🤔
実際には、1週だけでは終わらない場合がほとんどです。
近年のシステム開発は大規模化が進み、1つのプロジェクトを開始してから市場リリースするまで、およそ3〜5年かかります。
※スマートフォン市場はサイクルが非常に早く、1〜2年でリリースされることも
少なくとも実装が終わるまで、実際に動かせるものが無いことになります。
でも、開発途中であっても要件定義で決定した仕様でどのような動作になるのか、確認したいですよね?
そのような開発のニーズにあわせて、様々な開発手法が考案されています。
今回は、代表的な4つの開発手法について見てみましょう😌
ウォーターフォール
水が上から下へ流れるように、工程を1つずつ進めていくスタイルです。
最もシンプルな方法ですが、各工程を完璧に仕上げないと、手戻りによるロスが大きくなります。
近年、どのシステムも大規模化・複雑化しているため、極小規模な開発でなければ、採用されることはあまりないと思います。
スパイラル
おそらく多くの現場で採用されているであろう手法です。
全体の開発期間の中を何分割かして、実装する機能を優先度順に分散します。
たとえば、実装する機能がA〜Iまであり、3サイクル回すとして、
1サイクル目で機能ABC、2サイクル目で機能DEF、3サイクル目で機能GHI、といった具合です。
こうすることで、早い段階で動作するサンプルができるとともに、問題があれば次のサイクルで修正するなどのリスク対策を取ることができます。
このあと解説するアジャイルと似ていますが、スパイラルはより品質を重視する手法です。
試験が終わっていなくても、機能としてある程度動作できる状態になったら、関係各所のフィードバックを受けます。フィードバックを受けるタイミングが早いため、最終的な品質は高くなる傾向があります。
アジャイル
全体の開発期間の中を何分割かして、実装する機能を分散します。
スパイラルと似ていますが、アジャイルはより計画を重視する手法です。
サイクル内で実装する機能の品質が担保できる状態になってから、関係各所のフィードバックを受けます。
試験までしっかり完了してからとなるため、スパイラルよりはフィードバックは遅くなりますが、その分計画通りに進行することができます。
プロトタイプ
開発スタイルはスパイラルと似ていますが、こちらはほぼ全ての機能を実装してからフィードバックを受けます。
※プロトタイプ作成には当然時間がかかるため、期間の都合で機能を制限する場合もあります
素早く試作品(プロトタイプ)を作成し、全体としてどのように動作するのかを確認できるのが特徴です。
さいごに
似た特徴を持つ開発手法がいくつかありますが、それぞれ目的が異なります。
品質を重視するか、開発期間を重視するか。
開発対象によって、最適な開発モデルを選択しましょう。
それでは今回はここまで。
ありがとうございました☺️
コメント