開発手法には様々な種類があります。
代表的なものとしては、ウォーターフォール型開発、アジャイル開発などがあります。
各手法にはそれぞれ特徴があり、プロジェクトの規模や性質に応じて適切な手法を選択することが重要になります。

ウォーターフォール型開発

開発のプロセスを順序立てて要件定義~実装~運用まで滝のように上から下に進めていく手法です。

各工程は前の工程が完全に完了してから次の工程に進むことが原則となっています。

基本的にウォータフォールでは前の工程に戻ることはしない想定となります。

メリットとしては、計画通りに進めやすく、進捗管理が容易である点が挙げられます。
デメリットとしては、仕様変更に柔軟に対応しにくく、初期の計画が不十分だと後戻りが困難になる点が挙げられます。

ウォーターフォール型開発の図

アジャイル開発

アジャイル開発は、短いサイクルで計画、実装、評価(テスト)を繰り返しながら進めていく手法です。

仕様・計画が固まり切っていない状態でも柔軟に対応しながら開発を進めることができます。

ウォータフォールのデメリットを解消するために考案された手法とされています。

メリットとしては、仕様変更に柔軟に対応できる点や、ユーザーのフィードバックを反映しやすい点が挙げられます。
デメリットとしては、計画が流動的であるため進捗管理が難しい点や、短いサイクルでの開発に慣れていないと効率が低下したり負債が蓄積しやすい点が挙げられます。

アジャイル開発の図

スクラム

スクラムは、アジャイル開発の一種で、開発チームが自己組織化し、短いスプリントと呼ばれる期間で開発を進める手法です。

つまり、アジャイル思想を実現するための具体的な手法の一つがスクラムということになります。

スクラムでは、プロダクトオーナー、スクラムマスター、開発チームの3つの役割が明確に定義されており、それぞれの役割が責任を持って開発を進めます。

スクラムの開発サイクルは、通常2〜4週間のスプリントで構成され、各スプリントの開始時に計画を立て、終了時にレビューと振り返りを行います。
このサイクルを繰り返すことで、継続的に価値を提供しつつ、チームの改善を図ることができます。

スクラムの図

カンバン

カンバンは、アジャイル開発の一種で、作業の進捗を視覚的に管理する手法です。 スクラムと比べると、カンバンはより柔軟で、作業の優先順位や進捗状況をリアルタイムで把握しやすい点が特徴です。
カンバンボードを用いて、タスクの状態(未着手、進行中、完了など)を視覚的に管理することで、チーム全体の作業状況を一目で把握できます。

カンバンの図

プロトタイピング

プロトタイピングは、実際のシステムや製品の試作品(プロトタイプ)を早期に作成し、ユーザーや関係者からのフィードバックを得ながら開発を進める手法です。

試作と評価のセットで反復的に開発を進めていきます。

メリットとしては、ユーザーのニーズを早期に把握できる点や、仕様の不確実性が高い場合でも開発を進めやすい点が挙げられます。
デメリットとしては、試作品の作成に時間やコストがかかる場合がある点や、フィードバックの質によって開発の方向性が左右されやすい点が挙げられます。

プロトタイピングの図

スパイラルモデル

スパイラルモデルは、ウォーターフォール型開発とプロトタイピングの要素を組み合わせたような開発手法です。
リスク管理を重視し、開発を複数の反復サイクル(スパイラル)で進めます。

各スパイラルは、計画、リスク分析、実装、評価のフェーズで構成されており、リスクを早期に発見し対策を講じながら開発を進めることができます。

メリットとしては、リスクを早期に管理できる点や、仕様変更に柔軟に対応できる点が挙げられます。
デメリットとしては、プロセスが複雑で管理が難しい点や、経験豊富なチームが必要な点が挙げられます。

一見アジャイル開発と似ているように感じますが、スパイラルモデルはリスク分析を重視していて、アジャイル開発は素早いフィードバックと適応を重視しているという違いがあります。

スパイラルモデルの図

理解度チェック(AI生成)

以下の4択問題で、開発手法の理解度をチェックしてみましょう。答えは折りたたまれているので、クリックして確認してください。

Q1. ウォーターフォール型開発の特徴として正しいものはどれか?

  1. 短いサイクルで計画・実装・評価を繰り返しながら開発を進める
  2. 各工程を順番に進め、前の工程が完了してから次の工程に進むことを原則とする
  3. 試作品を作成し、ユーザーのフィードバックを得ながら要件を固めていく
  4. タスクの状態をボードで視覚的に管理しながら開発を進める

Q2. アジャイル開発のデメリットとして、記事中で挙げられているものはどれか?

  1. 仕様変更に柔軟に対応しにくい
  2. ユーザーのフィードバックを反映しにくい
  3. 計画が流動的であるため進捗管理が難しい
  4. 初期の計画が不十分だと後戻りが困難になる

Q3. スクラムで定義されている3つの役割の組み合わせとして正しいものはどれか?

  1. プロダクトオーナー、スクラムマスター、開発チーム
  2. プロジェクトマネージャー、スクラムマスター、テストチーム
  3. プロダクトオーナー、プロジェクトマネージャー、開発チーム
  4. スクラムマスター、デザイナー、運用チーム

Q4. カンバンの説明として正しいものはどれか?

  1. 2〜4週間のスプリントを単位として開発を進める
  2. ボードを用いてタスクの状態(未着手、進行中、完了など)を視覚的に管理する
  3. 開発を始める前にすべての要件を確定させる
  4. リスク分析を重視し、らせん状に開発を進める

Q5. スパイラルモデルとアジャイル開発の違いとして、記事中で説明されているものはどれか?

  1. スパイラルモデルは反復しないが、アジャイル開発は反復する
  2. スパイラルモデルはリスク分析を重視し、アジャイル開発は素早いフィードバックと適応を重視する
  3. スパイラルモデルは小規模チーム向けで、アジャイル開発は大規模チーム向けである
  4. スパイラルモデルは試作品を作らないが、アジャイル開発は必ず試作品を作る