ある企業でスマートフォン向けのアプリケーションソフトウェアの開発を計画しており、2週間ごとに新機能や不具合の修正を含めた新しいバージョンを繰り返しリリースすることにした。新機能の候補や不具合は一覧表で管理し、優先順位をつけて開発し、逐次リリースする方針にした。この開発に採用するソフトウェア開発モデルとして、最も適切なものはどれか。
この設問が問うていること
ソフトウェア開発モデルの種類と特徴について問う設問です。
総合解説
この設問は、ソフトウェア開発における様々な開発モデルの特性を理解しているかを問うものです。 問題文では「2週間ごとに新機能や不具合の修正を含めた新しいバージョンを繰り返しリリースすることにした」とあり、これは短い期間で開発とリリースを繰り返す、反復的(イテレーション)な開発手法を示しています。また、「新機能の候補や不具合は一覧表で管理し、優先順位をつけて開発し、逐次リリースする方針」という記述は、インクリメンタル(漸進的)な開発、つまり少しずつ機能を追加していくアプローチを指しています。 これらの特徴に最も合致するのは、選択肢イのアジャイル開発です。アジャイル開発は、顧客の要求変化に柔軟に対応するため、短い開発サイクル(スプリントやイテレーションと呼ばれることが多い)を繰り返し、その都度、動作するソフトウェアをリリースしていくことを重視します。 一方、選択肢アのDevOpsは、開発と運用が連携してソフトウェアを迅速に提供するための文化やプラクティスであり、開発モデルそのものではありません。選択肢ウのウォーターフォール開発は、要件定義からテストまでを段階的に進める線形的なモデルで、途中の変更には不向きであり、問題文のような繰り返しリリースには適しません。選択肢エのリバースエンジニアリングは、既存のソフトウェアの構造を解析する技術であり、新しいソフトウェアを開発するモデルではありません。 したがって、問題文の要件を満たす開発モデルはアジャイル開発が最も適切です。
こんな聞き方もできます(タップで質問)