自己組織は難しい。達成するために何が求められているかを理解する必要があり、成功は目に見える形でなければならない、と Accenture のマネージングディレクタである Micro Hering 氏は言う。彼は自己組織化のために境界を作ること、自分たちがどれくらいうまくやれているのかを示しながら、チームのコンテキストを強化することを提案した。
“何年かに渡って、自己組織に対する考え方を何度か変えました。アイデアは気に入っているのですが、非常によく失敗するのもまた見てきました。”と Agile Portugal 2019 で Hering 氏は述べた。
自己組織する人は、結果を得るために求められる全てのことを理解する必要があり、そしてこの成功はチームに見える形でなければならないと言及した。組織では両要素とも容易に達成できるものではないのが大抵で、すると、自分たちがやりたいことだけ選んで、他のことは無視するような自己組織チームが生まれるという。彼は、機能的にはうまくいくが、セキュリティに問題があり、スケールしないPoC(概念実証)を組み立てるという例を示した。
Hering 氏はこれを脱する2つの方法を提示した。自己組織化するために境界線を作るか、どれくらいうまくやれているのかを見るためにチームのコンテキストを強化するかというものである。
境界線を作るには、完了する必要がある全てのことを見ること。そして、チームがどこで自己組織できて、どこでできないかについて合意すること。Hering 氏は以下の例を示した。
わたしの世界では、わたしたちのアジャイルコーチはどのことをやりたいか、どのクライアントと働きたいかということについて自己管理できます。しかし、例えばマーケティングの予算と優先順位はマーケティングチームによって規定されるのです。
チームのコンテキストを強化したかったら、何度かに渡ってより多くのデータを与えることができる、と Hering 氏は述べた。セキュリティ侵害の数、ユーザによって上げられたサポートチケット、インフラストラクチャの遠隔測定データなどを見せるのだ。
1度に全てをするのは負担が多いため、Hering 氏は自己組織レベルを上げながらデータフローを徐々に上げていくことを提案した。
Mirco Hering 氏は、Agile Portugal 2019 にて、アジャイルの世界から DevOps にこの考えを適用させることについて講演を行った。InfoQ は Hering 氏にインタビューを行い、チームのニーズと組織のニーズのバランスを取ること、DevOps を適用することについてうかがった。
InfoQ: 例えば自律と自己組織化といったチームのニーズと、管理と統制ができることの保証といった組織の要求のバランスはどう取ったらいいでしょうか?
Mirco Hering氏: 組織は適切なバランスを探さなければなりません。各チームが、インフラストラクチャからセキュリティ、ユーザビリティに渡って全てをカバーすると期待するのはどこか理不尽です。わたしたちは小さなアジャイルチームを求めています。彼らはステークホルダにとって何が最も問題となるのかについて、よくフォーカスするべきなのです。
別の側面は、自動環境プロビジョニングや、開発パイプラインに構築されたセキュリティといったセルフサービスの機能を通してカバーされるべきです。それが可能でないところは、共有機能が引き続き役割を担うことになります(例えば、チームが活用できるUXエキスパートを迎えるなど)。
鍵となるのは、これらのプロセスをできる限りシームレスにすることです。わたしは、チームがチーム外の人にどれだけ依存しているか、ヘルプの各リクエストがどれくらい長く掛かるかを計測するというアイデアが好きです。これにより、チームがどれくらい自律的になってきているかを確認するための、その過程で改善できる2つの良い評価基準を得られるのです。
InfoQ: 既にアジャイルジャーニーにいる組織が DevOps を適用するのに、どんなアドバイスをあげますか?
Hering氏: 誠実な願いは、もしあなたがアジャイルジャーニーにいて、ソフトウェアと何か関わりを持っているなら、DevOps がジャーニーの一部であるということです。最も広く、最も有意義な感覚でいうと、DevOps はデリバリプロセスの全体を改善することなのです。アジャイルはよりよいソリューションを築くのを助けてくれます。DevOps はそれをより効率的に、より独立してデリバリするのを助けてくれます。
その鍵は、アジャイルを DevOps ジャーニーに使って、DevOps の改善を実験としてバックログで管理することです。各実験はデリバリメカニズムを改善するか、またはメカニズムに関する何かを学ばせてくれます。正しく適用されれば DevOps は、チームがインフラストラクチャ、セキュリティ、パフォーマンスなどの詳細について気をもむことなく活用できる DevOps プラットフォームの機能を作るでしょう。これらの懸念を取り去り、アジャイルチームがデリバリするプラットフォームの一部にすることで、DevOps は自己組織チームの偉大な成功要因となりえるのです。そしてもちろんチームは好きなだけ、または必要なだけプラットフォームに関わることができますが、概してステークホルダーが喜ぶ機能的な成果をデリバリすることにフォーカスできるのです。
ガイドしてくれる有意義なメトリクスを持っているなら、インタラクションごとによくなるでしょう。何が DevOps で、何が DevOps じゃないかに関する独断主義で妨げられてはいけません。ソフトウェアをデリバリすることについて上手くなっていっている間は、あなたは適切なジャーニーにいるのです。