2大開発手法を比較! 注目の「アジャイル型」と多くの現場で使われている「ウォーターフォール型」の違いやメリットを知ろう

働き方

2021.12.24

みなさん、こんにちは。広報担当です。今回は、2つの開発手法について説明していきます。IT開発現場で多く使用される「ウォーターフォール型」と、最近注目されている「アジャイル型」は何が違うのか。基本的なところから説明していきますので、これからDX推進に携わる方や、IT開発に興味がある初心者の方にも理解できるような内容です。興味のある方はぜひ、チェックしてみてください。

必ずしもアジャイル型開発をする必要はない! 要件を見極めてベストな開発環境を構築しよう

IT開発の現場では、主に2通り(ウォーターフォール/アジャイル)の開発方法を採用していることをご存知でしょうか。

DXに携わることになった担当者やDXに関心を持っている方などは「ウォーターフォール」や「アジャイル型」という単語を耳にする機会がある(あった)かもしれません。しかし、実際にプロジェクトに参画したことが無ければ、どちらの開発手法もイメージが湧きにくいのではないでしょうか。

今回は、そんな方のために、IT開発で使われる2つの開発手法について説明していきます。

下の図は、ウォーターフォール/アジャイル、それぞれの開発方法を簡単な図で表現したものです。まずはこちらを眺めつつ、2つの作業工程の概要から違いを大まかに把握し、基本的な考え方を抑えておいてください。

【ウォーターフォール型】

多くの開発現場で用いられるポピュラーな開発モデル。大規模プロジェクトなどで主に使用される。

『水が流れ落ちる(ウォーターフォール)』ように工程が進むのが特徴で、現場ごとに細かな点で違いはあるかもしれないが、要求定義 → 外部設計 → 内部設計 →開発(プログラミング)→ テスト → 運用(リリース) の順番で開発が進んで行く。

【アジャイル型】

「アジャイルソフトウェア開発宣言」として、従来型のソフトウェア開発のやり方とは異なる手法を実践していた17名のソフトウェア開発者が、それぞれの主義や手法についての議論を行い、 2001年に公開された。

アジャイルとは「素早い」という意味がある単語。顧客の求める変化に適応し、スピーディーにリリースすることを目的にした開発手法で、ウォーターフォール・モデルの弱点を克服すべく開発された開発モデルでもある。短期間の間に開発~テスト~運用(リリース)を小さな単位で繰り返していく。

また、現在は特に「アジャイル型」が注目されていますが、それはDX推進が活発になっていることも理由の一つです。

アジャイル開発の方が多くのDX推進のプロジェクトに合う開発手法であるということが判明したということもあって、話題に上ることもあるのかもしれません。

上記の図でも分かるように、細かいスパンで開発、テスト、運用…が繰り返されるため、アプリケーション開発のように、スピード感が必要なプロジェクトには合う開発手法と言えます。ただし、現在、DXへの取り組みをしている企業は多くなっていますが、すべてにアジャイル型開発が合うというわけではないことも覚えておいてください。

話題性になっていることに合わせて、何が何でも「アジャイル型」にシフトした方が良い、と判断するのは危険です。アジャイルで開発することが自分たちのシステム開発の要件に合っているのかどうかは、ウォーターフォール・アジャイル、それぞれのメリット・デメリットを把握し、その後できちんと検討してみてください。

2つの開発手法を、以下からもう少し詳しく説明していきます。

使われている現場は多い! 品質重視・大規模プロジェクトには「ウォーターフォール型」

【特徴】

最初にプロジェクト全体の機能設計・計画を決定し、その計画に従って開発・実装していく手法。

そのため、要件定義後は、基本設計、詳細設計…のように次のフェーズへ進むため、前の工程に不具合があると先へ進むことができない。何を作りたいか、というゴールが明確なプロジェクトならば、ウォーターフォール開発が最適な開発モデルであり、合理的。

だからこそ、品質を重視する大規模プロジェクトなどでは、ウォーターフォールが使われ続けてきた。

<メリット>

・一つひとつの開発工程を完了させて進めていくので、工程の進捗管理がしやすい。

