アジャイルソフトウェア開発宣言とは?4つの価値と12の原則について解説

2024.11.25IT , アジャイル
  • このエントリーをはてなブックマークに追加
ソフトウェア開発

近年、ソフトウェア開発にもスピードや柔軟性が求められ、柔軟に仕様変更ができる「アジャイル開発」が注目されています。アジャイル開発では、その原点である、「アジャイルソフトウェア開発宣言」を理解しておくことが肝要です。
この記事では、アジャイルソフトウェア開発宣言で登場する4つの価値と12の原則について解説します。

アジャイル開発とは

アジャイル開発は、期間や成果物を小さい単位で考え、開発を進めるマインドや方法論のことです。
従来のソフトウェア開発の課題であった「開発途中の仕様変更」にも柔軟に対応でき、最新技術の活用においても価値の創造ができる方法として、その手法がさまざまな現場で導入されています。

アジャイル開発について詳細はこちら

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

アジャイル開発の考え方は2001年、ソフトウェア開発の専門家によって提唱された「アジャイルソフトウェア開発宣言(アジャイルマニフェスト)」によって、広く知られるようになりました。現在のアジャイル開発の基礎は、この文書によるものです。

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

アジャイルソフトウェア開発宣言の原文と日本語訳は、次の通りです。

(原文)

『Manifesto for Agile Software Development

We are uncovering better ways of developing software by doing it and helping others do it.Through this work we have come to value:

Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan

That is, while there is value in the items on the right, we value the items on the left more.

Kent Beck
Mike Beedle
Arie van Bennekum
Alistair Cockburn
Ward Cunningham
Martin Fowler
James Grenning
Jim Highsmith
Andrew Hunt
Ron Jeffries
Jon Kern
Brian Marick
Robert C. Martin
Steve Mellor
Ken Schwaber
Jeff Sutherland
Dave Thomas

© 2001, the above authors
this declaration may be freely copied in any form,
but only in its entirety through this notice.』

引用:Manifesto for Agile Software Development|Agile Alliance
https://agilemanifesto.org/

(日本語訳)

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

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

プロセスやツールよりも個人と対話を、
包括的なドキュメントよりも動くソフトウェアを、
契約交渉よりも顧客との協調を、
計画に従うことよりも変化への対応を、価値とする。
すなわち、左記のことがらに価値があることを認めながらも、私たちは右記のことがらにより価値をおく。

Kent Beck
Mike Beedle
Arie van Bennekum
Alistair Cockburn
Ward Cunningham
Martin Fowler
James Grenning
Jim Highsmith
Andrew Hunt
Ron Jeffries
Jon Kern
Brian Marick
Robert C. Martin
Steve Mellor
Ken Schwaber
Jeff Sutherland
Dave Thomas
© 2001, 上記の著者たち
この宣言は、この注意書きも含めた形で全文を含めることを条件に
自由にコピーしてよい。』

引用:アジャイルソフトウェア開発宣言|Agile Alliance
https://agilemanifesto.org/iso/ja/manifesto.html

アジャイルソフトウェア開発宣言「4つの価値(Value)」

アジャイルソフトウェア開発には、基礎となる考え方「4つの価値(Value)」があります。それぞれを簡単に解説します。

なお、アジャイルソフトウェア開発宣言においては、「◯◯よりも◯◯」と表現されています。しかしこれは、後者の考え方を元に、前者の在り方を考えるべきという意味である点にご注意ください。

1.個人と対話

1つめは「プロセスやツールよりも、個人との対話を重視すること」です。プロセスやツールを機械的に適用するのではなく、個人対個人で対面でのコミュニケーションを行い、相互理解を深めることが、よりよいチーム作りにつながります。

2.動くソフトウェア

2つめは「包括的なドキュメントよりも動くソフトウェアを」です。ドキュメントのみで仮説検証や進捗報告を行うと、表面上の確認となり、問題点を見逃す恐れがあります。実用に足る品質のソフトウェアを使うと素早く仮説検証が行え、より価値のあるソフトウェアを作成できます。

3.顧客との協調

3つめは「契約交渉よりも顧客との協調を」です。契約においてはサービスを受ける側・提供する側という立場になるものですが、ときに両者が対等な関係にならないこともあります。双方がお互いの立場を超えてパートナーとして協働することが、より実用的なソフトウェアを作ることにつながります。

4.変化への対応

4つめは「計画に従うことよりも変化への対応を」です。従来のシステム開発では、計画通り開発を進めることが重視されています。しかし開発途中に顧客の要望が変更になったり市場が変化したりするケースがしばしば発生し、スケジュール管理やコスト、成果物の品質に影響することが課題でした。アジャイル開発ではこれらの課題を克服するべく、顧客や市場のニーズの変化をより良い成果を生み出す機会ととらえ、受け入れることが基本となっています。

アジャイルソフトウェア開発宣言「12の原則(Twelve Principles)」

アジャイル開発

アジャイルソフトウェア開発宣言では4つの価値を実現するために、「12の原則(Twelve Principles)」を設け、プロジェクト推進のための考え方をまとめています。

出典:アジャイル宣言の背後にある原則|Agile Alliance
https://agilemanifesto.org/iso/ja/principles.html

1.顧客満足を最優先とし、価値のあるソフトウェアを早く継続的に提供する

