本記事は Engineering Manager Advent Calendar 2020 の10日目になります。
はじめに
Qiita もアドベントカレンダーも初投稿の、もちねこといいます。
現在私は、株式会社 Synamon という XR 技術を用いたプロダクトの開発などをしているスタートアップで、エンジニアリング・マネージャーとスクラムマスターをしています。
エンジニアリング・マネージャーの方は少なからず組織をマネジメントしているでしょう。
しかし組織というものは複雑で難しいことも多いのではないでしょうか。
組織をマネジメントする上で役に立つツールの1つとしてのシステム思考の基礎の紹介と、その具体例としてスクラムを見てみたいと思います。
システム思考は『エンジニアリング組織論への招待』でも紹介されていますね。
私もまだまだシステム思考初心者なのですが、具体例と合わせて学んだほうが応用につながるのではという思いです。
システム思考入門者向けのレベルの内容になっていますが、スクラムをシステムとして見たことがない方も参考になるかと思います。
この記事を読んでいただくことで、システム思考に興味を持っていただけたり、よりスクラムの理解が深まっていただけると幸いです。
ちょうど記事を書き始めた頃に公開された『スクラムガイド2020』でも、システム的な側面が明言されるようになったのでタイムリーな話題かもしれません。
ちなみに大規模スクラム(LeSS)では明示的にシステム思考を1原理としています。
言葉の定義
本題に入る前に、本記事で使用する言葉の定義を確認しましょう。
スクラム
スクラムとは、スクラムガイドで定義されている内容を指すこととします。
以下では特に明言しない限りスクラムガイドは2020年12月時点での最新版である『スクラムガイド2020』を参照します。
スクラムをご存知ない方がいましたらそちらをご一読ください。
システム
システムとは、相互に影響を及ぼしあう要素から構成される、まとまりや仕組みの全体を指すものとします。
(参考:システム)
システムと呼べるものは自然環境から生命、建築、ソフトウェアシステム、組織、経済などさまざまです。
ここではスクラムに限定して具体例を考えていきます。
それ以外の具体例を知りたい方は、『世界はシステムで動く』や『学習する組織』などをご参照ください。
本記事におけるシステム思考は、ドネラ・H・メドウズさんの『世界はシステムで動く』の内容を参照しています。
システム思考に触れたことのない方はこちらの書籍が分かりやすくておすすめです。
システムの特徴
システム思考の基礎的な部分であるシステムの特徴を引用し、その具体例としてのスクラムを見てみましょう。
システムの要素
システムの要素には3つあります。
- 要素
- 相互のつながり
- 機能または目的
(参考:『世界はシステムで動く』第1章より)
要素はそのままスクラム内で定義されている内容で、定義、理論、価値基準、役割、イベント、作成物、などがあります。
これらの要素が互いに独立しているのではなく、相互に関係性があることは明白でしょう。
役割ひとつ取っても役割の間には関係性があります。
それではスクラムの機能または目的も見てみましょう。
スクラムはスクラムガイドにおいて以下のように定義されています。
スクラムとは、複雑な問題に対応する適応型のソリューションを通じて、人々、チーム、組織が価値を生み出すための軽量級フレームワークである。
(引用:『スクラムガイド2020』、P5より)
これよりスクラムの目的は、複雑な環境や問題において組織が生み出す価値を最大化すること、だと言えるでしょう。
それを実現するための戦略が適応力あるいはアジリティの向上であり、それを生み出すのがスクラムで定義されているフレームワークです。
(参考:システムの最適化目標がなければ組織改革はできない)
また。スクラムの中でもプロダクトゴールやスプリントゴールといった目標が確約(コミットメント)として強調されています。
ひとまずスクラムがシステムの構成要素を備えていることが分かりました。
全体性
システムには全体性と呼ばれる性質があります。
これは、システムをその要素に分解してもシステム全体を理解できないといった性質を指します。
(参考:ホーリズム)
システムの構成要素には相互のつながりが含まれるため、要素を切り離してしまうとそれらのつながりとしての性質が失われてしまいます。
さて、スクラムには全体性があるでしょうか?
スクラムガイドにはこんな記述があります。
スクラムガイドにはスクラムの定義が含まれている。フレームワークの各要素には特定の目的があり、スクラムで実現される全体的な価値や結果に欠かせないものとなっている。スクラムの核となるデザインやアイデアを変更したり、要素を省略したり、スクラムのルールに従わなかったりすると、問題が隠蔽され、スクラムの利点が制限される。場合によっては、スクラムが役に立たなくなることさえある。
(引用:『スクラムガイド2020』、P2より)
スクラムの一部だけを導入することも可能だが、それはスクラムとは言えない。すべてを備えたものがスクラムであり、その他の技法・方法論・プラクティスの入れ物として機能するものである。
(引用:『スクラムガイド2020』、P16より)
つまり、スクラムはただのルールや原則の集合体ではなく、それらの全体として機能を持っていることが分かります。
例えば「プロダクトオーナーは1人である」というルールはスクラム全体の数%に過ぎないかもしれませんが、それを無視した場合に失われる効果は元のスクラムの効果の数%の範囲には留まらない可能性があるということです。
システムにはこういった直感に反する非線形な性質があります。
永続性
システムのほとんどに要求される性質として、永続性があります。
ほとんどすべてのシステムにとっての重要な機能は、自らが必ず永続できるようにすることです。
(参考:『世界はシステムで動く』第1章より)
さて、スクラムには永続性の性質が含まれているでしょうか?
スクラムガイドのスクラムチームの項目に、開発の持続可能性への言及があります。
持続可能なペースでスプリントの作業を行うことにより、スクラムチームの集中と一貫性が向上す
る。
(引用:『スクラムガイド2020』、P6より)
また、スクラムが開発する対象であるプロダクトにも有期性はないことがほとんどでしょうし、タスクとしての開発だけでなくそれを開発する組織も永続性を要求します。
システムの機能
スクラムが少しシステムに見えてきたでしょうか?
さらにシステムの持つ強い機能について見ていきましょう。
レジリエンス
システムにはレジリエンスという性質があります。
レジリエンスとは、ある変動のある環境の中でシステムが生き残り、持続する能力がどの程度あるか、ということです。
(引用:『世界はシステムで動く』第3章より)
さて、スクラムにはレジリエンスの性質が含まれているでしょうか?
レジリエンスはスクラムの経験主義の3本柱にある検査と適応に見ることができます。
プロセスのいずれかの側面が許容範囲を逸脱していたり、成果となるプロダクトが受け入れられなかったりしたときは、適用しているプロセスや製造している構成要素を調整する必要がある。それ以上の逸脱を最小限に抑えるため、できるだけ早く調整しなければならない。
(引用:『スクラムガイド2020』、P6より)
スプリント期間を短く切ることでその機会を増やすことや、スプリント内の各イベントの目的にそれぞれ検査と適応の要素が含まれているのが分かります。
このようにスクラムは目標や理想に適応するバランス型フィードバック・ループを備えています。
また、スクラム自体がフレームワークであり余白を備えているのも、現場の環境に適応するためのレジリエンスと言えるでしょう。
自己組織化
自己組織化とは、局所的でシンプルなルールから複雑で機能的な構造を自ら生み出す性質のことです。
複雑なシステムの中には、この上なく素晴らしい特徴を持っているものがあります。それは、学び、多様化し、複雑化し、進化する能力です。
(中略)
この「システムが自らの構造をより複雑にしていく能力」は、「自己組織化」と呼ばれています。
(引用:『世界はシステムで動く』第3章より)
さて、スクラムには自己組織化の性質があるでしょうか?
最新版では自己管理という言葉に置き換えられているのですが、『スクラムガイド2017』には自己組織化という単語が含まれていました。
スクラム自体はシンプルなルールで構成されるフレームワークで、具体的なプロセスはほとんど定義されていません。
その余白部分をスクラムチームの開発環境に合わせてチーム自ら構造化してくことで最適化を図ります。
スクラムはシンプルである。まずはそのままの状態で試してほしい。そして、スクラムの哲学、理論、構造が、ゴールを達成し、価値を生み出すかどうかを判断してほしい。スクラムフレームワークは意図的に不完全なものであり、スクラムの理論を実現するために必要な部分のみが定義されている。スクラムは実践する人たちの集合知で構築されている。スクラムのルールは詳細な指示を提供するものではなく、実践者の関係性や相互作用をガイドするものである。
(引用:『スクラムガイド2020』、P5より)
また、スクラムガイド自身がアップデートを続けていることもスクラム自身の進化と言えるでしょう。
ヒエラルキー
システムがその規模を大きく進化させていく過程で、システムはその安定性のためにヒエラルキーを自然に作ります。
ヒエラルキーは、システムの素晴らしい発明です。システムに安定性とレジリエンスを与えてくれるだけではなく、システムのどの部分であっても、把握しておくべき情報の量を減らすことができるからです。
(引用:『世界はシステムで動く』第3章より)
さて、スクラムにはヒエラルキーがあるでしょうか?
例えばスプリントと各イベントの関係や、それぞれのロールもヒエラルキーの例でしょう。
大規模スクラムではスクラムチーム内に複数の開発チームを作りますので、チームの入れ子構造ができるのも分かりやすいです。
結果
システム思考の基礎であるシステムの考察と、その具体例としてスクラムを見てみました。
システムがどのようなものかが少しでもつかめていただけたでしょうか?
スクラムガイドから読み取るだけでも、スクラムそのものがシステムであることと、スクラムチームをシステムとして考慮する側面を見ることができます。
システムが分かると何が嬉しいのか
システム思考にはシステムの理解を助けるツールがあります。
- よいシステムの特徴
- システムダイアグラム
- システム原型
- レバレッジ・ポイント
(引用:『世界はシステムで動く』より)
これらはシステムの理解を深め、より良いシステムをつくっていくことに役立ちます。
少しだけ具体例も紹介しましょう。
システム原型:中毒、依存、あるいは介入者への責任転嫁
システム原型の1つである「中毒、依存、あるいは介入者への責任転嫁」を紹介します。
責任転嫁、依存、中毒が生じるのは、「システムの問題に対する解決策が、症状を減らす(または隠す)が、根本的な問題を解決することはなにもしない」ときです。人の知覚を鈍らせる物質にせよ、根本的な問題を隠す施策にせよ、選んだ"麻薬"は、実際の問題を解決しうる行動のじゃまをします。
(引用:『世界はシステムで動く』第5章より)
この落とし穴の教訓はスクラムマスターの支援的なリーダーシップに見ることができます。
スクラムチームの進捗を妨げる障害物を排除するように働きかける。
(引用:『スクラムガイド2020』、P9より)
スクラムマスターが「障害物を排除する」のではなく「排除するように働きかける」のは、スクラムチームが自身で障害物を取り除く能力を失わないようにするためです。
もちろん全く不要という訳ではありませんが、中長期で見てスクラムマスターに依存してしまうのは避けるべきでしょう。
このようなスクラムマスターの振る舞いは、上記のシステム原型と照らし合わせると明快に理解できるでしょう。
このシステム原型はいたるところに見られるので、もちろんスクラム以外でも応用できます。
レバレッジ・ポイント:目標
課題設定はマネジメントで重要なことの1つでしょう。
その際には、小さな施策で大きな変化をもたらすレバレッジ・ポイントを見つけ出すことができるのが理想です。
『世界はシステムで動く』では典型的なレバレッジ・ポイントが順位付きで12個紹介されているのですが、その3番目に高いものとして目標があります。
スクラムでは役割やイベントが注目されがちですが、実践ではプロダクトゴールやスプリントゴールといった目標の設定が重要になります。
OKRのような目標設定のフレームワークが強力なのも納得できるでしょう。
ミッション、ビジョンのような組織における目標設定も同様です。
おわりに
システム思考の基礎の紹介にとどまりましたが、その視点を少しは感じていただけたでしょうか。
具体例としてスクラムにはシステムの側面があることも見ました。
エンジニアリング・マネジメントのツールの1つとしてシステム思考の視点を持つことで、複雑な環境の中で複雑な組織が成果を出していくことにつなげられるのではと思っています。
また、何か問題や課題が発生したときに、要素ではなくその関係性や構造を疑うことができるようになります。
それによって人と人との対立を避け、より本質的なことに向き合うこともできるかもしれません。
構造のもたらす力の大きさを認識できるようになるのもシステム思考の恩恵の1つでしょう。
私個人としては、システムへの理解がまだまだ感覚的で他人に説明するのが難しいのが課題です。
システムダイアグラムでコミュニケーションが取れるようになることで解消できるはずなので、もう少し自分で使ってみたいと思っています。