自己組織的な開発チームを如何にして作り上げるか / how to build self-organizing team

070d76684992055a32b3b7bee539c34b?s=47 Yuichi Kiri
February 14, 2020

自己組織的な開発チームを如何にして作り上げるか / how to build self-organizing team

Developer Summit 2020 での発表資料です
https://event.shoeisha.jp/devsumi/20200213/session/2417/

070d76684992055a32b3b7bee539c34b?s=128

Yuichi Kiri

February 14, 2020
Tweet

Transcript

  1. Developers Summit 2020 © 2020 TIS Inc. 自己組織的なチーム?

  2. Developers Summit 2020 © 2020 TIS Inc. アジャイル宣言の背後にある原則 • 顧客満足を最優先し、価値のあるソフトウェ

    アを早く継続的に提供します。 • 要求の変更はたとえ開発の後期であっても 歓迎します。変化を味方につけることによっ て、お客様の競争力を引き上げます。 • 動くソフトウェアを、2-3週間から2-3ヶ月と いうできるだけ短い時間間隔でリリースしま す。 • ビジネス側の人と開発者は、プロジェクトを 通して日々一緒に働かなければなりません。 • 意欲に満ちた人々を集めてプロジェクトを構 成します。環境と支援を与え仕事が無事終 わるまで彼らを信頼します。 • 情報を伝えるもっとも効率的で効果的な方 法はフェイス・トゥ・フェイスで話をすることです。 • 動くソフトウェアこそが進捗の最も重要な尺 度です。 • アジャイル・プロセスは持続可能な開発を促 進します。一定のペースを継続的に維持で きるようにしなければなりません。 • 技術的卓越性と優れた設計に対する 不断の注意が機敏さを高めます。 • シンプルさ(ムダなく作れる量を最大限にす ること)が本質です。 • 最良のアーキテクチャ・要求・設計は、 自己組織的なチームから生み出されます。 • チームがもっと効率を高めることができるかを 定期的に振り返り、それに基づいて自分た ちのやり方を最適に調整します。 「アジャイル宣言の背後にある原則』(https://agilemanifesto.org/iso/ja/principles.html)。 2020年01月18日21時(日本時間)現在での最新版を取得。
  3. Developers Summit 2020 © 2020 TIS Inc. スクラムガイド スクラムチームは自己組織化されており、 機能横断的である。

    「スクラムガイド』(https://www.scrumguides.org/docs/scrumguide/v2017/2017-Scrum-Guide-Japanese.pdf)。 2020年02月11日16時(日本時間)現在での最新版を取得。
  4. © 2020 TIS Inc. 自己組織的なチームを如何にして作り上げるか @Developers Summit 2020 14-E-3

  5. Developers Summit 2020 © 2020 TIS Inc. 5 はじめに •

    技術的な話は出てきません • 自己組織的なチームを作る銀の弾丸も出てきません Photo by Cody Wingfield on Unsplash
  6. Developers Summit 2020 © 2020 TIS Inc. 6 はじめに 自己組織的なチームの作り方を

  7. Developers Summit 2020 © 2020 TIS Inc. 自己紹介 木利 友一

    (@kiririmode) • TIS株式会社 (2015年~) ITアーキテクト・主査 • Mode2開発が最近の主戦場 – Mode 2 is exploratory, experimenting to solve new problems and optimized for areas of uncertainty. • 未認定スクラムマスター • 大学院での研究テーマ: 自己組織的ネットワーク制御 「Bimodal」 (https://www.gartner.com/en/information-technology/glossary/bimodal) 2020年02月11日16時(日本時間)現在での最新版を取得。
  8. 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
  9. Developers Summit 2020 © 2020 TIS Inc. 宣伝(スポンサーセッションなので…) TISがシステム開発プロジェクトで培ったノウハウを集約したサイト どなたでも無償で利用できます

    ・フレームワーク ・ツール ・ガイド ・テンプレート ・サンプル ・開発事例 ☆スクラム ☆クラウド ☆フロントエンド ☆フルスタックエンジニア ☆サービス開発 ☆要件定義、テスト ☆リモート開発 https://fintan.jp/
  10. Developers Summit 2020 © 2020 TIS Inc. 最近のお仕事 • 決済プラットフォームの新規開発

    – Golang, gRPC, Electron, React/Redux, Bitcoin, k8s • 複数の会社から来たエンジニアの混成チーム – 初顔合わせ – 様々なバックグラウンド • 自己組織的なチームを目指したい
  11. © 2020 TIS Inc. 11 自己組織化とはなんなのか? Christoffer A Rasmussen Birds

    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)
  12. Developers Summit 2020 © 2020 TIS Inc. 自己組織化 (self-organization) “物質や個体が、系全体を俯瞰する能力を持たないのに

    関わらず、個々の自律的な振る舞いの結果として、 秩序を持つ大きな構造を作り出す現象のこと” 「自己組織化」『フリー百科事典 ウィキペディア日本語版』(http://ja.wikipedia.org/)。 2020年01月18日21時(日本時間)現在での最新版を取得。 “無秩序に向かう自然界の流れ(熱力学第2法則)に逆らい、系が エネルギーを取り込みながら自分を組織だて、秩序を生むこと” 出典 (株)朝日新聞出版発行「知恵蔵」
  13. Developers Summit 2020 © 2020 TIS Inc. 自己組織化 (self-organization) •

    外部からエネルギーを取り込み続ける動的な系 • 個々は全体を把握せずバラバラに行動する • 全体としては秩序だった構造・行動が形成される
  14. Developers Summit 2020 © 2020 TIS Inc. 自然界の自己組織化 • 自然界にも自己組織化の例はたくさんある

    • アリやハチといった昆虫の群れとしての行動は swarm intelligence (群知能)と呼ばれ、自己組織化の好例 The collective behavior that emerges from a group of social insects has been 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時(日本時間)現在での最新版を取得。
  15. Developers Summit 2020 © 2020 TIS Inc. 自然界の自己組織化 – アリの最短経路発見

    個々のアリはあまり賢くないにもかかわらず、 群れとしてのアリは餌への最短経路を発見する Photo by Aaron Burden on Unsplash • 個々のアリは他のアリが残したフェロモンをたどる • 全体を統括するようなアリはいない • 最初は誰も周りの餌の配置を知らない • 群れとしては餌への最短経路を見つけられる
  16. Developers Summit 2020 © 2020 TIS Inc. 自然界の自己組織化 – ホタルの発光同期

    東南アジアの蛍は、 群れとして発光タイミングを同期させることができる • 個々の蛍は周囲の蛍の光に刺激を受けているだけ • 指揮者はいない • 遠くの蛍のことも分からない
  17. © 2020 TIS Inc. 17 自己組織的なチームってなんだろう? Photo by Saad Salim

    on Unsplash
  18. Developers Summit 2020 © 2020 TIS Inc. 自己組織的なチームとは? • フラットで風通しが良いチーム?

    • 良い感じで自律的に動いてくれるチーム? Photo by Olga Guryanova on Unsplash
  19. Developers Summit 2020 © 2020 TIS Inc. 自己組織的なチームとは? “自己組織化されたチームとは、 意思決定の機会や生産的に前進する際に、

    リーダーであるあなたから独立して機能するチーム” Roy Osherove 『エラスティックリーダーシップ -自己組織化チームの育て方』 (オライリージャパン、2017)
  20. Developers Summit 2020 © 2020 TIS Inc. チームのフェーズ サバイバルモード ・学ぶ時間がない

    ・定期的に火消し作業 ・遅れと残業 学習モード ・十分なゆとり時間 ・計画的な訓練にゆとり時間を使う ・誤りを許容する ・チームにスキルがある、スキルを 獲得する方法を知っている ・リーダーは生産性に関与しない ・自分たちで意思決定できる ・衝突を内部で解決できる 自己組織化モード チームフェーズ リーダーシップ スタイル 指揮統制型 コーチ/独裁者 ファシリテーター 参考:エラスティックリーダーシップ -自己組織化チームの育て方
  21. © 2020 TIS Inc. 21 Photo by bantersnaps on Unsplash

    自分たちのプロジェクトがたどったフェーズ
  22. Developers Summit 2020 © 2020 TIS Inc. • 「こうやって作ってください」 •

    「~を使ってみてください」 • …「ここってどう実装しますか?」 • …「今日やることがなくなりましたが、 次はなにをすれば良いですか?」 サバイバルモード Photo by jimmy travelp on Unsplash リーダー メンバー 明確な指示系統 リーダーベースでのタスクアサイン
  23. Developers Summit 2020 © 2020 TIS Inc. • 雑になる判断 –

    人数の増加 – システムの複雑化 • フロー効率の低下 サバイバルモード スケールしない Photo by Ashim D’Silva on Unsplash
  24. Developers Summit 2020 © 2020 TIS Inc. なぜそんなことが起こったのか • リーダーとして、すべてを把握しようとしていた

    • リーダーとして、すべてを理解しようとしていた • リーダーとして、状況を予測し正しい判断をしたかった
  25. Developers Summit 2020 © 2020 TIS Inc. なぜそんなことが起こったのか 自分が把握できる範囲の箱庭を 創ろうとしていた

    Photo by Jeff Sheldon on Unsplash
  26. Developers Summit 2020 © 2020 TIS Inc. なぜそんなことが起こったのか 管理職として、失敗をしたくなかった

  27. Developers Summit 2020 © 2020 TIS Inc. 現実は複雑 • 状況は刻々と変わる

    – 目指すべきプロダクトの姿 – 開発上のボトルネック – チームの個々人の想い • すべてを把握することはできない • すべてを予見することもできない 一人がすべてを把握できるほど 一人が正しくリードできるほど 現実はシンプルではない Uncertainty Volatility Complexity Ambiguity VUCA
  28. Developers Summit 2020 © 2020 TIS Inc. 現実は複雑 Snowded Domains

    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)
  29. Developers Summit 2020 © 2020 TIS Inc. 今のチーム • 個別具体的な指示が不要

    • リーダーなしで動く • プロダクトのpivot、状況の変化に柔軟に対応できる
  30. © 2020 TIS Inc. 30 自己組織的なチームを目指して Photo by Damien TUPINIER

    on Unsplash
  31. Developers Summit 2020 © 2020 TIS Inc. 自己組織化 (self-organization) “物質や個体が、系全体を俯瞰する能力を持たないのに

    関わらず、個々の自律的な振る舞いの結果として、 秩序を持つ大きな構造を作り出す現象のこと” 「自己組織化」『フリー百科事典 ウィキペディア日本語版』(http://ja.wikipedia.org/)。 2020年01月18日21時(日本時間)現在での最新版を取得。
  32. Developers Summit 2020 © 2020 TIS Inc. 自己組織的なチームとは 自己組織化によって作り出される構造が「チーム」なら: チーム

    個人の行動 個人間の相互作用 アリの群れ、ハチの群れも同じ 環境の変化 個々の自律的な振る舞い
  33. Developers Summit 2020 © 2020 TIS Inc. 組織知ができる過程:SECIモデル 共同化 (Socialization)

    表出化 (Externalization) 内面化 (Internalization) 連結化 (Combination) 暗黙知 形式知 個別の 形式知 体系的な 形式知 形式知 暗黙知 個人の 暗黙知 グループの 暗黙知 経験の 共有 対話 共同思考 行動に よる学習 組合わせ 野中 郁次郎、竹内 弘高 『知識創造企業』 (東洋経済新報社、1996)
  34. Developers Summit 2020 © 2020 TIS Inc. 野中 郁次郎、竹内 弘高

    『知識創造企業』 (東洋経済新報社、1996) 組織知ができる過程:SECIモデル 共同化 (Socialization) 表出化 (Externalization) 内面化 (Internalization) 連結化 (Combination) 暗黙知 形式知 個別の 形式知 体系的な 形式知 形式知 暗黙知 個人の 暗黙知 グループの 暗黙知 経験の 共有 対話 共同思考 行動に よる学習 相互作用する「場」が必要 ペアプロ ペア作業 分報チャンネル 席替え スプリント プランニング リファインメント 開発 レトロスペクティブ モブプロ 組合わせ
  35. Developers Summit 2020 © 2020 TIS Inc. 相互作用を行える場をファシリテートする ファシリテーション “人と人の間の知的相互作用を促進する働き”

    相互作用する「場」が必要 森 時彦 『ファシリテーター養成講座』 (ダイヤモンド社、2007)
  36. Developers Summit 2020 © 2020 TIS Inc. チーム 個人の行動 個人間の相互作用

    環境の変化 自己組織的なチームとは 自己組織化によって作り出される構造が「チーム」なら: 相互作用する「場」 構造化
  37. © 2020 TIS Inc. 37 個人の行動 Photo by Rupert Britton

    on Unsplash
  38. Developers Summit 2020 © 2020 TIS Inc. 個人を尊重する 全員が完全に同じベクトルを持つ 必要はない

    Team Individuals 不安定化を歓迎する (正のフィードバックをかける) Photo by Marten Bjork on Unsplash
  39. Developers Summit 2020 © 2020 TIS Inc. 個人を尊重する • それぞれの経験・考え・志向に敬意を払う

    – 今その瞬間その人が誰よりも詳しい分野があ る – その人だけが感じている変化がある Photo by Marten Bjork on Unsplash Snowded Domains 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) 変化・不安定化が チームの陥った局所最適解を 超える力になる
  40. Developers Summit 2020 © 2020 TIS Inc. 個人を尊重する 「よさそう」 「やってみよう」

  41. Developers Summit 2020 © 2020 TIS Inc. 個人を尊重する チームの進む道を リーダーの見識で限定しない

    自分はその専門家よりも正しい判断ができるのか 単に知らない世界を拒絶しているだけではないのか
  42. Developers Summit 2020 © 2020 TIS Inc. 個人を尊重する • 行動に説明責任を伴わせる

    – 「なんで必要なんだっけ?」 – 「今やらないとダメなヤツ?」 • 個人の行動の尊重: 正のFeedback – 不安定化 • 個人間の相互作用: 負のFeedback – 安定化 個人の行動を盲目的に信じて良いのか No.
  43. Developers Summit 2020 © 2020 TIS Inc. • 集団はきわめてすぐれた知力を発揮するし、それは往々にして集 団の中でいちばん優秀な個人の知力よりも優れている

    • 集合的にベストな意思決定は意見の相違や異議から生まれる のであって、決して合意や妥協から生まれるのではない 個人を尊重する 個人の行動を盲目的に信じて良いのか ジェームズ・スロウィッキー 『「みんなの意見」は案外正しい』 (角川文庫、2006)
  44. © 2020 TIS Inc. 44 個人間の相互作用 Photo by Zac Ong

    on Unsplash
  45. Developers Summit 2020 © 2020 TIS Inc. • 打ち合わせの場を設定する •

    形式ばらずに議論できる状況を作る 個人間の相互作用をファシリテートする 「考えていることを自由に表現できる場」を創り出す
  46. Developers Summit 2020 © 2020 TIS Inc. 個人間の相互作用をファシリテートする 目的 適用したプラクティス

    「自分の意見」「自分の想い」を遠慮なく発信できる空 間 slackへの「独り言チャンネル」の作成 コミュニケーションパスの流動化 高頻度の席替え ソースコードレベルでの理解交換、 プロダクトへのオーナーシップの定着 ・前日mergeされたPRの通知 ・PRを読む時間 レトロスペクティブでの発言の敷居を下げる チェックイン etc. etc. 銀の弾丸はない 一般ピーターの法則: あらゆる有効な手段は、より困難な問題に次々と応用され、やがては失敗する 「ピーターの法則」『フリー百科事典 ウィキペディア日本語版』(http://ja.wikipedia.org/)。 2020年02月12日06時(日本時間)現在での最新版を取得。
  47. Developers Summit 2020 © 2020 TIS Inc. 個人間の相互作用をファシリテートする • フィードバックをくれる

    – 肯定してくれる – 間違ったら否定してくれる – 困ったら助けてくれる – 自分の意見に共感してくれる Photo by Jannis Lucas on Unsplash 信頼関係 心理的安全性
  48. Developers Summit 2020 © 2020 TIS Inc. 個人間の相互作用をファシリテートする 人間には学ぶ力がある 認定スクラムマスター研修で学んだ

    スクラムが「検査」なく信じている価値観
  49. Developers Summit 2020 © 2020 TIS Inc. 個人間の相互作用をファシリテートする • 変化を起こす

    • 結果を振り返る 「スクラム概論」『Fintan』(https://fintan.jp/?p=949) 2020年02月09日06時(日本時間)現在での最新版を取得。 チーム組成の序盤に 「良いチームになったかも」 「楽しいかも」 と思ってもらえる小さな成功体験
  50. Developers Summit 2020 © 2020 TIS Inc. 個人間の相互作用をファシリテートする 学習性無力感と戦う 「何をしても意味がない」と学ばせてはならない

    人間には学ぶ力がある 認定スクラムマスター研修で学んだ スクラムが「検査」なく信じている価値観
  51. © 2020 TIS Inc. 51 自己組織的なチームを作るには Photo by Aaron Burden

    on Unsplash
  52. Developers Summit 2020 © 2020 TIS Inc. まとめ • 自己組織化チーム

    – 個々人が全体を把握していないとしても – リーダーなしに判断し行動できるチーム • 必要なものは – 個人の尊重 • 不安定化 – 個人間の相互作用のファシリテーション • 安定化 – 心理的安全性 • 学習性無力感と戦う
  53. Developers Summit 2020 © 2020 TIS Inc. 自己組織的なチームを作るには 個々人 •

    自分の意見を持ち、発信する • 人の意見を聞き、考え、フィードバックする • それがしやすい雰囲気を自分たちで作り上げる
  54. Developers Summit 2020 © 2020 TIS Inc. 自己組織的なチームを作るには リーダー・マネージャー •

    安全な箱庭づくりに逃げるな • 抑圧ではなく参加しよう
  55. Developers Summit 2020 © 2020 TIS Inc. 最後に • タックマンモデル

    (1965) • エラスティックリーダーシップ (2016) forming storming norming performing サバイバルモード 学習モード 自己組織化モード 形成期 混乱期 統一期 機能期 約50年!
  56. Developers Summit 2020 © 2020 TIS Inc. 自己組織的なチームを作るには: • もっとたくさんの形式知が必要

    • みなさんのチームの経験をもっと聞きた い 日本の開発現場をより良いものにしていき ましょう 最後に 今日の発表
  57. Developers Summit 2020 © 2020 TIS Inc. 57 自己組織的なチームを作るには