Facebook x

ジャンル

開発技法・工程
開発技法・工程 2024.02.07
x hatenabookmark

「アジャイルソフトウェア開発宣言」とは?4つの価値と12の原則、今も重視される理由

監修: 江添 智之

バルテス・ホールディングス株式会社 R&C部 副部長

「アジャイルソフトウェア開発宣言」とは?4つの価値と12の原則、今も重視される理由

様々な状況に迅速に対応したソフトウェア開発を可能にする「アジャイルソフトウェア開発」。「アジャイル開発」と呼ばれることが多く、一般化が進んでいます。

この概念を提唱した文書が2001年に発表された「アジャイルソフトウェア開発宣言(Manifesto for Agile Software Development)」です。

基本原則となる「アジャイルソフトウェア開発宣言」ですが、実は認知が高いとはいえないという指摘があります。そこで今回は、この宣言が示している「4つの価値」「12の原則」についてまとめました。

もくじ
  1. 「アジャイルソフトウェア開発宣言」とは?
  2. 宣言の中核となる「4つの価値(value)」の意味
  3. 「12の原則(Twelve Principles)」が示すこと
  4. 2001年に発表された宣言が今も重視される理由
  5. これからのアジャイル開発との関わり

1.「アジャイルソフトウェア開発宣言」とは?

「アジャイルソフトウェア開発宣言(Manifesto for Agile Software Development)」は、2001年に発表されたアジャイルソフトウェア開発(以下、アジャイル開発)の価値観や原則をまとめた文書です。

軽量開発手法のエキスパート17名がアメリカのユタ州スノーバードに集い、開発手法や価値観を巡る深い議論をして、まとめられました。以下のサイトに宣言の内容と翻訳、17名のエキスパートの名が記されています。このとき「機敏さ」「素早さ」「活発さ」を意味する「アジャイル(Agile)」という単語が使われました。

image1-6.png

ご存知のように、その後、アジャイルはそれまでの「スクラム(Scrum)」や「エクストリームプログラミング(Extreme Programming)」などといった軽量開発手法の総称となり、世界中に広まることになりました。

2.宣言の中核となる「4つの価値(value)」の意味

