ひと口にシステム開発と言っても案件によってその開発手法は様々あります。
「最も少ない工数」で「最大利益」を上げるためには、プロジェクトの規模やリリース時期など、開発したいシステムに応じて適切な手法を用いる必要があります。
これから様々な手法を紹介しますが前提として、開発したいプロジェクトに適した開発手法を用いらなければ開発が遅れてしまうということは覚えておいてください。
今回は、システム開発にはどんな手法があるのか?について紹介します。それぞれの特性・特長を比較し、理想のシステム開発に適した手法を選択しましょう。
ウォーターフォール型開発
ウォーターフォール型開発は、要件定義・外部設計・内部設計といったシステム開発の各工程を、上流工程から下流工程へ順に行っていく手法です。「完了したら次の工程に進む」という、開発手法のため、ウォーターフォールでの開発モデルでは、上流工程はもちろん前の工程を完全に終えてからでないと次の工程に進めない仕組みになっています。
ウォータフォール型開発の特徴
計画性をもって前進できるのが特徴です。計画通りに開発が進みやすい分、組み込みソフトウェアや通信システムのように、「仕様変更を考慮しないシステム」の開発に向いています。
ウォーターフォール型開発の進化系?V字モデルとW字モデルとは?
ウォーターフォール型開発は、順序的で段階的な開発プロセスを特徴とする手法で、シーケンシャルに進むため一度進んだフェーズには戻りにくいという特性があります。このモデルの進化系として、V字型モデルとW字型モデルがあります。これらのモデルは、特にテストや品質保証を強化することで、ウォーターフォール型の弱点を改善しようとしています。
V字型開発モデルとは?
この開発モデルは、ウォーターフォール型の各フェーズに対応したテストフェーズを強調したモデルです。フェーズの進行はウォーターフォール型と同様に進めますが、各フェーズでの開発作業がその後のテストと密接に関連付けられています。これにより、各フェーズでの品質確認が容易になります。
このモデルのメリットは、開発の早い段階からテストが考慮されているため、不具合の早期発見が可能であり、品質の向上につながります。
W字型開発モデルとは
W字モデルとは、V字モデルで行う流れに加え、開発工程とテスト工程を同時に行います。つまり、開発工程の結果をテスト工程で検証するだけでなく、開発工程の中でも検証を行います。開発とテストを並行して進めることで、開発の各段階で問題発見と修正が可能になり、後戻りを減らすことができます。
開発モデルの比較
- ウォーターフォール型は、進行が直線的であるため、早い段階の問題に気づきにくく、後の段階での修正コストが高くなりがちです。
- V字型開発は、各工程に対応したテストフェーズがあるため、各段階でのフィードバックが得られやすく、品質が高くなる傾向があります。
- W字型開発は、さらに品質保証を徹底したアプローチで、レビューや検証を追加して、より高品質な成果物を得ることを目指します。特に大規模プロジェクトや、高度な信頼性が求められるプロジェクトに適しています。
アジャイル型開発
アジャイル開発(アジャイルソフトウェア開発)は、現在主流になっているシステムやソフトウェアの開発手法の1つで、『計画→設計→実装→テスト』といった開発工程を機能単位の小さいサイクルで繰り返すのが最大の特徴です。
優先度の高い要件から順に開発を進めていき、開発した各機能の集合体として1つの大きなシステムを形成。「プロジェクトに変化はつきもの」という前提で進められるので仕様変更に強く、完成したシステムの価値を最大化することに重点を置いた開発手法です。
アジャイル型開発の特徴
機能の追加や修正がしやすく、依頼者の要望を取り入れながらシステム開発を進めていくことができる反面、完成度が見えにくいことから部分最適に陥ってしまったり、スケジュールの見通しが立てにくかったりする点もあります。
サービスインまでの期間を短縮し、ビジネスのスタートを早めることができます。リリース後も継続的に新機能の実装や改善を繰り返すプロジェクトにアジャイル型は向いているとも言えます。
依頼者の要望を取り入れながら、作業を反復することによりシステムの品質を上げやすい手法と言えます。ウォーターフォールとは反対に、仕様変更を前提としたWebサービスやゲームアプリなどのシステム開発に適した開発手法です。
スクラム型開発
スクラム型開発は、アジャイル型開発の特殊型とも言えます。
チームで誰がやるべきかなどの観点からチームメンバーにタスクを振り分け、それぞれがそのタスクを達成することでプロダクトの完成を目指します。それぞれの作業が、他の人の作業を支えている形になるので、チームワークやコミュニケーションが重要になる開発手法です。
アジャイル型の特徴に加えて、それぞれの人が役割を持って開発に取り組めるため、さまざまな作業を同時進行的に進めることができ、効率化をはかれます。
スクラム型特徴
スクラム開発のメリットとして、開発の優先順位が高い機能から先に開発を進めるため、短い期間で最大限の成果を期待することができます。各々が自分のタスクを責任をもって開発を行う事ができます。
しかし、メンバーで円滑なコミュニケーションが取れないと計画通りにプロジェクトが進まないことがあります。
短期間でタスクを振り分けて開発を行うため、途中で離脱者が出てしまうとプロジェクトが停滞する恐れがあります。タスクに必要なスキルを有したメンバーを不足なく集め、最後まで同じメンバーでプロジェクトを遂行できるようなチームを編成しましょう。
開発手法 | メリット | デメリット |
---|---|---|
ウォーターフォール 型開発 | 計画どおりに進めやすい、必要な人材を確保しやすい | 不具合発生時に開発が長期化しやすい |
アジャイル型開発 | 機能追加や修正がしやすい、開発期間を短くしやすい | 開発の方向性がずれやすい、進捗確認がしにくい |
スクラム型開発 | 短い期間で最大限の成果を期待することができる。 | 円滑なコミュニケーションとスキルが求められる。 |