・必要な人数や予算をきちんと把握できる。

<デメリット>

・リリースされるまでの期間が長い。

・成果物(仕様書等のドキュメント)の作成にも時間が掛かる。

・仕様変更が発生した時のダメージが大きい。コストが掛かり、リリースが延長されるケースも。

<重視されること>

・コストとスケジュールを守る。

・要件定義された内容を実現する。

高速なPDCAを回すプロジェクトに最適! 「アジャイル型」

【特徴】

開発にかかる期間が短く(1週間から1か月程度)済む。

アジャイル型開発は、設計~開発~テスト~運用を繰り返すので「反復増加タイプ」とも呼ばれる。

そのため、アプリケーション開発やWEBサイト構築など、仕様変更や機能追加の可能性が高いプロジェクトに向いている。

開発の流れも厳密な仕様を決めず、大まかな仕様と要求だけを決めておき、仕様や設計変更が起きることを前提に開発を進められる。

★だからこそ、DXをスピーディーに進めたいシステムを抱える現場では「アジャイル型」が注目されている。

<メリット>

・開発スピードが短い。(顧客の要望によって途中でストップすることもある)

・仕様変更などに素早く対応できる。

・ユーザーへの提供価値を最大化できる。

<デメリット>

・仕様変更などが重なり、やろうとしていることが当初の開発目的からぶれてしまう恐れもある。

<重視されること>

・成果物の価値。

※アジャイル開発に関する用語※ 

「スクラム」
アジャイル開発手法の1つ。

課題に素早く対応するため、チームが一体となって能力を最大化することに集中する、というアプローチ。そのため、課題を解決に導くための強力なチームワークやコミュニケーション能力が必要とされる。スクラム開発では、顧客が要望するシステムに実装すべき機能を段階に分けて、優先度の高い順に反復して開発を行っていく。

作業は「プロダクトオーナー」、「スクラムマスター」、「開発メンバー」、それぞれに役割が割り振られ、責任者、調整・支援役、開発者などに分かれて作業にあたる。開発の流れは、開発期間の単位である「スプリント」を短く設定し、約1週間~4週間で開発が行われる。

「スプリント」
アジャイル開発における、プロジェクト管理用語。スクラムベースのアジャイル開発方式で用いる概念。

スクラム開発での開発期間の単位を「スプリント」と呼び、期間は短期間であることが特徴。この期間中に、仕様の確定から詳細設計、開発、テストまで、システム開発に必要なほぼすべての業務が行われる。

また、スプリントがあることで無駄な作業が発生することや手戻りを防ぎ、開発者は迅速な開発と実装に貢献することができる。

現場に合わせた開発手法を取り入れて、デジタルの課題をスピーディーに解決!

代表的な開発手法について説目してきましたが、まずはウォーターフォール、アジャイル、この2つの開発手法の違いのポイントを理解できていれば、どちらが最適なのかすぐに判断ができます。

また、どちらか一方の開発手法しか選べないというわけではありません。両者を併用して開発を進める『ハイブリット開発』というやり方もあり、臨機応変な対応をしている現場もあるようです。大切な事は、いま抱えているデジタルの課題を解決できる開発手法を選んでほしいということ。それを基準に考えてみてください。

そして、実際開発を始めた行けれど、現場に人材が足りない…というお悩みなど、デジタルに関する課題が発生した時には、私たちメンバーズにご相談ください。デジタルの課題を解決するなど、DX推進を支援する「DX PRODUCER」として、それぞれのデジタル化の課題にマッチングした専門性の高い人材が、常駐型でお客さまのDXを具現化し、推進する取り組みも実施しています。

そのほか、カンパニー企業では、人手不足なプロジェクトを抱えている方のために、アジャイル開発に特化した専任チームが開発を支援する「メンバーズエッジカンパニー」もあるので、気になる方はお気軽にお問い合わせください。

※DXプロデューサーへの問い合わせはこちら
https://www.members.co.jp/services/dx/index.html

※株式会社メンバーズ メンバーズエッジカンパニー(チーム型システム開発支援事業)
https://www.membersedge.co.jp/