
【この記事はこんな方に向けて書いています】
- 「ウォーターフォール」「アジャイル」という言葉を、呪文のように聞かされている方
- システム開発の進め方に、なぜ複数の種類があるのか、その理由を知りたい方
- 自分の会社のプロジェクトが、なぜあんなに進め方で揉めているのか、こっそり理解したい方
- これからITプロジェクトに携わる上で、最低限の「共通言語」を身につけておきたい方
- 難しいプロジェクトマネジメントの話を、とにかく分かりやすく、面白く学びたい方
「このプロジェクトは、ウォーターフォールで進めます」 「いや、今の時代、アジャイルでやるべきでしょう!」
ITプロジェクトのキックオフ会議。スーツ姿の大人たちが、開発の「進め方」を巡って、熱い議論を交わしている…。そんな場面に、遭遇したことはありませんか? システム開発の世界には、「ウォーターフォール」と「アジャイル」という、2つの大きな開発思想(プロジェクトの進め方)が存在します。
「どっちも、システムを作るための手順でしょ? なぜそんなに揉めるの?」 そう思いますよね。 実は、この2つの手法は、ただの手順の違いではありません。例えるなら、「絶対に失敗が許されない、格式高いフルコース料理」と、「お客様の声をリアルタイムに反映する、行列のできる人気フードトラック」ほどに、その哲学も、得意な場面も、全く異なるのです。
この記事では、システム開発の二大流派である、ウォーターフォールとアジャイルの違いを、この「料理の作り方」に例えて、その本質を解き明かしていきます。
結論:ウォーターフォールは「豪華なフルコース」、アジャイルは「人気のフードトラック」
まず、この記事の結論であり、すべてを理解するためのイメージをお伝えしましょう。 システム開発という「料理」を作る時、
- ウォーターフォール開発 = 完璧な計画と手順で作る「豪華なフルコース料理」
- アジャイル開発 = 変化に対応しながら、素早く価値を提供する「人気のフードトラック」
ウォーターフォールは、結婚式や公式晩餐会で提供されるフルコース料理をイメージしてください。 提供するメニュー(=機能)は、数ヶ月前から完全に決まっています。シェフたちは、その完璧な計画書(=設計書)に基づき、「前菜」「スープ」「魚料理」「肉料理」「デザート」という各工程を、順番に、一つひとつ完璧に仕上げていきます。スープを作りながら、同時進行でデザートの味見をすることはありません。そして、すべての料理が完成した最後の最後に、お客様のテーブルへと運ばれます。
一方、アジャイルは、音楽フェスやお昼のオフィス街で大人気のフードトラックをイメージしてください。 彼らは、「今日はタコスとブリトーを作ろう」という大まかな計画はありますが、お客様の行列の様子や、「もっと辛いソースはないの?」といった生の声を聞きながら、短いサイクルで、次々と出来立ての商品を提供していきます。そして、その日の売れ行きやお客様の反応を見て、明日のメニューを柔軟に変えていくのです。
この、「計画」を重視する静的なウォーターフォールと、「適応」を重視する動的なアジャイル。この根本的な哲学の違いが、すべての違いを生み出しています。
ウォーターフォール開発:完璧な計画を重んじる「伝統の調理法」
ウォーターフォール(Waterfall)とは、その名の通り「滝」を意味します。 水が滝の上から下へと、決して逆流することなく流れ落ちるように、開発工程を一つずつ、後戻りせずに進めていくのが、この手法の最大の特徴です。
フレンチフルコースの調理工程(ウォーターフォールの流れ)
- 要件定義(メニューの完全決定) まず、お客様(クライアント)と、数ヶ月にわたる綿密な打ち合わせを行い、提供する料理のすべてを、一品残らず決定します。ここで決まったメニューは、原則、後から変更できません。
- 設計(完璧なレシピの作成) 決定したメニューを作るための、詳細なレシピ(設計書)を、すべて書き上げます。材料の分量から、火加減、調理時間まで、誰が作っても同じ味になるように、完璧に文書化します。
- 実装(レシピ通りの調理) シェフ(プログラマー)たちが、レシピに一字一句従い、ひたすら調理(プログラミング)を進めます。
- テスト(最終的な品質検査) すべての料理が完成したら、ソムリエや総料理長(テスト担当者)が、すべてのお皿を並べ、味、見た目、温度が、レシピ通りに完璧に仕上がっているかを厳しくチェックします。
- リリース(お客様への提供) すべてのチェックをクリアして初めて、完成したフルコースが、お客様の元へと運ばれます。
得意な場面:銀行の勘定系システムや、ロケットの制御システムなど、「作るべきものが、最初から100%明確に決まっている」「絶対に失敗が許されず、仕様変更がほとんど発生しない」プロジェクト。
弱点:途中でのお客様の心変わり(仕様変更)に、全く対応できません。最後の最後まで、お客様は料理(動くシステム)を一口も食べることができないため、「全部食べ終わったけど、実は私、魚アレルギーだったんです…」という、悲劇が起こる可能性があります。
アジャイル開発:変化への対応を喜ぶ「最新の調理法」
アジャイル(Agile)とは、「素早い」「機敏な」といった意味を持つ言葉です。 その名の通り、計画に固執するのではなく、状況の変化に、素早く、しなやかに対応していくことを最優先する開発手法です。
人気フードトラックの営業スタイル(アジャイルの流れ)
アジャイル開発では、「スプリント」と呼ばれる、通常1週間~4週間の短い開発サイクルを、何度も何度も繰り返します。
- スプリント計画(今日の「イチオシメニュー」を決める) フードトラックの店長(プロダクトオーナー)と、シェフ(開発チーム)は、毎朝ミーティングを開きます。「お客様から要望の多かった、アボカドトッピングを追加しよう」「今日は暑いから、スパイシーなソースを試してみよう」といったように、このスプリント(1~4週間)で作るべき、最も価値の高い機能をいくつか選びます。
- 開発(調理して、すぐ提供) シェフたちは、その日のうちに、決まったメニュー(機能)を、調理(開発)し、完成させ、すぐに「動く状態」でお客様に提供します。
- レビュー(お客様の反応を見る) 提供した料理を食べたお客様から、「美味しい!」「もっとチーズが欲しい!」といった、生のフィードバックをすぐにもらいます。
- ふりかえり(明日の作戦会議) その日の営業が終わったら、チームで「今日の連携は良かったね」「ソースの準備に時間がかかりすぎたから、明日は改善しよう」と、仕事のやり方そのものを改善します。そして、お客様の反応を元に、次のスプリントで作るメニューをまた計画するのです。
この「計画→開発→レビュー→ふりかえり」という小さなサイクルを、高速で回し続けることで、お客様を本当に満足させる、最高の料理(システム)を、共に創り上げていくのです。
得意な場面:新規のWebサービスや、スマートフォンアプリ開発など、「最初から完璧な正解がわかっておらず、市場やユーザーの反応を見ながら、柔軟に改善を重ねていきたい」プロジェクト。
弱点:全体の詳細な計画を立てないため、厳密な納期や予算の見積もりが難しい場合があります。また、お客様にも、頻繁なレビューやフィードバックへの協力が求められます。
データで見る開発手法のトレンド:なぜ今アジャイルが主流なのか
では、現代のIT業界では、どちらの手法がより多く採用されているのでしょうか。 IT業界におけるアジャイル開発の動向を調査した、世界的に有名なレポート「State of Agile Report」の最新版によると、ソフトウェア開発チームの88%が、何らかの形でアジャイル開発を導入していると回答しています。
なぜ、これほどまでにアジャイルが主流となったのでしょうか。 それは、現代のビジネス環境が、「VUCA(ブーカ)」と呼ばれる、変動性(Volatility)、不確実性(Uncertainty)、複雑性(Complexity)、曖昧性(Ambiguity)の非常に高い時代に突入したからです。
数ヶ月、あるいは一年かけて、完璧なフルコース料理(システム)を準備しても、完成した頃には、お客様の好みも、流行も、季節すらも、すっかり変わってしまっているかもしれません。 それならば、たとえ小さくても、価値のある料理を、素早く提供し、お客様の「今、食べたいもの」に、機敏に対応し続けるフードトラック(アジャイル)の方が、ビジネスを成功に導く確率が高い。多くの企業が、そう考えるようになったのです。
まとめ:最高の料理は、最高の「調理法」選びから始まる
今回は、システム開発の二大流派、「ウォーターフォール」と「アジャイル」の違いを、「フルコース料理」と「人気フードトラック」という、料理の世界に例えて解説してきました。
- ウォーターフォールは、計画を重んじ、後戻りしない伝統的なフルコース。
- アジャイルは、変化への適応を重んじ、素早く価値を提供するモダンなフードトラック。
ここで最も重要なことは、「どちらが優れていて、どちらが劣っている」という話では全くない、ということです。 国賓をもてなす公式晩餐会で、フードトラックを出す人はいません。 逆に、変化の激しいストリートで、数ヶ月先までメニューが固定された、高級レストランを開店するのは、大きなリスクを伴います。
プロジェクトの目的は何か。要求は、どれくらい明確で、固まっているか。お客様は、どれくらい開発に協力してくれるか。 これらの状況を総合的に判断し、最適な「調理法」を選択すること。 それこそが、プロジェクトを成功に導く、本当の「シェフ」に求められる、最も重要なスキルなのです。
コメント