幡ヶ谷亭直吉ブログ

娘のここねと格闘するエンジニア。

『Effective DevOps』を読んで ~ 学習と成長のための文化的運動について

読書メモ。2025年18冊目。
『The DevOps ハンドブック 理論・原則・実践のすべて』を読んでの感想となります。(2025/2/25記載)

本の概要

DevOpsには技術的な側面だけでなく、開発や運用をはじめとするさまざまな部門を繋げる組織文化を構築するという重要な側面があります。本書では、主にDevOpsの文化的な事柄に着目し、異なるゴールを持つチームが親和性を高め、矛盾する目標のバランスを取りながら最大限の力を発揮する方法を解説します。 「DevOpsの4つの柱」としてコラボレーション、アフィニティ(親近感、一体感)、ツール、スケーリングを挙げ、個人と個人のコラボレーション、チーム間や組織全体でのアフィニティの構築、企業全体でのツール選択の考え方、さらに組織がスケールする中でのアフィニティの向上と維持について4部構成で詳述。さらに組織が変化するために「4つの柱」がどのように機能するかについても解説します。 組織の内側から変化を起こし、変化を促進して組織全体へとその影響を広げ、持続可能な組織を構築する方法を紹介する本書は、ソフトウェアの開発、運用、組織のマネージメントに携わるすべての人に必携の一冊です。

引用:

www.oreilly.co.jp

動機

・今月は自分のDevOpsに対する認知を深めるDevOps強化月間としている。
・『The DevOps ハンドブック』で得た認識を深めたい。
・効果的なDevOpsとは何かを知りたい!!

感想

『The DevOps ハンドブック』に引き続き改めてDevOpsとはツールやハウツーじゃないことを実感しました。

本書の紹介文にある通り、DevOpsとは【異なるゴールを持つチームが親和性を高め、矛盾する目標のバランスを取りながら最大限の力を発揮する方法】であり、むしろゴールの先にある同一の価値に対してサイロを壊すためにはどうすれば良いのかが焦点となっていました。
読み進めるうちに開発者だけでなく、プロダクト開発に関わる人たちで認識を揃えたくなる書籍であることが分かりました。

個人的にはDevOpsというワードが聞こえる環境に所属する人たちは読んだ方が良い一冊だと思います。
もし、まだ当初で扱われているDevOpsが機能していない環境であれば、十分に学びのある一冊になると思います。

忘れたくないメモ

■devopsとは文化的な運動
devopsは情報のサイロを壊し、関係を観察し、チーム間で発生する誤解を解明するための反復的な取り組みを強調するプロフェッショナルで文化的な運動。

■devopsとは文化を織りなす要素の一部
devopsはストーリーを共有し、共感を育み、効果的かつ永続的に力を出せるようにするためのものの考え方であり、仕事の進め方のフレームワーク
文化を織りなす要素の一部であり、働き方やなぜその働き方をするのかに影響を与える。
devopsは、単なるソフトウェア開発手法のひとつではない。devopsは部品の寄せ集めではなく、devopsに力を与えているのは、文化的、人間的側面。
文化のなかでは、ツールだけでなく、価値観や基準、知識が同じくらいに重要。
ツールが「devops」になるのは、ツールの使い方によってである。

■構造的な問題からの学習
devopsの基本概念は組織全体に応用できる。
devopsとは、効果的に仕事をするために、社会構造、文化、技術を革新する方法を見つけること。
非難のない環境は、発生した問題を全員の協力で解決し、問題発生を個人や組織の学習機会と捉える。
ヒューマンエラーを個人的なものではなく構造的なものとして見る。
組織が問題を最小限に抑え、問題を今後に活かしたいと思うなら、システムを全体像として捉えなければいけない。

■共通理解による修復
サイロ化している環境では共通理解が欠如し、意思疎通がないため、失敗確率が高くなる。
予想外の問題や障害にぶつかった際、全員が共同体に属しているという共通理解があれば、修復に向かっていく。

■サイロ化の解消
システムの複雑化にともないスキルや職種の専門分化が進むことで、問題意識の違いによりサイロごとに使う言葉が異なるようになった。
サイロ化とともに、ソフトウェアとそれを実行するハードウェアに関する仕事も専門分化した。
devopsの導入によって専門化を競い合うのではなく、互いの協力と協調を重視し、職種を越えて人とプロセスを重視するようになった。

■組織的な学習
組織的な学習とは、組織が持つ知恵を集め、成長させ、共有するプロセス。
学習する組織とは、学習を意識的に行い、学習を具体的な目標として掲げ、時間とともに蓄積された学習量を増やしていくために具体的な活動をしている組織。
組織的な学習を目標に掲げることは、非難文化と非難のない文化を分ける要素のひとつ。
非難だらけな組織は学習よりも懲罰を重視する。それに対し、非難のない学習する組織は、経験から価値を取り出すことを考え、たとえマイナスの経験であっても、そこから学ぶべき教訓や得られる知識を探す。
組織的な学習は企業全体に大きな影響を与え、そうでない企業よりも成功していることが多い。

