ソフトウェア開発業界にはさまざまなアプローチが存在する——中には古い手法の新しいバージョンもあるし、最近導入された実践を採用しているものもある。最も一般的に使われている2つのアプローチはアジャイル、たとえばスクラム、カンバン、リーン、そして伝統的なウォーターフォールモデル、たとえば構造化手法や最近のRUPなど。
これらの2つのパラダイムに従う大多数のソフトウェア会社は、自ら選んだ手法が特定の側面で優れていると考えている。したがって、「どちらがより成功しているか?」という質問に答える前に、その主な違いを検討しましょう。
ウォーターフォールアプローチ
ウォーターフォールはソフトウェア開発における線形アプローチである。各フェーズはプロセスにおける明確な段階を表し、通常は次のフェーズが始まる前に完了する。各開発フェーズの間にマイルストーンが存在することが多い。
- 順次的なプロセスで大きなプロジェクトとして構造化される
- 変更がまれな環境に適している
- 事前に完全に定義された要件を必要とする
したがって、ウォーターフォールモデルは、前のフェーズが検証および検定された後でなければ次のフェーズに進むことを強く求める。図に示す通りである:

ウォーターフォールアプローチ
ロイスのオリジナルのウォーターフォールモデルでは、以下のフェーズが順番に実施される:
- システムおよびソフトウェア要件:製品要件書に記録される
- 分析:モデル、アーキテクチャ、およびビジネスルールを生成する
- 設計:ソフトウェアアーキテクチャを生成する
- コーディング:ソフトウェアの開発、検証、統合
- テスト:欠陥の体系的な発見とデバッグ
- 運用:完全なシステムインストール、移行、サポート、保守
アジャイルアプローチ
アジャイルはリーン思考から派生し、IT環境において「リーン」の概念を適用したものである。リーン手法の主な焦点は:
- プロセスにおける無駄を排除する
- 価値を生まないビジネス活動を最小限に抑える
- 顧客の視点から価値を最大化する

アジャイルアプローチ
アジャイルは、以下のコア原則を促進する実績のあるプロジェクト管理手法である。
- 頻繁な検査と適応
- チームの協力、自己組織化、および責任感を促進する
- 高品質なプロジェクトを迅速に提供するためのエンジニアリングのベストプラクティスのセット
- 開発を顧客のニーズと企業の目標と一致させるビジネスアプローチ
アジャイル開発 – 反復的ライフサイクル
アジャイル開発には、計画、要件分析、設計、コーディング、テスト、展開といった従来のフェーズが含まれるが、それらは直線的な流れではなくループを形成する。これによりプロセスは柔軟で繰り返し可能であり、任意の順序または並行して行われる。これにより、ユーザーからのフィードバックの収集、複数環境での継続的なテスト、実行中のプロジェクト範囲の変更が可能となる。
アジャイル手法の基盤
- 経験主義:実行、停止、振り返り、改善、継続する能力であり、生産性を段階的に向上させる形で実行できる。
- 優先順位付け:ビジネス価値に基づいて作業を提供する。
- 自己組織化:チームが利用可能なリソースと制約条件のもとで、作業をどのように提供すべきかを最もよく理解している。
- タイムボクシング:チームは、定められた時間枠内で定義されたタスクを完了しなければならない。
- 協働:チームは、与えられた時間内に最終製品を提供することにコミットし、チーム間の協働と創造的なタスク完了を促進する。
アジャイル vs ワーターフォール – トリプル制約
ウォーターフォールアプローチの最大の利点は、コストの固定化と予測可能性である。価格と納品日が明確にわかる。最大の欠点は柔軟性の欠如である。アジャイル手法は非常に柔軟で、元のビジョンとは大きく異なる製品へと進化できる。