顧客満足を最優先し、「顧客が本当に求めているもの」を追求することをゴールにします。最初に充分な話し合いが行われないままにQCD(※)の達成を目標とすると、価値あるソフトウェアの創造には至りません。初期の段階で顧客と開発者が徹底的に話し合い、素早くソフトウェアを提供することが求められます。

※QCD:生産管理や業務改善において重要な要素であるQuality(品質)、Cost(コスト)、Delivery(納期)のこと

2.要求の変更を歓迎する

アジャイル開発では開発前期・後期にかかわらず、要求の変更を受け入れます。昨今のIoTやAIといった未知の技術を使った開発や業務改善は、はじめから明確な答えが出るものではありません。顧客の要望の変更を受け入れることが価値の創造につながり、結果顧客の競争力を引き上げることにもなります。

3.「動くソフトウェア」を短い間隔でリリースする

十分な品質の「動くソフトウェア」を2~3週間程度の短い間隔でリリースし続けることも、原則のひとつです。長い開発期間を設けると、時が経つにつれて顧客の要望が変わり、顧客が本当に欲しい成果物とならない可能性があります。短い開発期間で、なおかつ顧客が実際に動くソフトウェアで確認ができると、顧客から具体的なフィードバックを得ることができ、成果物の満足度を上げることにつながります。

4.ビジネスサイドと開発サイドの協力

顧客が要求を出す一方であったり、開発側がコミュニケーションを取らなかったりすると、開発は困難になります。関係者全員が共通目標に向かって一緒に働くことで、リリースやフィードバックが行いやすくなるのです。

5.意欲に満ちたメンバーを集め、信頼する

意欲的なメンバーを集めて、相互にリスペクトできる関係性が理想です。たとえ高い能力を有するメンバーを集めていても、良好な関係を構築できていないとせっかくの能力を発揮できません。対立構造を避け、細かい指示は出さず裁量をある程度持たせることが、信頼関係につながります。

6.情報を伝えるために対面での会話を行う

アジャイル開発では、対面で直接本音を話し合うことが大切です。システム仕様などはテキストでも情報共有はできますが、ビジネスの目的や漠然とした心配事などは、文字化しにくいケースもあります。お互いの本音をくみ取りやすくするために、対面で双方向に対話することが有効です。

7.動くソフトウェアこそが進捗の最も重要な尺度

「動くソフトウェア」は顧客の確認やフィードバックに有効であることに加え、進捗状況や品質を正確に把握することにも役立ちます。ドキュメント上の進捗管理だけでは、重大な問題を見逃す恐れがあります。真に進捗状況を把握するには、品質も加味できるようにソフトウェアを動かすことが必要です。

8.持続可能なペースでの開発

開発において生産性を最大とするためには、開発者やその他関係者が心身ともベストな状態を保つことが重要です。無理のない持続可能なペースで開発を行えるよう、開発環境を整えることが原則となります。

9.技術的卓越性と優れた設計に対する不断の注意

開発メンバーの技術力や設計力が優れていると、高品質のソフトウェアを速いスピードで開発できます。既に保有する技術だけでなく最新の技術を学び、効果的な方法をプロジェクトメンバーに共有することも、ソフトウェアの高い品質や保守性を保つことにつながります。

10.シンプルさが本質である

シンプルさは、裏返すと「無駄がない」ということでもあります。開発途中の機能であっても不要と判断された場合には開発中止とする決断をし、本当に価値あるものだけを含める状態を求めることが理想です。

11.自己組織的なチームであること

最良のアーキテクチャ・要求・設計を生み出すのは、自己組織的なチームです。自己組織的とは、自律していることを意味します。自己組織的なチームにおいては、個々のメンバーが自分の作業やその他行動に責任を持ち、ときにはメンバー同士で連携して、チームの成果を最大限に発揮できます。

12.定期的な振り返り

最後の原則は、プロジェクト終了後の振り返りではなく、プロジェクト進行中の振り返りを行うことです。定期的かつ短い時間で振り返りを行うと、効果的な方法がチームメンバーに共有できます。またチームメンバーの風通しもよくなり、ネガティブな意見でも伝えやすくなるでしょう。

アジャイルソフトウェア開発宣言との向き合い方

DX

DXが推進されている昨今において、柔軟性の高い開発を行えるアジャイル開発の存在感が高まっています。アジャイル開発の方法論にはスクラムやXPなど複数存在するため、開発者としてはアジャイル開発のどの方法を使うかに目を向けがちです。
ただ、いずれの方法も、プロジェクトによっては必ずしも正解になるとは限らず、試行錯誤を行うことになります。表面的な方法論ではなく、アジャイル開発の本質的な考え方を理解することが、プロジェクト成功への近道となるでしょう。

まとめ

アジャイル開発の4つの価値、12の原則についてご紹介しました。原則にもあった通り、アジャイル開発の成功には、高い技術力を持ったメンバーが求められます。

アイ・ラーニングでは、アジャイル人材やプロジェクトマネジメントに関して、下記のスキルトレーニングを行っています。ご興味がある方はぜひお問い合わせください。

アジャイル研修
https://www.i-learning.jp/service/projectmngmnt/topics/agile.html

プロジェクトマネジメント研修
https://www.i-learning.jp/service/projectmngmnt.html

アイ・ラーニングコラム編集部

【他社事例から学ぶ】自社のDX推進を成功に導くために

DX時代をけん引する人材を育てるための戦略

  • このエントリーをはてなブックマークに追加