見出し画像

モダンアジャイルを読み解く

アジャイルの原点である『アジャイルソフトウェア開発宣言』が発表されてから10年以上が経ち、アジャイルの実践者たちは、さまざまなプラクティスを実践し、いろいろな分野から知見を取り入れ、常に時代に合わせて適応してきました。

現在では、プロダクトマネジメントやサービスデザインをはじめ、開発よりも広い視点での議論が活発になり、アジャイルには「ソフトウェア開発」よりも広い枠組みでのアプローチが求めれらています。

今回は、現代的なアジャイルのアプローチ『モダンアジャイル』の解説をまとめました。



モダンアジャイル - 4つの原則

アジャイル宣言から10年、イノベーティブな企業、ソフトウェアの思想的リーダーたち、アジャイルとリーンの開拓者たちは、よりシンプルで、より強く、より合理化されたアジャイルを模索してきた。この「モダンアプローチ」は、「実験的な成果の創出」と、「優れたカルチャーの育成」に焦点をあてている。今日、伝統的なアジャイル定義をバイパスして、モダンアプローチを語ることには、十分意味があるだろう。

モダンアジャイルは、4つの原則で定義される。

・人々を最高に輝かせる
安全を必須条件にする
・高速に実験&学習する
・継続的に価値を届ける

Google, Amazon, AirBnB, Etsy といった企業が、この4つの原理のよい見本だ。

考案者のJoshua Kerievskyは、初期のXP(Extreme Programming)賛同者、『パターン思考リファクタリング』の著者。「モダンアジャイル」は、世界最大のアジャイルカンファレンスである Agile2016の基調講演で披露しました。



1. ❤️人々を最高に輝かせる

人々を圧倒的に幸せにするプロダクトを作ろう。またプロダクトに関わる人を尊重し、幸せにしよう。

モダンアジャイルでは、エコシステム全体の人々を輝かせることにフォーカスすることで本物の成功を導きます。これは単に製品やサービスを使用する人々だけでなく、製造、購入、販売、または資金提供する人々が含まれます。私たちは彼らの状況と問題点、何が彼らを妨げ、何を達成したいのかを考えます。

モダンアジャイルでは「価値のあるソフトウェア」よりも枠を広げて考えます。Doneの定義でもベロシティでも顧客満足度でもなく、人々を最高に輝かせることにフォーカスします。


2. 🔰安全を必須条件にする

安全を必須条件とした文化の上で、プラクティスやプロセスを実践しましょう。人々の活動においては心理的安全性を重視し、システム的にはCI/CDやテスト自動化などのセーフティネットを貼ろう。

恐怖感で支配された文化は何も生み出しません。もし恐怖の文化があるのであれば、すばらしいプラクティスやプロセスも役に立つことはないでしょう。

安全性は人間の基本的なニーズであり、パフォーマンスを解き放つための鍵でもあります。危険な作業に従事する前に安全を確立することを必須条件としています。私たちは、人々の時間、情報、評判、お金、健康、人間関係を守ります。またプロダクトやサービスの回復力や安全性の向上に努めます。

Joshuaは「安全」というコンセプトにこだわりを持ち、日本語のAnzenから取ったAnzeneering (安全エンジニアリング)という造語も作っています。

またGoogleのプロジェクトアリストテレスの研究結果を参照し、高いパフォーマンスのために重要な要素は心理的安全性だと提唱しています。


3. 🧪高速に実験&学習する

失敗から学びましょう。フィードバックは学習です。短期的な成否にとらわれず、長期的に考え、積極的に失敗する(=Fail Fast)の価値観を大切にします。安全性がこの価値観を保障します。

実験と学習をしなければ、人々を素晴らしいものにしたり、安全を必須条件にすることはできません。私たちは頻繁に実験することで高速に学習します。フェールセーフな環境を用意することで、何も恐れずに多くの実験を行えます。

何かに行き詰まったり、十分に学習できていない場合は、より多くの実験が必要なことを示しています。

Joshuaはアジャイルソフトウェア開発宣言の「計画に従うよりも変化への対応を」を受動的であると批判しています。モダンアジャイルでは「実験をして本当に必要なものを得る」という能動的に捉えるのだと話しています。


4. 🎁継続的に価値を届ける

届いた価値だけが、誰かを喜ばせる価値になります。モダンアジャイルでは「価値のある仕事をより早く提供するにはどうすればよいのか」と考えます。価値を継続的に提供するには、より多くの価値をより小さな断片に分割する必要があります。

