Developer Summit 2020 での発表資料です https://event.shoeisha.jp/devsumi/20200213/session/2417/
Developers Summit 2020 © 2020 TIS Inc.自己組織的なチーム?
View Slide
Developers Summit 2020 © 2020 TIS Inc.アジャイル宣言の背後にある原則• 顧客満足を最優先し、価値のあるソフトウェアを早く継続的に提供します。• 要求の変更はたとえ開発の後期であっても歓迎します。変化を味方につけることによって、お客様の競争力を引き上げます。• 動くソフトウェアを、2-3週間から2-3ヶ月というできるだけ短い時間間隔でリリースします。• ビジネス側の人と開発者は、プロジェクトを通して日々一緒に働かなければなりません。• 意欲に満ちた人々を集めてプロジェクトを構成します。環境と支援を与え仕事が無事終わるまで彼らを信頼します。• 情報を伝えるもっとも効率的で効果的な方法はフェイス・トゥ・フェイスで話をすることです。• 動くソフトウェアこそが進捗の最も重要な尺度です。• アジャイル・プロセスは持続可能な開発を促進します。一定のペースを継続的に維持できるようにしなければなりません。• 技術的卓越性と優れた設計に対する不断の注意が機敏さを高めます。• シンプルさ(ムダなく作れる量を最大限にすること)が本質です。• 最良のアーキテクチャ・要求・設計は、自己組織的なチームから生み出されます。• チームがもっと効率を高めることができるかを定期的に振り返り、それに基づいて自分たちのやり方を最適に調整します。「アジャイル宣言の背後にある原則』(https://agilemanifesto.org/iso/ja/principles.html)。2020年01月18日21時(日本時間)現在での最新版を取得。
Developers Summit 2020 © 2020 TIS Inc.スクラムガイドスクラムチームは自己組織化されており、機能横断的である。「スクラムガイド』(https://www.scrumguides.org/docs/scrumguide/v2017/2017-Scrum-Guide-Japanese.pdf)。2020年02月11日16時(日本時間)現在での最新版を取得。
© 2020 TIS Inc.自己組織的なチームを如何にして作り上げるか@Developers Summit 2020 14-E-3
Developers Summit 2020 © 2020 TIS Inc. 5はじめに• 技術的な話は出てきません• 自己組織的なチームを作る銀の弾丸も出てきませんPhoto by Cody Wingfield on Unsplash
Developers Summit 2020 © 2020 TIS Inc. 6はじめに自己組織的なチームの作り方を
Developers Summit 2020 © 2020 TIS Inc.自己紹介木利 友一 (@kiririmode)• TIS株式会社 (2015年~) ITアーキテクト・主査• Mode2開発が最近の主戦場– Mode 2 is exploratory, experimenting to solve newproblems and optimized for areas of uncertainty.• 未認定スクラムマスター• 大学院での研究テーマ: 自己組織的ネットワーク制御「Bimodal」(https://www.gartner.com/en/information-technology/glossary/bimodal)2020年02月11日16時(日本時間)現在での最新版を取得。
Developers Summit 2020 © 2020 TIS Inc.バイモーダルに対応するSIerへ宣伝(スポンサーセッションなので…)枯れた技術階層構造による大量動員請負契約(持ち帰り)品質優先(均質化)の重厚なプロセスSoR (System of record)Mode 1不確かな新技術水平分業(フラット構造)の小チーム集団準委任/派遣契約(オンサイト/持ち帰り)リリース優先の軽量なプロセスSoE (System of engagement)Mode 2予測しやすいアプリケーション(competition to be the best ⇒ 価格競争)予測しにくいアプリケーション(competition to be unique ⇒ 付加価値競争)・Ready-to-Useなソフトウェアによる競争力強化・コスト競争力につながるR&D・グループ技術力強化による不採算化防止・グループ全体の知見共有による新技術への対応・サービス/ソリューション競争力強化のためのR&D
Developers Summit 2020 © 2020 TIS Inc.宣伝(スポンサーセッションなので…)TISがシステム開発プロジェクトで培ったノウハウを集約したサイトどなたでも無償で利用できます・フレームワーク・ツール・ガイド・テンプレート・サンプル・開発事例☆スクラム☆クラウド☆フロントエンド☆フルスタックエンジニア☆サービス開発☆要件定義、テスト☆リモート開発https://fintan.jp/
Developers Summit 2020 © 2020 TIS Inc.最近のお仕事• 決済プラットフォームの新規開発– Golang, gRPC, Electron, React/Redux, Bitcoin, k8s• 複数の会社から来たエンジニアの混成チーム– 初顔合わせ– 様々なバックグラウンド• 自己組織的なチームを目指したい
© 2020 TIS Inc. 11自己組織化とはなんなのか?Christoffer A RasmussenBirds flocking, an example of self-organization in biology(https://en.wikipedia.org/wiki/Self-organization#/media/File:Sort_sol_ved_%C3%98rns%C3%B8_2007.jpg)
Developers Summit 2020 © 2020 TIS Inc.自己組織化 (self-organization)“物質や個体が、系全体を俯瞰する能力を持たないのに関わらず、個々の自律的な振る舞いの結果として、秩序を持つ大きな構造を作り出す現象のこと”「自己組織化」『フリー百科事典 ウィキペディア日本語版』(http://ja.wikipedia.org/)。2020年01月18日21時(日本時間)現在での最新版を取得。“無秩序に向かう自然界の流れ(熱力学第2法則)に逆らい、系がエネルギーを取り込みながら自分を組織だて、秩序を生むこと”出典 (株)朝日新聞出版発行「知恵蔵」
Developers Summit 2020 © 2020 TIS Inc.自己組織化 (self-organization)• 外部からエネルギーを取り込み続ける動的な系• 個々は全体を把握せずバラバラに行動する• 全体としては秩序だった構造・行動が形成される
Developers Summit 2020 © 2020 TIS Inc.自然界の自己組織化• 自然界にも自己組織化の例はたくさんある• アリやハチといった昆虫の群れとしての行動はswarm intelligence (群知能)と呼ばれ、自己組織化の好例The collective behavior that emerges from a group of social insects hasbeen dubbed “swarm intelligence”Swarm Intelligence: A Whole New Way To Think About Business(https://hbr.org/2001/05/swarm-intelligence-a-whole-new-way-to-think-about-business)2020年02月11日15時(日本時間)現在での最新版を取得。
Developers Summit 2020 © 2020 TIS Inc.自然界の自己組織化 – アリの最短経路発見個々のアリはあまり賢くないにもかかわらず、群れとしてのアリは餌への最短経路を発見するPhoto by Aaron Burden on Unsplash• 個々のアリは他のアリが残したフェロモンをたどる• 全体を統括するようなアリはいない• 最初は誰も周りの餌の配置を知らない• 群れとしては餌への最短経路を見つけられる
Developers Summit 2020 © 2020 TIS Inc.自然界の自己組織化 – ホタルの発光同期東南アジアの蛍は、群れとして発光タイミングを同期させることができる• 個々の蛍は周囲の蛍の光に刺激を受けているだけ• 指揮者はいない• 遠くの蛍のことも分からない
© 2020 TIS Inc. 17自己組織的なチームってなんだろう?Photo by Saad Salim on Unsplash
Developers Summit 2020 © 2020 TIS Inc.自己組織的なチームとは?• フラットで風通しが良いチーム?• 良い感じで自律的に動いてくれるチーム?Photo by Olga Guryanova on Unsplash
Developers Summit 2020 © 2020 TIS Inc.自己組織的なチームとは?“自己組織化されたチームとは、意思決定の機会や生産的に前進する際に、リーダーであるあなたから独立して機能するチーム”Roy Osherove『エラスティックリーダーシップ -自己組織化チームの育て方』(オライリージャパン、2017)
Developers Summit 2020 © 2020 TIS Inc.チームのフェーズサバイバルモード・学ぶ時間がない・定期的に火消し作業・遅れと残業学習モード・十分なゆとり時間・計画的な訓練にゆとり時間を使う・誤りを許容する・チームにスキルがある、スキルを獲得する方法を知っている・リーダーは生産性に関与しない・自分たちで意思決定できる・衝突を内部で解決できる自己組織化モードチームフェーズリーダーシップスタイル指揮統制型 コーチ/独裁者 ファシリテーター参考:エラスティックリーダーシップ -自己組織化チームの育て方
© 2020 TIS Inc. 21Photo by bantersnaps on Unsplash自分たちのプロジェクトがたどったフェーズ
Developers Summit 2020 © 2020 TIS Inc.• 「こうやって作ってください」• 「~を使ってみてください」• …「ここってどう実装しますか?」• …「今日やることがなくなりましたが、次はなにをすれば良いですか?」サバイバルモードPhoto by jimmy travelp on Unsplashリーダーメンバー明確な指示系統リーダーベースでのタスクアサイン
Developers Summit 2020 © 2020 TIS Inc.• 雑になる判断– 人数の増加– システムの複雑化• フロー効率の低下サバイバルモードスケールしないPhoto by Ashim D’Silva on Unsplash
Developers Summit 2020 © 2020 TIS Inc.なぜそんなことが起こったのか• リーダーとして、すべてを把握しようとしていた• リーダーとして、すべてを理解しようとしていた• リーダーとして、状況を予測し正しい判断をしたかった
Developers Summit 2020 © 2020 TIS Inc.なぜそんなことが起こったのか自分が把握できる範囲の箱庭を創ろうとしていたPhoto by Jeff Sheldon on Unsplash
Developers Summit 2020 © 2020 TIS Inc.なぜそんなことが起こったのか管理職として、失敗をしたくなかった
Developers Summit 2020 © 2020 TIS Inc.現実は複雑• 状況は刻々と変わる– 目指すべきプロダクトの姿– 開発上のボトルネック– チームの個々人の想い• すべてを把握することはできない• すべてを予見することもできない一人がすべてを把握できるほど一人が正しくリードできるほど現実はシンプルではないUncertaintyVolatilityComplexityAmbiguityVUCA
Developers Summit 2020 © 2020 TIS Inc.現実は複雑SnowdedDomains of the Cynefin framework; the dark domain in the centre is disorder.(https://commons.wikimedia.org/wiki/File:Cynefin_as_of_1st_June_2014.png)
Developers Summit 2020 © 2020 TIS Inc.今のチーム• 個別具体的な指示が不要• リーダーなしで動く• プロダクトのpivot、状況の変化に柔軟に対応できる
© 2020 TIS Inc. 30自己組織的なチームを目指してPhoto by Damien TUPINIER on Unsplash
Developers Summit 2020 © 2020 TIS Inc.自己組織化 (self-organization)“物質や個体が、系全体を俯瞰する能力を持たないのに関わらず、個々の自律的な振る舞いの結果として、秩序を持つ大きな構造を作り出す現象のこと”「自己組織化」『フリー百科事典 ウィキペディア日本語版』(http://ja.wikipedia.org/)。2020年01月18日21時(日本時間)現在での最新版を取得。
Developers Summit 2020 © 2020 TIS Inc.自己組織的なチームとは自己組織化によって作り出される構造が「チーム」なら:チーム個人の行動個人間の相互作用アリの群れ、ハチの群れも同じ環境の変化個々の自律的な振る舞い
Developers Summit 2020 © 2020 TIS Inc.組織知ができる過程:SECIモデル共同化(Socialization)表出化(Externalization)内面化(Internalization)連結化(Combination)暗黙知形式知個別の形式知体系的な形式知形式知暗黙知個人の暗黙知グループの暗黙知経験の共有対話共同思考行動による学習組合わせ野中 郁次郎、竹内 弘高『知識創造企業』(東洋経済新報社、1996)
Developers Summit 2020 © 2020 TIS Inc.野中 郁次郎、竹内 弘高『知識創造企業』(東洋経済新報社、1996)組織知ができる過程:SECIモデル共同化(Socialization)表出化(Externalization)内面化(Internalization)連結化(Combination)暗黙知形式知個別の形式知体系的な形式知形式知暗黙知個人の暗黙知グループの暗黙知経験の共有対話共同思考行動による学習相互作用する「場」が必要ペアプロペア作業分報チャンネル席替えスプリントプランニングリファインメント開発レトロスペクティブモブプロ組合わせ
Developers Summit 2020 © 2020 TIS Inc.相互作用を行える場をファシリテートするファシリテーション“人と人の間の知的相互作用を促進する働き”相互作用する「場」が必要森 時彦『ファシリテーター養成講座』(ダイヤモンド社、2007)
Developers Summit 2020 © 2020 TIS Inc.チーム個人の行動個人間の相互作用環境の変化自己組織的なチームとは自己組織化によって作り出される構造が「チーム」なら:相互作用する「場」構造化
© 2020 TIS Inc. 37個人の行動Photo by Rupert Britton on Unsplash
Developers Summit 2020 © 2020 TIS Inc.個人を尊重する全員が完全に同じベクトルを持つ必要はないTeam Individuals不安定化を歓迎する(正のフィードバックをかける)Photo by Marten Bjork on Unsplash
Developers Summit 2020 © 2020 TIS Inc.個人を尊重する• それぞれの経験・考え・志向に敬意を払う– 今その瞬間その人が誰よりも詳しい分野がある– その人だけが感じている変化があるPhoto by Marten Bjork on UnsplashSnowdedDomains of the Cynefin framework; the darkdomain in the centre is disorder.(https://commons.wikimedia.org/wiki/File:Cynefin_as_of_1st_June_2014.png)変化・不安定化がチームの陥った局所最適解を超える力になる
Developers Summit 2020 © 2020 TIS Inc.個人を尊重する「よさそう」「やってみよう」
Developers Summit 2020 © 2020 TIS Inc.個人を尊重するチームの進む道をリーダーの見識で限定しない自分はその専門家よりも正しい判断ができるのか単に知らない世界を拒絶しているだけではないのか
Developers Summit 2020 © 2020 TIS Inc.個人を尊重する• 行動に説明責任を伴わせる– 「なんで必要なんだっけ?」– 「今やらないとダメなヤツ?」• 個人の行動の尊重: 正のFeedback– 不安定化• 個人間の相互作用: 負のFeedback– 安定化個人の行動を盲目的に信じて良いのかNo.
Developers Summit 2020 © 2020 TIS Inc.• 集団はきわめてすぐれた知力を発揮するし、それは往々にして集団の中でいちばん優秀な個人の知力よりも優れている• 集合的にベストな意思決定は意見の相違や異議から生まれるのであって、決して合意や妥協から生まれるのではない個人を尊重する個人の行動を盲目的に信じて良いのかジェームズ・スロウィッキー『「みんなの意見」は案外正しい』(角川文庫、2006)
© 2020 TIS Inc. 44個人間の相互作用Photo by Zac Ong on Unsplash
Developers Summit 2020 © 2020 TIS Inc.• 打ち合わせの場を設定する• 形式ばらずに議論できる状況を作る個人間の相互作用をファシリテートする「考えていることを自由に表現できる場」を創り出す
Developers Summit 2020 © 2020 TIS Inc.個人間の相互作用をファシリテートする目的 適用したプラクティス「自分の意見」「自分の想い」を遠慮なく発信できる空間slackへの「独り言チャンネル」の作成コミュニケーションパスの流動化 高頻度の席替えソースコードレベルでの理解交換、プロダクトへのオーナーシップの定着・前日mergeされたPRの通知・PRを読む時間レトロスペクティブでの発言の敷居を下げる チェックインetc. etc.銀の弾丸はない一般ピーターの法則:あらゆる有効な手段は、より困難な問題に次々と応用され、やがては失敗する「ピーターの法則」『フリー百科事典 ウィキペディア日本語版』(http://ja.wikipedia.org/)。2020年02月12日06時(日本時間)現在での最新版を取得。
Developers Summit 2020 © 2020 TIS Inc.個人間の相互作用をファシリテートする• フィードバックをくれる– 肯定してくれる– 間違ったら否定してくれる– 困ったら助けてくれる– 自分の意見に共感してくれるPhoto by Jannis Lucas on Unsplash信頼関係心理的安全性
Developers Summit 2020 © 2020 TIS Inc.個人間の相互作用をファシリテートする人間には学ぶ力がある認定スクラムマスター研修で学んだスクラムが「検査」なく信じている価値観
Developers Summit 2020 © 2020 TIS Inc.個人間の相互作用をファシリテートする• 変化を起こす• 結果を振り返る「スクラム概論」『Fintan』(https://fintan.jp/?p=949)2020年02月09日06時(日本時間)現在での最新版を取得。チーム組成の序盤に「良いチームになったかも」「楽しいかも」と思ってもらえる小さな成功体験
Developers Summit 2020 © 2020 TIS Inc.個人間の相互作用をファシリテートする学習性無力感と戦う「何をしても意味がない」と学ばせてはならない人間には学ぶ力がある認定スクラムマスター研修で学んだスクラムが「検査」なく信じている価値観
© 2020 TIS Inc. 51自己組織的なチームを作るにはPhoto by Aaron Burden on Unsplash
Developers Summit 2020 © 2020 TIS Inc.まとめ• 自己組織化チーム– 個々人が全体を把握していないとしても– リーダーなしに判断し行動できるチーム• 必要なものは– 個人の尊重• 不安定化– 個人間の相互作用のファシリテーション• 安定化– 心理的安全性• 学習性無力感と戦う
Developers Summit 2020 © 2020 TIS Inc.自己組織的なチームを作るには個々人• 自分の意見を持ち、発信する• 人の意見を聞き、考え、フィードバックする• それがしやすい雰囲気を自分たちで作り上げる
Developers Summit 2020 © 2020 TIS Inc.自己組織的なチームを作るにはリーダー・マネージャー• 安全な箱庭づくりに逃げるな• 抑圧ではなく参加しよう
Developers Summit 2020 © 2020 TIS Inc.最後に• タックマンモデル (1965)• エラスティックリーダーシップ (2016)forming storming norming performingサバイバルモード 学習モード 自己組織化モード形成期 混乱期 統一期 機能期約50年!
Developers Summit 2020 © 2020 TIS Inc.自己組織的なチームを作るには:• もっとたくさんの形式知が必要• みなさんのチームの経験をもっと聞きたい日本の開発現場をより良いものにしていきましょう最後に今日の発表
Developers Summit 2020 © 2020 TIS Inc. 57自己組織的なチームを作るには