アジャイル vs ワーターフォール
従来のウォーターフォール時間、コスト、範囲というトリプル制約に基づいている。これらの変数のいずれかを調整すると、少なくとも他の一つの変数が変化を余儀なくされる。成功したプロジェクトの提供は、これらの競合する変数のバランスに依存する。しかし、私たちが知っているように、単にリソースを追加しても、必ずしも望ましい結果が得られるわけではない。実際、ソフトウェア開発の後半にリソースを追加すると、悪影響を及ぼすことがある。
アジャイルアプローチ異なるアプローチを取る。トリプル制約を逆転させる。開始時点で範囲を固定するのではなく、アジャイルは時間(イテレーション)とコスト(チームメンバー)を固定し、範囲を調整して最も優先度の高い項目に集中する。アジャイルは範囲が時間とともに進化すると仮定する。目標は、予算と時間の範囲内で顧客にとって最も重要な要件を満たすことである。プロジェクトが進むにつれて、新しい要件の追加や優先順位の再設定が可能となる。

アジャイル vs ワーターフォールの品質
アジャイルかウォーターフォールか?図を見てください
スタンドィッシュ・グループの最新レポートでは、2013年から2017年にかけて調査されたプロジェクトについて述べています。アジャイルとウォーターフォールプロジェクトの全体的な成功、課題、失敗が以下の通りです。アジャイルプロジェクトはウォーターフォールプロジェクトよりも約2倍成功しやすく、3分の1の確率で失敗する可能性があります。

アジャイル対ウォーターフォール – プロジェクト成功確率
アジャイルの傘
2001年にアジャイル・マニフェストの誕生以来、アジャイルは大きな勢いを獲得しました。実際、アジャイルは単一のメソッド論ではなく、チームや組織がイノベーションを起こし、変化するニーズに迅速に対応し、リスクを低減できるマインドセットです。組織はスクラム、カナンバン、リーン、XPなど、さまざまな利用可能なフレームワークを柔軟に採用できます。

アジャイルの傘
リーンアプローチ
リーン組織は顧客価値を理解し、そのコアプロセスに注力して継続的に改善します。最終的な目標は、無駄ゼロの理想的な価値創造プロセスを通じて、顧客に完璧な価値を提供することです。
リーンの実施を導く5段階の思考プロセスは覚えやすいが、必ずしも実行しやすいとは限りません:
- 最終顧客の視点から価値を定義する。
- 各製品の価値連鎖のすべてのステップをマッピングし、可能な限り価値を生まないステップを削除する。
- 価値創造ステップを顧客に向けてスムーズで順次的な流れにする。
- 必要に応じて、顧客が次の上流活動から価値を引き出すようにする。
- 価値連鎖を特定し、無駄を排除し、フローとプルを導入することで継続的に改善し、完璧な状態に達するまでプロセスを繰り返す——無駄ゼロで完璧な価値を提供する状態を実現する。

5段階のリーンアプローチ
スクラムアプローチ
スクラムは、通常ソフトウェア開発においてプロジェクトを管理するアジャイルな方法です。アジャイルソフトウェア開発にスクラムを使用することは、しばしばメソッド論と見なされますが、スクラムをメソッド論として扱うのではなく、プロセスを管理するためのフレームワークとして捉えるべきです。

スクラムプロセスキャンバス
カナンバンアプローチ
カナンバンは「視覚的信号」または「カード」という意味の日本語です。トヨタのライン作業員は、製造プロセスのステップを表すためにカナンバンを使用しました。リーンの一環として、このシステムの高い可視性により、チームは何をいつ行うべきかをより簡単に共有できます。また、ワークフローを標準化しプロセスを洗練させ、無駄を減らし価値を最大化するのに役立ちます。スクラムスプリントボードと同様に、カナンバンは「ToDo – 進行中 – 完了」の活動を追跡しますが、進行中のタスク数を制限しています(チームリーダーが定義し、それを超えることはできません)。

カナンバンアプローチ
カナンバンの4つの核心原則があります:
- 作業を可視化して、コミュニケーションと協力を促進する。
- 進行中の作業を制限して、優先順位のない無限のオープンタスクの連鎖を回避する。
- フローを測定・最適化する — メトリクスを収集し、将来の問題を予測する。
- 分析とフィードバックを通じて継続的に改善する。