多くの機能を開発するよりも、開発計画を予測可能にするよりも、価値を届けることが重要です。どれだけ丁寧に開発し、入念にテストしても、使われない機能がたくさんあります。それを届けない限りは、それが価値かどうかもわからないのです。


---

モダンアジャイルの実践 - 12のプラクティス

1. 仕事の憲章化
2. リーンスタートアップの活用
3. リーンUXの適用
4. 頻繁な協調と統合
5. 安全に失敗できる環境
6. テストとリファクタリング
7. 人々への敬意と感謝
8. 非難しないふりかえりを指揮
9. フローに集中
10. 継続的なデプロイとリリース
11. プロダクトコミュニティを形成
12. ソリューションを進化

画像1

モダンアジャイルの4つの原則は12のプラクティスに支えられます。下の図は、4つの原則と12のプラクティスの関係図です。関連がわかりやすいように、各原則を表すアイコン❤️🔰🧪🎁をつけています。


1. 仕事の憲章化 - ❤️🔰

人々を最高に輝かせたいなら、その意味を定義する必要があります。

アジャイル憲章は、明確なビジョン、ミッション、テスト可能な成果物を、プロダクトコミュニティが発見し、同じ立場で考えてもらうための軽量なプラクティスです。

憲章の設置は、プロジェクトの最初に一度だけ行うものではなく、継続的な試みです(アジャイル憲章は英語だと “ing”が付いています)。良い憲章は道から逸れるのを防ぐガードレールのようなものです。


2. リーンスタートアップの活用 - ❤️🔰🧪

大規模な組織、小規模なスタートアップ、またはその中間のソフトウェアを開発する場合でも、エリック・リースの『リーン・スタートアップ』の知識を活用するとよいでしょう。

人々を最高に輝かせるために、不確実な状況下で活動していることの理解を助け、ユーザーが必要とするものを推測することが、いかにリスキーなのかを明らかにしてくれます。

素早く簡素な実験や仮説の高速な検証など、精緻なコードを作るための投資をする前に、何を作るべきなのかを発見するための有用な方法を提案してくれます。もしユーザーが実際にソフトウェアを使用しているか、価値を受け取っているか、幸せになっているかどうかを、分かってないならDoneの定義を再定義する必要があります。

また企業内でリーンの考え方を広めるのに苦労しているなら、『リーンエンタープライズ —イノベーションを実現する創発的な組織づくり』を参考にするといいでしょう。


3. リーンUXの適用 - ❤️🧪

リーン・スタートアップに密接に関係しているのがリーンUXです。リーンUXは、優れたユーザー体験を発見して作り出すための、迅速で低コストな分析主導のアプローチです。

リーンUXの詳細については『Lean UX —リーン思考によるユーザエクスペリエンス・デザイン』を参考にするといいでしょう。


4. 頻繁な協調と統合 - 🔰🧪🎁

チーム内やチーム間での協調と統合が貧弱だと、組織は危険にさらされます。これはソフトウェア開発における多くの問題の根本的な原因です。

単独作業は、次のリスクを生み出す傾向があります。知識の属人化、脆弱な問題解決、より大きな欠陥、より強い注意力の散漫、より少ない規律(特に良いテスト、リファクタリングによる設計改善)です。そこでペアリングやモブプログラミングを推奨します。

ペアリングは、二人で一緒に仕事をし、ペアを定期的に交換することです。モブプログラミングは、三人以上で協力して、キーボード&マウスでドライブする人を定期的に交代する、開発に対するコミュニティアプローチです。

ペアリングとモブプログラミングの両方が、学習のスピードを高め、価値のある結果を生み出す流れを加速させます。また重要なスキル・知識に対する危険な依存性を減らし、技術への容易な変更を可能にし、人々を最高に輝かせるものをもたらします。ディープな単独作業を可能にするチームもあります。彼らはコードレビューによる協調作業によって素早くマスターブランチに統合していきます。


5. 安全に失敗できる環境 - 🔰🧪

もし恐怖の文化があるのであれば、すばらしいプラクティスやプロセスも役に立つことはないでしょう。最高の企業は、人々が実験、失敗、異議、そして彼ら自身が安全と感じる文化を醸成します。

小規模で安全な実験によって、複雑なシステムへの重大な影響を観測できるフェイルセーフな環境をつくります。安全に失敗できる企業は『学習する組織』です。

Etsy社は、その輝かしい例です。

新規社員の一人が、大切なCSSファイルを間違って削除してウェブサイトをダウンさせました。彼らは何をしたでしょうか?

