皆さん、こんにちは。
Story's代表の佐藤です。
本日はシステム開発におけるプロジェクト炎上の一例として、アジャイル開発に慣れている開発者がウォーターフォール型プロジェクトに適応できないケースを紹介します。
今回も、私の長年のIT業界での経験を基にお話します。
前回のBlogではウォーターフォール型とアジャイル開発の二つの主要な開発手法をご紹介しました。それぞれには独自の特徴がありますので、参考のため前回のBlogも併せてご覧いただければと思います。
▼よろしければYouTubeもご覧ください!
アジャイル開発・ウォーターフォール型の特徴
最近のトレンドとしてアジャイル開発があります。これは従来のウォーターフォール型のプロジェクトと比べて、開発期間をいくつかのスプリント(小さな開発サイクル)に分けることが特徴です。スプリントごとに開発、テスト、受け入れ、フィードバックを繰り返すことで、より迅速に開発を進め、クライアントにもフィードバックを早く反映することを目指しています。
しかし、アジャイル開発に慣れていくと、基本的にウォーターフォール型との違いを感じるでしょう。それぞれに良い点、悪い点があり、アジャイル開発の場合は、ドキュメントの整理や詳細な設計作成などが比較的困難な部分となります。
一方、ウォーターフォール型の特徴は、要件定義、基本設計、詳細設計といった各工程が完了しなければ次の工程に進むことができないという点です。この型式は今でも多くの業務システムや基幹システムで採用されています。
なので、アジャイル開発でスキルを身につけた開発者がいきなりウォーターフォール型のプロジェクトに参加すると、多くの場合、混乱します。私自身も、我が社のメンバーが経験したケースもあったため、今回この問題を取り上げています。
アジャイル開発者がウォーターフォール型PJに参加する時の問題点
ウォーターフォール型は、各工程をしっかりと進めるので、アジャイル開発に慣れた開発者はこの差に戸惑うことが多いです。
例えば、ウォーターフォール型では各工程ごとに要件定義書、基本設計書、詳細設計書といったドキュメントを詳細に作成する必要があります。しかし、アジャイル開発では、これらのドキュメントを作成しないことも多いです。
また、ウォーターフォール型では各工程が検収されなければ次に進めないため、アジャイル開発の「スピーディーに開発を進める」文化とは大きな違いがあります。
そして、最後によくある問題としてタスク管理が挙げられます。アジャイル開発の良さの一つとして、タスクを詳細に管理するよりも、その場でいろんなことを試すという柔軟性があります。しかし、ウォーターフォール型ではタスク管理を詳細に行うことが必要となります。
これらの違いから、アジャイル開発に慣れた開発者がウォーターフォール型のプロジェクトに参加すると、プロジェクトはしばしば炎上します。これは最近特によく聞く話です。
ですが、プロジェクトのタイプを自分で選ぶことができない場合もあります。もし、自分がプロジェクトの方式を決定できる立場であれば、それは理想的です。しかし、多くの方々はそういう決定をする立場にはないでしょう。また、いくつもの案件を選べる人であれば、自分がアジャイル開発に得意であるからといって、ウォーターフォール型の開発の案件を受けないという選択もできるでしょう。しかし、そういった選択肢がない方もたくさんいると思います。
案件やPJ方式を決めることができない方へのポイント
ウォーターフォール型の開発プロジェクトに参加する際には、やはり事前にプロジェクトのドキュメンテーションや運用ルールを理解しておくことが重要だと思います。具体的には、各工程がきっちりと行われること、ドキュメンテーションが詳細に作成されることなど、ウォーターフォール型の特徴を頭に入れておいてください。
ウォーターフォール型のドキュメンテーションは、ネットで探しても見つけることができます。その粒度を理解しておくことで、アジャイル開発からウォーターフォール型の開発への適応がスムーズになると思います。
知識を事前に持つことと、適切な心構えがあるだけで、プロジェクトへの取り組みは大きく変わると思います。また、弊社でもドキュメンテーションの提供サービスを始めたところですので、ご興味があればぜひご覧いただければと思います。
まとめ
今回は、アジャイルに慣れた開発者がウォーターフォール型のプロジェクトに参加した際に、対応できないという現状が多いという点について説明しました。
これからもシステム開発におけるプロジェクト炎上の事例をどんどんアップしていきます。では、また次のブログでお会いしましょう。