チームで開発を行う際に、開発を進める手法があります。
今回は、アジャイル型開発とウォーターフール開発について
簡単な記事を書きたいと思います。
アジャイル型開発
アジャイル型開発は、一度にまとめてでは無く、少しずつ確認をはさみながら開発を進めていくことが特徴です。利用者の反応や、関係者からの継続的なレビューを得ながら、計画を調整しつつ進めて行きます。
・メリット
手直しが容易で仕様変更に柔軟に対応可能
・デメリット
進捗が把握しづらい
どのような開発の時に使われるか?
・最終的な要件がはっきりしていないプロジェクト
プロダクトの使い勝手を見ながら残りの詳細を詰めていくようなプロジェクトにアジャイル型開発は有効です。「この機能だけは絶対に欲しい。一方で、それ以外の機能は実際に使ってみながらでないと必要かどうか判断できない」といった開発プロジェクトにおいて用いることができます。
・顧客ビジネスの状況によって開発の優先度が変わる可能性のあるプロジェクト
後々の状況に応じて変更を加える前提のプロジェクトにアジャイル型開発は有効です。アジャイルでは1〜4週間がひとつのサイクルです。そのサイクル内で完成したものを顧客やユーザーに届けることができます。詳細まで時間をかけて作り込むのではなく、実際に作ってみてから改善点を探していくことで、よりスピーディーに本質的な開発を続けることができます。
ウォーターフォール型開発
初めに決めた要件を、ある期限までに完了するという手法です。契約→開発→納品というフローに則ったシンプルなものです。厳密な要件定義と納期に合わせた進捗管理を行うことができれば、大きな問題は発生しません。しかし、はじめの要件定義が上手く行われていなかった場合や、作りたいものが途中で変わってしまった場合に対応することが難しくなります。
・メリット
開発計画がシンプルで、進捗管理がしやすい
・デメリット
仕様変更に対応しにくい
どのような開発の時に使われるか?
・大規模システム開発プロジェクト
大型システムの開発のように多くのエンジニアが関わるプロジェクトにおいて、明確に役割分担を行う必要がある際にウォーターフォール型開発が有効です。携わる人々の役割と期間を明確に決めることで、大規模でもスケジュール管理がしやすくなります。ただし、開発途中で仕様変更などが発生しないことを前提とするため、綿密な計画が必要です。
・ユーザーの要件が明確に定まっているプロジェクト
明確に欲しい要件が決まっている際には、仕様どおりに開発を粛々と進めれば良いため、ウォーターフォール型開発が有効です。役割を明確に決めることで、最短効率で開発を行うことができます。