■本質的な変化を根付かせるために
最も効果的にdevopsを活用するには、セキュリティ、品質保証、サポート、法務など組織内のすべてのチームを考慮に入れる必要がある。
複数のチームが関わるなら、devopsの原則の適用でメリットを得られる。
本質的な変化を根付かせるためには、サービス運営のミッションと責任を協働体としてのチームに割り当てる。
チームを必要に応じてスケールアウトできるように、経営層は明確な役割と責任を示す必要がある。

■すべてのアイデアを一つに
devops運動の背後にあるアイデアの多くは、以前から別の名前で存在していたものが多い。
部門のサイロに反対する議論、学習する組織の提案、人間的なシステムの推進、自動化と計測の推進などすべてのアイデアをひとつにまとめたのはdevops運動が初めてであり、数字からも明らかな成功を収めた。
devopsを活用すれば、組織内のツール、技術、プロセスを成長、発展させることが可能となる。

■心の理論
効果的なコラボレーションは、コミュニケーション、平等な参加、心の理論を含む。
心の理論とは、自分には自分の考え方があり、他者にはそれぞれのコンテキストから生まれた別の考え方があることを認めること。
それぞれの人がどのように異なるかを考え、その違いがものの考え方にどのように影響を与えるかを探る。
そうすることは自分の機能の強化に役立つとともに、相互理解を築いてdevops共同体にとって重大な対立を解決する助けとなり、 賢いチームメイトとしての能力のレベルアップにもつながる。

■成長思考と固定思考
失敗に対する非難のない見方がうまく機能する理由の一部は、ミスが起きることを認めた上で、人と組織がともに学習、成長、進歩できると考える成長思考を採用していることにある。

チームにうまくいっていない部分があっても、向上する方法や学んで進歩する方法を探していれば、よくなることができる。
学習、教育、自己改善に力を入れることで、賢くしっかりとした個人とチームを得る
固定思考の人は、自分の現在の能力に関係するフィードバックだけに注意を払いがちとなり、将来どのように進歩していけばよいかのフィードバックが耳に入らない傾向がある。
それに対し、成長思考の人は、自分をよくするために役立つあらゆるフィードバックに耳を傾け、学習してよくすることに力を注ぐ。

■コミュニケーション
コミュニケーションによって、人に自分がひとりではないことを教え、問題への対処方法の共有を実現し、グループに知識を伝えることができる。
結果、人やチームは打たれ強くなる。
効果的なコミュニケーションは、組織全体に大きな影響を与える。
コミュニケーションの主要ば理由には、理解の深化、影響力の行使、感謝の表明、コミュニティの構築がある。

■明確な共通の目標
コミュニケーションを効果的なものにすることは、共通の目標に向かって協力し続け、人のあいだの信頼と共感を築くためのポイントとなる。

このような共同関係を作るためには、すべてのチームが目指す大枠を支える共通点となる共通のビジョンや目標を確立し、コミュニケーションできなければいけない。
共感を深め共通の問題意識を持つことに加え、共通のビジョンがあれば、組織やそれよりも大きい目標の明確なイメージをみんなに与えることができる。
明確な目標があると個人の自律的な行動が生まれたり、行動するときの指針になる。

■遊び
作業システムにおける「遊び」とは、積極的に仕事をしていない状態のこと。
仕事の割り当てすぎを防ぐためには、意図的な遊びを予定に入れることが欠かせない。
計測できる仕事より、本質的に計測するのが難しい人間関係を円滑化する仕事を重視する。
また、遊びは、変則的な仕事を処理するためにも重要な意味を持つ。
どれくらいの遊びが必要かを知るためには、仕事がどれくらい変則的なのかを理解し、その上に予備時間を加える必要がある。
社会ネットワークと個人的な成長のために必要な時間を加えて予定を立てる。 

■ツールの選択が持つ意味
devopsのツールは、チームや組織が相互理解を築いて仕事に取り組めるようにする。
ツールの選択は、共通言語の選択。
あるチームにとって他のチームよりも認知コストの高いツールを選ばなければいけない場合は、認知コストの高さを意識し、 影響を受けるチームをまわりで支えるようにすべき。

■ツールの利用目的
効果的に仕事を進めるとは、相互理解を深めること。別々の目標に向かって進んで行こうとしているチーム間で起きる回避不能な誤解を緩和するために調整していくこと。
ツールはコミュニケーションの向上、境界線の設定、devops共同体の枠内での相互理解の回復のために使える。

■目的を欠いたツール
組織内の誰が何のためにどのようにツールを使うかを無視してツールを導入しただけの「devopsソリューション」には、devopsとはどういうことか、なぜdevopsが大きな成功収めるのかという全体感が欠けている。
ツールと技術だけで人と人の間の問題や文化の問題を解決しようとしてはいけない。

■コミュニケーション促進のためのツール
行動はツールによって形作られる。
対立や摩擦を軽減するツールがあれば、コミュニケーションが行われる可能性は高くなる。
チャットソフトウェアを持たない企業や、チームの壁を越えたコミュニケーションができないような技術的な限界を抱えたチャットソフトウェアを使っている企業では、コミュニケーションは生まれにくくなる。