彼らは、そのエンジニアに、重大な欠陥を発見した「三つ袖があるセーター賞」を与え、サイトをより柔軟性の高いデザインに修正しました。


6. テストとリファクタリング - 🔰🎁

テストとリファクタリングはアジリティの本質です。モダンアジリストは、探索的テスト、自動テスト、主に設計の活動であり副次的にテストの活動でもある『テスト駆動開発』や、いくつかの手動テストを実行します。

テストとリファクタリングの訓練と指導をしたモダンアジャイルコミュニティでの定量的な研究では、欠陥が80%以上減少しました。信頼できる高速で自動化されたソフトウェア動作チェックの存在は、プログラマが、コードの変更や欠陥の生成を恐れることが少なく高速に仕事ができるセーフティネットを持つことになります。

リファクタリングは、設計が複雑になることを回避し、コードを簡単&わかりやすく、したがって変更しやすくする重要なプラクティスです。リファクタリングは「見直し」です。私たちは、より学び、以前の作業の欠陥を発見し、コードの設計・読みやすさ・シンプルさを向上させるように見直すに取り組みます。

テストとリファクタリングは、共にチームのスピードに不可欠な存在であり、それゆえモダンアジャイルの重要な部分です。


7. 人々への敬意と感謝 - 🔰

安全の文化を確立するには、役割、年齢、学歴、人種、性別に依らない心からの敬意と感謝が重要です。アンゼニア(Anzeneer)は、時間、お金、情報、評判、関係、健康を守り、人々を尊重します。

組織が不断の卓越性を達成するためには、人々が何時でも誰にでも尊敬され感謝される文化を持たなければなりません。


8. 非難しないふりかえりを指揮 - 🔰🧪

セス・ゴーディンは「人々は失敗を恐れず、責任を恐れている」と言いました。またノーム・カースは「最初にふりかえりを試みたときに人々が最も露わにする恐れの1つは、儀式が非難と反論を撒き散らす否定的なセッションになることです」と言いました。

ゆえに、ノルムは、ふりかえりの前に慣習的に読まれる「ふりかえりのお約束」を定義しました

たとえどんなことに気付いたとしても、チーム全員が、その時点で知っていたことや彼(彼女)のスキル及び能力、利用可能なリソース、そしてその時の状況で最善を尽くしたのだと理解し、心の底から信じます。

このお約束は、ふりかえりが学びに焦点を当て、安全な場になるように導きます。

ふりかえりについては『アジャイルレトロスペクティブズ —強いチームを育てる「ふりかえり」の手引き』がおすすめです。


9. フローに集中 - 🎁

スプリントやイテレーションなどのタイムボックスによる連続的な流れ作業を推奨します。カンバンが連続フローを可能にします。

作業をボード上で可視化し、重要な作業を列を移すことで開始します。また仕掛品を制限し、緊急な作業の分類を補助し、ボトルネックを可視化して取り除き、開発中の価値を素早く顧客に届けます。

フロー効率とリソース効率のトレードオフでは、フロー効率を重視します。タイムボックス内でどれくらいの作業ができるかを予測したり、ストーリーポイントの正確な値を考慮したり、魅力的なバーンダウンやバーンアップチャートを公開しようと試みたりするのはムダです。

カンバンは、合理化されたアジャイル計画です。『カンバン —ソフトウェア開発の変革』がおすすめです。


10. 継続的なデプロイとリリース - 🔰🧪🎁

エリック・リースのIMVUは、1日に何回もプロダクション環境へ安全にデプロイすることによって、初期アジリストの想像をはるかに上回る継続的インテグレーション(CI)の実践をしていました。

継続的デプロイは、A/Bテストなど素早い実験を実現し、ユーザーが最も必要とするものを迅速かつ安全に提供することを可能にします。これは「コンセプトをキャッシュにする」までのサイクルを劇的に減らす、リーンのプラクティスの1つです。

CDに関しては『継続的デリバリ —信頼できるソフトウェアリリースのためのビルド・テスト・デプロイメントの自動化』がおすすめです。


11. プロダクトコミュニティを形成 - 🔰🎁

適切な人がいなければ、人々を最高に輝かせるソフトウェアを作成することはできません。適切な人々は、プロダクトコミュニティを作り上げます。 プロダクトコミュニティは「プロダクトに影響を与えたり、プロダクトに影響を受ける可能性のある人々」です。

