💨
開発の流れ
「開発工程」や「開発ライフサイクル」と呼ぶ。
✅ 開発の流れ(ウォーターフォールモデルをベース)
1. 要件定義(Requirements Definition)
-
目的: 何を作るかを明確にする。
-
内容:
- ユーザーのニーズや課題の洗い出し
- 必要な機能・性能・制約条件(法規制、対応デバイス等)の整理
- 利用者・関係者との合意形成(ステークホルダーの調整)
2. システム設計(System Design)
-
目的: 要件をもとに、どのように実現するかを設計する。
-
内容:
- 基本設計(外部設計): UI設計、機能の概要、API仕様などユーザーが関わる部分
- 詳細設計(内部設計): データベース設計、クラス設計、処理フロー、アルゴリズムなど
3. 実装(Implementation)
-
目的: 設計に従ってプログラムを書く。
-
内容:
- プログラミング言語を用いたコーディング
- ソースコード管理(Gitなど)
- 単体テスト(ユニットテスト)を並行して行うことも多い
4. テスト(Testing)
-
目的: システムが正しく動くか確認する。
-
内容:
- 単体テスト: モジュール単位での動作確認
- 結合テスト: 複数モジュールの連携確認
- システムテスト: 要件通りに動くかを全体で検証
- 受け入れテスト(UAT): 実際のユーザーが確認・承認する
5. リリース(Release / Deployment)
-
目的: 開発したシステムを本番環境へ公開する。
-
内容:
- デプロイ作業(本番環境に配置)
- リリース前の最終確認
- ユーザーへの通知・トレーニング・マニュアル整備など
6. 保守・運用(Maintenance / Operation)
-
目的: リリース後のトラブル対応や改善を行う。
-
内容:
- バグ修正
- ユーザーからのフィードバック対応
- バージョンアップ、機能追加など
🌀 補足: アジャイル型の場合(スプリントで反復)
アジャイル開発では上記を1サイクルとし、短い期間(例: 1~2週間)で繰り返す形になります。特に以下の特徴があります:
- ユーザーとの対話を重視
- 途中で仕様変更に柔軟に対応
- スプリントごとに計画→実装→レビュー→ふりかえり(レトロスペクティブ)
アジャイル開発とウォーターフォール開発は、**ソフトウェア開発の進め方(プロセス)**における代表的な2つのアプローチです。それぞれに特徴と向き・不向きがあります。
🧱 ウォーターフォール開発(Waterfall Model)
✔ 特徴
- 工程を上流から下流に一方向に進める(滝=ウォーターフォールのように)
- 各工程が明確に区切られていて、次工程に進む前に前工程を完了させる
- 文書ベースで合意・記録が多く、手戻りが少ないことが理想
📋 流れ
要件定義 → 設計 → 実装 → テスト → リリース → 保守
🟢 向いている場面
- 要件が明確で変更が少ない
- 大規模プロジェクトで厳密な管理が必要
- 官公庁や重厚な産業(医療、金融、建設)などドキュメント重視の業界
🔴 デメリット
- 要件変更に弱い(戻るのが大変)
- 実際に動くものができるまで時間がかかる
- 開発の後半までユーザーが成果物を確認できない
⚡ アジャイル開発(Agile Development)
✔ 特徴
- 短い期間(スプリント)で反復的に開発
- ユーザーやチームとの対話を重視
- 要件や設計の変更に柔軟に対応
- 動くソフトウェアを早期に見せながら進める
📋 流れ(例:スクラムの場合)
計画(Planning)→ 開発(Sprint)→ レビュー(Review)→ 振り返り(Retrospective)→ 次スプリント
🟢 向いている場面
- 要件が変化しやすい
- スタートアップやWeb系など、スピード重視
- ユーザーのフィードバックを活かしたいとき
🔴 デメリット
- 設計や仕様が曖昧なまま始まることがある
- ドキュメントが少なく、属人性が高まりやすい
- チームのスキル・コミュニケーション能力に依存しやすい
🆚 比較表(ざっくりまとめ)
項目 | ウォーターフォール | アジャイル |
---|---|---|
開発の進め方 | 一方向で段階的 | 短期間で反復的 |
要件変更への対応 | 苦手(初期で固定) | 得意(都度柔軟に対応) |
成果物の提供 | 最後にまとめて | 毎スプリントで徐々に |
ドキュメント | 詳細に残す | 最小限で進める |
ユーザー関与 | 限定的(初期と受入テスト時など) | 頻繁にフィードバック |
管理スタイル | 厳格・計画重視 | 自律・柔軟性重視 |
向いているプロジェクト | 仕様が明確で変更が少ない場合 | 変化が多くスピードが求められる場合 |
Discussion