アジャイル

「アジャイルマニフェスト」で読むウォーターフォールとの違い

リプリパ編集部

ここ数年で注目が集まってきたアジャイル開発ですが、実は20年以上前にとある「宣言」が出されていました。それが、2001年に発表された「アジャイルソフトウェア開発宣言(アジャイルマニフェスト)」です。
これは、当時ソフトウェア開発研究で活躍していた17名の専門家によってまとめられた宣言です。短い文章の中で、アジャイル開発とウォーターフォール開発という2つの手法が対比されていてとても分かりやすいので、参照してみましょう。

「アジャイルソフトウェア開発宣言(アジャイルマニフェスト)」とは

▼アジャイルソフトウェア開発宣言 (Manifesto for Agile Software Development)
https://agilemanifesto.org/iso/ja/manifesto.html

アジャイルソフトウェア開発宣言
アジャイルソフトウェア開発宣言

私たちは、ソフトウェア開発の実践
あるいは実践を手助けをする活動を通じて、
よりよい開発方法を見つけだそうとしている。
この活動を通して、私たちは以下の価値に至った。

プロセスやツールよりも個人と対話を、
包括的なドキュメントよりも動くソフトウェアを、
契約交渉よりも顧客との協調を、
計画に従うことよりも変化への対応を、

価値とする。すなわち、左記のことがらに価値があることを
認めながらも、私たちは右記のことがらにより価値をおく。

中央部分を抜粋すると、そのままウォーターフォール開発とアジャイル開発との比較表になります。

ウォーターフォール開発アジャイル開発
プロセスやツール 個人と対話
包括的なドキュメント動くソフトウェア
契約交渉顧客との協調
計画に従う変化への対応

ただ、注意しておかなければならないのは、これが単純に『もはやウォーターフォール開発は古い』とか、『アジャイル開発の方が全てにおいて優れている』ということを意味しているわけではないことです。それは、なぜか?
その前に、上記の4つの項目をそれぞれもう少し詳しく見てみましょう。

プロセスやツールよりも個人と対話

もし、優れたプロセスやツールを用意できれば、ソフトウェアの開発経験が少ないエンジニアや、管理経験のないマネージャーにもプロジェクトを任せられます。しかし、どんなに優れたプロセスやツールがあっても、それを実行する個人のスキルによって、プロジェクトの成功・失敗が左右されてしまうのも現実です。また、どんなに優れたマネージャーがいても、ソフトウェアエンジニアがいなければ開発は進みません。
こういった現実を踏まえて、アジャイル開発では、プロセスとツールを重要視しつつ、それ以上にチームメンバー各個人に着目して、メンバー間の対話に価値を置いています。

包括的なドキュメントよりも動くソフトウェア

ソフトウェア開発が最終的に目指すものは、結局のところ、正しく動くソフトウェアそのもの。大量のドキュメントではありません。それらは、あくまでも資料の一つです。
アジャイル開発では、ユーザーに対して動くソフトウェアを迅速かつ定期的に提供するために、実装とテストにフォーカスしています。ドキュメントよりも、動くソフトウェアそのものが進捗の最も重要な尺度となります。
このためチームでは、単体テストからシステムテストまでのさまざまなレベルのテストを視野に入れます。ユーザーが操作できるレベルに達するまで、可能な限りの多くのテストを実施することに価値を求めています。

契約交渉よりも顧客との協調

現在のようにアジャイル開発が広く知られる前から、顧客が開発プロジェクトに積極的に参加することが望ましいことは分かっていました。定期的にフィードバックしながらソフトウェア開発を進めていくプロジェクトでは、従来の2倍以上の成功率を収めるとも言われます。そうはいっても、実際のプロジェクトでは、顧客にプロジェクトチームに常に参加してもらうことはできません。
アジャイル開発では、プロダクトオーナーと呼ばれる顧客の代理役をメンバーとして加えておきます。これによって、開発チームは顧客が求める価値を素早く、正しく理解できます。チーム内に、顧客と同じ視点を持ったが加わることで、顧客とのコラボレーションが実現します。

計画に従うことよりも変化への対応

ソフトウェアの機能や要求の半数以上は、顧客ニーズによって時間と共に常に変化していきます。また、顧客は実際に動くソフトウェアを見なければ、本当の要求を理解できないことが多いのも現実です。触って初めて、自分が求めていたモノと違うことを知るお客さま…現場の皆さんは、十分ご承知ですよね?
アジャイル開発では、顧客の代理人であるプロダクトオーナーから、多くのフィードバックをタイムリーに受け取るプロセスになっています。チームは実際に動くソフトウェアを作りながら、顧客が求める価値を追求し、その都度変化していく要求にいつでも柔軟に対応できる心構えを持つ必要があります。

結局、アジャイル開発もウォーターフォール開発も適材適所

このように比較すると、目的にかかわらず、アジャイル開発の方がウォーターフォール開発よりも全てにおいて優れているかのように錯覚します。しかし、前者が後者を今すぐ完全に置き換えられるわけではありません。その理由は、アジャイル開発とウォーターフォール開発のどちらが適しているかは、プロジェクトのニーズや規模、組織などの条件によって異なるからです。
アジャイル開発は、継続的な改善や迅速なマーケットへの投入が求められるプロジェクトに適しています。特に、顧客ニーズが急速に変化するような分野や、技術革新が進む分野においては、アジャイル開発が有効です。また、小さなチームでの協力関係や意思疎通が求められるため、チームメンバーが柔軟なマインドを持ち、協調性が高い組織において高い効果を発揮します。
しかしその一方で、柔軟な開発プロセスを支えるには、従来の手法よりも高いレベルのプロジェクト管理や品質管理システムや、人材の経験やスキルが必要です。
一方、ウォーターフォール開発は、計画性が高く、段階ごとに詳細な文書を作成することが求められます。そのため、大規模な組織や、プロジェクトの規模が大きく、開発プロセスの管理と品質管理が重要なプロジェクトに適しています。特に、一つもミスが許されない要件定義や、設計の文書化が重要なプロジェクトには適しています。

BANIの時代を生き残るために、アジャイル開発へ徐々にシフト

現代は、脆弱性がある/不安な/非線形の/理解不能な状態を象徴する、BANI(バニ)の時代だと言われています。変動性/不確実性/複雑性/曖昧性を意味したVUCA(ヴーカ)が常態化し、さらに変化が激しい世界に私たちは生きています。予測されていた労働生産人口の減少などに留まらず、パンデミックや戦争、エネルギー高騰、逼迫する物流など、思いもしなかった急激な変化が起きています。適材適所の開発手法があるとはいえ、このような環境では、柔軟性の高い開発スタイルで対応してくしかありません。
近年では、アジャイル開発をさらに進化させ、従来は向かないと考えられていたエンタープライズ用のシステムにも対応できる、大規模型アジャイル開発がトレンドです。この辺りの話は、またの機会で。

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

ABOUT ME
リプリパ編集部
リプリパ編集部
編集部員
リープリーパー(略称:リプリパ)編集部です。新しいミライへと飛躍する人たちのためのメディアを作るために、活動しています。ご意見・ご感想など、お気軽にお寄せください。
リプリパ編集部の記事一覧

記事URLをコピーしました