コミュニティはあなたが思っているよりも広く、プロダクトが直面する主な問題は「自分自身のコミュニティ意識の欠如」です。複雑な問題を解決するときに必要なのは「自分自身が解決しようと問題の一部である」と自覚することです。

プロダクトコミュニティは、フロントエンド、バックエンド、ミドルウェア、およびUXチームに分かれておらず、独自のバックログを持ちます。プロダクトコミュニティはフルスタックであり、原始的なソリューションを、人々を最高に輝かせ、組織の成功に役立つ洗練されたプロダクトへと進化させる準備をします。

プロダクトコミュニティを形成することは、誰が何をどのようにすることが重要な結果を達成するのに不可欠であるのか認識するのに役立ちます。プロダクトコミュニティは「憲章」において頻繁に定義付けと洗練化を行います。


12. ソリューションを進化 - 🔰🧪🎁

ソリューションをすばやく進化させるには、適切な人材とチームを組織して、何を構築し、協調し、統合し、開発し、リリースするのか計画する必要があります。モダンアジャイルは、フィードバックからすばやく学ぶため、ユーザーにプロダクトや機能をすばやく提供します。

ソリューションを徐々に進化させていく「進化的な設計」は学習の鍵であり、ユーザーに価値をすばやく伝える最良の方法の一つです。また、プロダクトコミュニティ内やプロダクトコミュニティ間での協調と統合のリスクを明らかにし、修正するための非常に便利な方法です。


---

モダンアジャイルの背景

アジャイルソフトウェア開発宣言が発表されてから15年以上経ち、世の中はさらに複雑さを増しており、実際に多くのドメインが関係するので、「ソフトウェア開発」だけの話ではなくなりました。アジャイルは、ビジネス自体に波及するようなものです。

価値のあるソフトウェアを作ることは、ゴールではありません。枠を広げて考えましょう。ユーザーが存在に気づき、購入し、使わなければ意味がありません。また新機能に気づいたり、必要なときに間に合わなければ、完璧に構築されたソフトウェアの価値はゼロです。

よりシンプルなアプローチがないか、より安全にできないか、実験と検証を実施し、効率的なアジャイルプロセスの構築しました。それがモダンアジャイルです。モダンアジャイルは「価値駆動」であり、「非慣例的」です。


価値駆動 - アウトプットではなく、アウトカムにフォーカス

アジャイルマニフェストは「ソフトウェア」開発宣言とあるように、よりよい「ソフトウェア(=アウトプット)」の開発方法を求めて定められたものでした。一方でモダンアジャイルは「結果(=アウトカム)」にフォーカスします。よりよいソフトウェアを作ろうとすれば、価値のあるソフトウェアが作られますが、ゴールではありません。枠を広げて考えましょう。

ソフトウェアは使われるために作られるのであり、実現したいことがあったはずです。より多くの機能を作ることや、より多くリリースすること、より多くのベロシティを稼ぐことなど、アウトプットに執着してしまう「ビルドトラップ」を避けなければなりません。

ビルドトラップを避け、顧客価値やビジネス価値などのアウトカムに集中することこそ、価値を届ける姿勢です。アウトカムにフォーカスしたプロダクト開発に関しては『プロダクトマネジメント —ビルドトラップを避け顧客に価値を届ける』がおすすめです。


非慣例的 - あえてプロセスをつくらない

モダンアジャイルは、4つの原則が掲げられている一方で、具体的なプロセスを一切定めていません。スクラムに代表される従来のアジャイルメソッドは、あくまでも補助輪です。補助輪を使っている限り、なかなかアジャイルにはなりません。そして補助輪を外すことで初めてアジャイルになれます。

「ツールを導入すれば〜」「スクラムをやれば〜」「○○を適用すれば〜」といった形だけのアジャイルが横行するのはプロセスに頼ってしまうからです。プロセスが「主」で、人が「従」という考え方が基底になっている点では、ウォーターフォールと同じ姿勢です。

対象となるプロセスに悪化の真因を求め、別のプロセスに切り替えることで解決しようという考え方では、問題の根本を解決できません。重要なのは「プロセスをどのように変えるか」ではなく「私たちの思考・行動の様式をどのように変えるか」です。

モダンアジャイルでは、実践を重要視し、自分自身の思考と行動を振り返り、自分自身を変えることにフォーカスします。


---

参考文献

参考書籍


モダンアジャイルに対して、伝統的なアジャイルの読み解きはこちら。


最後まで読んでいただき、ありがとうございました。もらったサポートは次の書籍代にあてます!