〒160-0023
東京都新宿区西新宿3-2-9

TEL : 03-5324-2452

開発手法(アジャイル vs ウォーターフォール)

■開発手法とはなにか?

 会社のデジタル化を進める際に、パッケージ型のソフトウェアをそのまま導入するのではなく、スクラッチでの開発や、改修のためのシステム開発が発生します。システム会社にシステム開発を依頼する場合に、開発手法の話になることがあります。このようなときに手法の概要を知らないと、どのようにシステム開発を進めようとしているのかを理解することができないため、システム会社とのコミュニケーションが進まずに困ることもあります。ですから、開発手法の概要を知ってくことは、システム会社に仕事をしてもらううえでも有用になると思いますので、今回は、開発手法について説明をしていきたいと思います。

 システム開発には、大きく二つの手法があります。ウォーターフォール型とアジャイル型です。ウォーターフォール型というのは、従来の開発手法です。要件定義、設計、開発、システムテスト、ユーザー受入テストというフェーズが明確に区切られて、開発が進められます。ウォーターフォール型は、開発物が明確になっており、必要な機能がはじめから明らかな場合に有用な手法となります。しかし、例えば、スマートフォンのアプリ開発のように、そもそも開発物が明確に定義されていないようなケースでは、ウォーターフォール型の開発手法は適しません。何故かというと、ユーザーが開発物を確認するのが、ユーザー受入テストのような開発スケジュールの終盤である場合、その時点で想定と大きく違っていたことが判明しても、期間内・予算内に修正をすることが困難となるからです。

 一方で、アジェイル型というのは、準備、イテレーション、並行稼働というようにざっくりとフェーズが切られます。そして、イテレーションという期間に、設計、開発、テストのサイクルを何度も繰り返すことを想定しています。1週間とか、1カ月といった短いスパンで一つのサイクルを回していきます。こうすることで、ユーザーもプロジェクトの早い段階でアプトプットを確認し、修正ポイントを伝えることができるので、プロジェクト終盤になって大きな修正が入るよりも、柔軟にユーザーの意図に近いシステムを開発していくことが可能となります。

■アジャイル開発のメリット・デメリット

 近年では、このアジャイル型でシステム開発を進めるケースが多くなってきていますので、ここでメリット・デメリットとどういうケースではアジャイル型が適しているかについて、触れておきたいと思います。

 アジャイル型のメリットは、プロジェクト期間の初期の段階でシステムのプロトタイプを確認することができるので、プロジェクトの終盤でユーザーの想定と大きくずれることがありません。また、設計・開発・テストのワンサイクルで出た、課題を次のサイクルで修正していくことができるので、システムのブラッシュアップがしやすいというメリットもあります。

 他方、アジャイル型のデメリットは、イテレーションのサイクルを繰り返しているうちに、最初の想定からQCD(スケジュール、コスト、品質)が逸脱していく可能性があるということです。また、複数のチームで開発を進めているようなケースでは、全体の整合を図りにくいという点も留意点としてあげれます。ですから、プロジェクトの全体を俯瞰してみるマネジメント力というものが、より求められることになります。

 しかし、開発するシステムの要件が明確になりきっていない場合や、アプリの開発のような場合には、アジャイル型の開発が適してるケースが多いです。アジャイル型を採用する場合には、QCD(スケジュール、コスト、品質)において、何を遵守すべきかを明確にして、それを逸脱しないようにマネジメントしてくことが求められます。

(第112回: 2020/12/9)