「アジャイルソフトウェア開発宣言」ではアジャイルを実践する上での基本的な価値観である「4つの価値」が示されています。近年では用語としては「バリュー(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

(「Manifesto for Agile Software Development」より引用)

この「4つの価値」は次のような内容です。

  • 「個人と対話」
    プロセス、ツールよりも個人と対話。
  • 「実際に動く(働く)ソフトウェア」
    広範囲で包括的なドキュメントよりも実際に動くソフトウェア。
  • 「顧客とのコラボレーション」
    契約交渉よりも、顧客とのコラボレーション(利的協力)。
  • 「変化に対応」
    計画に従うよりも、変化に対応。

全体として、対話を重視し、交渉するのではなく協力して変化に素早く対応して、何よりも「実際に動くソフトウェアを作ること」を優先することが重視されていることがわかります。

なお、この「4つの価値」はそれまで中心だった「ウォーターフォール(Waterfall)型開発」と対比する形で示されていると指摘されています。つまり、ウォーターフォールでは、プロセスやツールが大切にされ、ドキュメントを優先し、契約交渉や計画が重視されていた、ということです。

アジャイル開発は、この「4つの価値」を中心にしているため、ユーザーの要求へ最大限応えられるという利点があります。

3.「12の原則(Twelve Principles)」が示すこと

「アジャイルソフトウェア開発宣言」では、「4つの価値」に加えて「アジャイルソフトウェアの12の原則(Twelve Principles of Agile Software)」を提示しています。

「12の原則」では、具体的にアジャイル開発にどういった姿勢で臨み、どう行動すべきか、どんな目標を設定し、スケジュール感覚を持つのが大切かといった理想像がコンパクトに箇条書きで12つ示されています。

・顧客満足を最優先して継続的に価値あるソフトウェア提供する。
・要求変更を歓迎し、変化を味方につけて顧客の競争力を向上させる。
・「動くソフトウェア」を2~3週間、2~3ヶ月と短い間隔でリリースする。
・ビジネスサイドと開発者は日々一緒にプロジェクトで働く。
・意欲に満ちた人を集めてプロジェクトを構成し、メンバーを信頼する。
・情報を伝える効率的で効果的な方法は対面で話をすること。
・動くソフトウェアが進捗の最も重要な尺度になる。
・アジャイル・プロセスは持続可能な開発を促進する。一定のペースを維持する。
・技術的な卓越性と優れた設計への欠かさない注意が機敏さを高める。
・シンプルさが本質。
・最良のアーキテクチャ・要求・設計は、自己組織的なチームから生まれる。
・定期的に振り返りをして、自分たちのやり方を最適に調整する。

(「Principles behind the Agile Manifesto」より抄訳)

宣言のWEBサイトにある「12の原則」のリンクをクリックすると開くのが「アジャイル宣言の背後にある原則(Principles behind the Agile Manifesto)」ページです。この2つの表現の違いも興味深いですし、「4つの価値」と読み比べると宣言の理解に繋がると思います。

4.2001年に発表された宣言が今も重視される理由

2001年に発表された「アジャイルソフトウェア開発宣言」は今も重視されています。
その理由は、市場環境や顧客ニーズのめまぐるしい変化と、技術的な進歩によってアジャイル開発の手法が進化と変化を続ける中でも、よりどころとなる「原典」となっているからです。

また、デジタルトランスフォーメーション(DX)時代になり、以前にも増して短いサイクルでのソフトウェア開発が求められるようになりました。その流れにあって、時代に寄り添い、顧客と価値観を共有し、さらに企業や社会の課題解決を可能にするために欠かせない観点として、あらためて「4つの価値」と「12の原則」の存在感が増しているといってよいと思います。

別な見方をしてみましょう。

開発に関するオンライン情報は爆発的に増えています。見つけた方法を手当たり次第に探っていると情報の洪水に飲まれてしまうこともあるでしょう。
そんなとき、迷わないための足場として「アジャイルソフトウェア開発宣言」は非常に有用です。この内容をしっかり意識することで、新しい開発手法にも柔軟に対応できるようになると考えられます。

5.これからのアジャイル開発との関わり

「アジャイルソフトウェア開発宣言」を読むと、開発に関わる人々と顧客が、協力してソフトウェアを作り上げることが何より重要であることがわかります。しかし、過剰な"顧客優先"や"コミュニケーション重視"は開発の進行を遅延させることに繋がりかねません。
そのため、実際にアジャイル開発を進めるにあたっては、短期間で「動くソフトウェア」をリリースできる信頼できる開発チームを構築することがポイントとなると考えられます。

今後、ソフトウェアの開発規模はより大きなものになるでしょう。昨今では、アジャイル開発とウォーターフォール開発を合わせたハイブリッド開発といった手法も登場しています。

そういった歴史的な流れの中にあっても、20年以上前に書かれた「アジャイルソフトウェア開発宣言」の価値が色あせないのは、アジャイル開発の本質が明瞭かつコンパクトにまとめられているからです。
その意味で、アジャイルソフトウェア開発の「根」として今後もずっと参照され続けていくのではないでしょうか。

「アジャイルソフトウェア開発宣言」は、おもに開発者側の視点が中心となって記されていますが、実現することで顧客の満足度は向上し、ビジネス的な利益をもたらすはずです。

その意味では、アジャイルソフトウェア開発における「成功のコツ」「幸せのカギ」がコンパクトにまとめられた文書だといえます。
気がついたときに読み返してみてはいかがでしょうか。

開発技法・工程
x hatenabookmark

監修: 江添 智之

バルテス・ホールディングス株式会社 R&C部 副部長

WEB系、エンタープライズ系、医療系など様々な開発業務にプログラマ、システムエンジニア、プロジェクトリーダーとして携わった後、バルテスにてテストエンジニア・コンサルタント業務に従事。現職では主にテスト業務に関する研究開発および人材育成を担当。Scrum Alliance認定スクラムマスター、ディープラーニング検定(G資格)、ネットワークスペシャリスト、データベーススペシャリスト、JSTQB Advanced Level(テストマネージャ、テストアナリスト)など、ソフトウェアの開発およびテストに関する資格を多数取得。JaSST Kansai 実行委員。現在の関心は機械学習のテスト分野への応用と効率的なテスト自動化。