Open1

開発手法まとめ

MygMyg

🧩 ソフトウェア開発手法まとめ

🌊 1. ウォーターフォール開発(Waterfall)

🔹 特徴
「要件定義 → 設計 → 実装 → テスト → 運用」…と段階的に進行

各工程が完了しないと次に進まない

上流工程が重要(初期にすべて決める)

🔹 向いているケース
要件が明確で変更されない

官公庁・大企業案件などで正確な文書化が必要

🔹 メリット / デメリット

メリット デメリット
計画が立てやすい 柔軟な変更がしにくい
管理・文書が整っている 開発後に問題が発覚しやすい

🚀 2. アジャイル開発(Agile)

🔹 特徴
小さな単位で計画 → 実装 → テスト → 振り返りを繰り返す

**短いスパン(1〜2週間)**で成果物を出す

変化に強い・柔軟に対応

🔹 向いているケース
要件が変化しやすい(スタートアップ等)

ユーザーからのフィードバックを重視するプロジェクト

🔸 アジャイルの代表的な手法

✅ スクラム(Scrum)
代表的なフレームワーク

開発を「スプリント(1〜4週間)」で区切って進める

スクラムマスター、プロダクトオーナー、開発チームという役割分担

✅ カンバン(Kanban)
ボードを使ってタスクの可視化・制御を行う

WIP制限(同時作業の制限)で効率を保つ

トヨタの生産管理方式がベース

✅ XP(エクストリーム・プログラミング)
テスト駆動(TDD)・ペアプロ・継続的インテグレーションなどを徹底
品質重視・高速な開発が目的

アジャイル手法 特徴
スクラム スプリント単位で反復開発。チーム開発向け
カンバン タスクの流れを管理。運用・保守にも強い
XP 技術プラクティス重視。テスト重視・ペア開発あり

🧪 3. プロトタイピングモデル

🔹 特徴
最初に**試作品(プロトタイプ)**を作ってフィードバックを得る

ユーザーと対話しながら要件を詰める

🔹 向いているケース
要件が曖昧で、とりあえず形にしてから考えるような案件

🔁 4. スパイラルモデル

🔹 特徴
リスク分析+反復開発を行う

段階ごとに設計・実装・テスト・評価を繰り返す

🔹 向いているケース
大規模かつ、リスクが高いプロジェクト

🧰 5. RAD(Rapid Application Development)

🔹 特徴
高速開発に特化(短期間で完成を目指す)

ツールやコード生成で開発スピードを上げる

🔹 向いているケース
スモールチーム・プロトタイピングを繰り返す開発

⚙️ 6. DevOps(開発と運用の連携)

🔹 特徴
開発(Dev)と運用(Ops)をシームレスに結びつける考え方

CI/CD、自動テスト、自動デプロイなどを活用

インフラもコードとして管理(IaC)

🔹 向いているケース
Webサービス・SaaSなど継続的に改善されるアプリ

🔚 開発手法の比較表

手法 特徴 向いてる場面
ウォーターフォール 順序通りに開発 要件が固定されてる
アジャイル 柔軟・反復型 要件が変わるプロジェクト
スクラム アジャイルの一種。役割明確 チームでの短期開発
カンバン タスクの流れに着目 運用や継続開発
XP 技術的に高い開発力を重視 高品質が求められる場面
プロトタイピング 試作品を出して調整 要件が曖昧なとき
スパイラル リスク管理を重視 複雑・高リスク案件
RAD 超スピード重視 MVP・スモールチーム
DevOps 開発と運用の融合 WebサービスやSaaS

📝 どの手法を選ぶべき?

状況 おすすめ手法
最初にすべて決められる ウォーターフォール
ユーザーに試しながら作りたい アジャイル / プロトタイピング
スタートアップで柔軟さ重視 スクラム / XP
保守や改善が中心 カンバン
継続的にデプロイするサービス DevOps連携型アジャイル