Slide 1

Slide 1 text

エンジニアリング組織論 〜不確実性に向き合う組織の現在と未来 株式会社レクター/日本CTO協会 広木大地

Slide 2

Slide 2 text

広木 大地 1983年生まれ。筑波大学大学院を卒業後、2008年に新卒第1期として株式会社ミクシィに 入社。同社のアーキテクトとして、技術戦略から組織構築などに携わる。 同社メディア開発部長、開発部部長、サービス本部長執行役員を務めた後、2015年退社。 現在は、株式会社レクターを創業し、技術と経営をつなぐ技術組織のアドバイザリーとして、 多数の会社の経営支援を行っている。 著書『エンジニアリング組織論への招待~不確実性に向き合う思考と組織のリファクタリン グ』が第6回ブクログ大賞・ビジネス書部門大賞、翔泳社ITエンジニアに読んでほしい技術 書大賞2019・技術書大賞受賞。一般社団法人日本CTO協会理事。朝日新聞社社外CTO。 株式会社グッドパッチ社外取締役。スパイダープラス株式会社社外取締役。 自己紹介

Slide 3

Slide 3 text

技術と経営の両面から ソフトウェアエンジニアリングを捉える

Slide 4

Slide 4 text

INDEX 本日のアジェンダ エンジニアリングと不確実性 不確実性に向き合う方法 エンジニアリング組織の過去と未来

Slide 5

Slide 5 text

皆さんは仕事に対して どんなイメージを持っていますか

Slide 6

Slide 6 text

決められたタスクを こなすイメージ A

Slide 7

Slide 7 text

皆で話し合って物事を 具体化していくイメージ。 B

Slide 8

Slide 8 text

現在の仕事の多くは 何かを”具体化”していくこと

Slide 9

Slide 9 text

仕事は”曖昧”で始まり”具体”で終わる。 仕事の「はじめ」と「終わり」を考えてみる。 仕事のはじめは何も決まっていなくて、モヤ モヤとしている。だんだんと方針が定まってき て、実現されてくる。 マニュアルでも契約でもソフトウェアでも、具体 的で明確な表現物になって実現される。

Slide 10

Slide 10 text

この過程を「エンジニアリング」と 本書では定義しています。

Slide 11

Slide 11 text

この「エンジニアリング」の過程で、 減っているものはなんでしょうか。

Slide 12

Slide 12 text

「不確実性」の削減こそが仕事の正体 その過程で行われるすべての行為を「エンジニアリング」と呼んでいる。 +情報 ー不確実性

Slide 13

Slide 13 text

プロジェクトも不確実性の削減過程 “不確実性コーン”はプロジェクトの本質的な意味を表現している。

Slide 14

Slide 14 text

組織も不確実性の削減するメカニズム 社会の不確実性を”喰って”成長する装置が株式会社という生命の構造

Slide 15

Slide 15 text

不確実性を大きく下げるチーム =生産的 不確実性という補助線をひくと生産的なチームとそうでないチームの形が見えてくる。 ❶マイクロマネジメント型 ❷エンパワーメントチーム型 細かな指示まで上司が行う必要があるチーム 曖昧な状態でも行動でき、任せられるチーム

Slide 16

Slide 16 text

仕事で行っているのは 「不確実性の削減」だと捉えるとうまくいく

Slide 17

Slide 17 text

より不確実なものから手をつける。 クライアントへの確認やイメージの共有、市場リスクなどより危ういものから確認していく 100% 70% 70% 100% 時間 クオリティ 不確実なものから 明らかにするやりかた 確実なものから 進めていくやりかた

Slide 18

Slide 18 text

では、仕事における “不確実性”の究極的な 発生源は何か?

Slide 19

Slide 19 text

1 2 人間が本質的にわからないものは 2つ それが不確実性の発生源となっている。 未来:環境不確実性 未来のことは誰も知り得ない。だから、不確実性を 生み出す。マーケットの不確実性。 他人:通信不確実性 他人の頭の中を覗き込むことはできない。だから不 確実性を生み出す。コミュニケーションの不確実性。

Slide 20

Slide 20 text

不確実性に人が向き合うとき どう感じるか。

Slide 21

Slide 21 text

不確実性に対して ”たたかう”か”にげる” 攻撃的行動 Fight 回避的行動 Flight or

Slide 22

Slide 22 text

不確実性が脳にストレスをかける 不確実性に向き合おうとすると怒ったり、逃げたりする反応が生まれそこからトラブルが生じる 不安や恐怖 怒りや攻撃 回避や防衛 不確実性 トラブル

Slide 23

Slide 23 text

日常における不確実性との向き合い 現在地点の事実を知るということに対しての ”忌避反応” 体重計に乗る テストを受ける

Slide 24

Slide 24 text

仕事における不確実性への向き合い 早めにやった方がいいはずなのに、つい後ろ倒ししてしまうことはないか。 上司に報告をして フィードバックを受ける すれ違いのある部門との 会話をして懸念を払拭する

Slide 25

Slide 25 text

これらに向き合うとき、 人は「不安」を感じます。 いろんな方法で回避したり、 場合によっては怒りを覚えたりします。

Slide 26

Slide 26 text

ではどのようにして「不確実性」に 向き合うのか。

Slide 27

Slide 27 text

2つの不確実性とどのように向き合うか。 未来の不確実性 他人の不確実性

Slide 28

Slide 28 text

1 3 2 ①心理的安全性のあるチーム ②疎結合なシステムと組織 ③システムの不可視性の可視化と対話 他人の不確実性への向き合い方 他人の不確実性 コミュケーション

Slide 29

Slide 29 text

コミュニケーションとは何か? 情報の非対称性の解消こそがコミュニケーション

Slide 30

Slide 30 text

コミュニケーション能力とは 情報の非対称性を解消できる力のこと 常識の距離が近いほど、会話は成立しやすい。 遠いほど難しい。より多くの非対称性を乗り越える力があ る人が「コミュニケーション能力」がある。

Slide 31

Slide 31 text

ソフトウェアとコミュニケーション ソフトウェアの人文的側面に着目すると立法プロセスのようなコミュニケーションそのもの 複数人の認識をそろえながら 機械的に処理できるほど明晰な文章を 将来の不確実な変化に耐えられるように 構成し、 共同で継続的に管理する営み ソフトウェア開発 立法プロセス

Slide 32

Slide 32 text

誤解されがちな心理的安全性 “仲がよい”/”アットホームな”とは全く異なる概念 心理的安全性 とは
 
 ‘’対人リスクを取っても問題な いという信念がチームで共有さ れている状態
 「間違い」を認めても大丈夫 「意見」を言っても大丈夫 「助け」を求めても大丈夫 OK! OK! OK! 「ここにいても 」大丈夫 OK!

Slide 33

Slide 33 text

心理的安全性は一人で創れるものではない アサーティブな言語化能力と問題解決を適切にファシリテーションすることで生まれる。 優しすぎて意見を出せない上司 うまく言語化できない部下

Slide 34

Slide 34 text

心理的安全性の四章限 如何に意見が言えても、無責任で自分本位の意見だと意味がない。 不安ゾーン ぬるま湯ゾーン 学習ゾーン 無関心ゾーン 心 理 的 安 全 性 高 低 高 低 責任

Slide 35

Slide 35 text

心理的安全性はなぜ生産性を上げるのか 心理的安全性はプロジェクトリスクを早期に曝露させる。 心理的安全性が高い チームが対人関係リスク をとって議論できる プロジェクトリスク を 早期に発見・対応できる プロジェクトが成功する 心理的安全性が低い チームが対人関係リスク をとって議論できない プロジェクトリスク に 向き合えない プロジェクトが失敗する プロジェクトの 不穏な匂い

Slide 36

Slide 36 text

プロジェクトリスクとはなにか。 プロジェクトのもつ不穏な匂い (リスク事象ドライバー)がリスク事象を引き起こす。

Slide 37

Slide 37 text

コード修正の心理的安全性を高める エンジニアの立場から見るとリリースで胃が痛くならない=開発者体験の良さ

Slide 38

Slide 38 text

疎結合なシステムと組織 構造的に型をつくることで、そもそも必要なコミュニケーション量を下げる コンテナリゼーション以前 コンテナリゼーション 以後

Slide 39

Slide 39 text

組織のコミュニケーション量 組織人数に対してリニアに情報処理能力はスケールしない

Slide 40

Slide 40 text

複雑性の増大に伴う開発工数の増加 ソフトウェアの複雑性は、機能の組み合わせの数に比例する。

Slide 41

Slide 41 text

ソフトウェアの本質的な困難性は それが見えないことにある。

Slide 42

Slide 42 text

1 3 2 4 ソフトウェア開発の本質的な難しさ ブルックスの名著「人月の神話 ―狼人間を撃つ銀の弾はない」より筆者によるまとめ ソフトウェアはその規模に対して複雑さが非線形に増大しま す。基本的にソフトウェアというものは一度作られたものであ れば、再利用できます。そのため、どんな人工構造物よりも 複雑になります。 複雑性 ソフトウェアは、文化・業務・経済環境・商習慣、顧客行動な どさまざまな点に連動して、変わり続ける必要があります。当 初の計画通りのシステムが出来上がったとしてもそれは利用 者の要望により変わり続けます。 可変性 ソフトウェアは、それ単独で意味を成すものではなく自分自 身を動作させるハードウェアや、ネットワーク、OS、その他の システムなどと連携しながら、同調することで初めて意味をな します。 同調性 ソフトウェアは、目に見えません。抽象的な概念の相互関係 であり、それは一般に技術者にしか理解できない言語で記述 されます。そのため、ソフトウェアの構造を他の構造物とは違 い見ることができません。 不可視性

Slide 43

Slide 43 text

見えないことが技術的負債の性質 クルーシュテンの定義によると、技術 的負債の性質はソフトウェアにおいて「見えない」「マイナスの価値」 のものとなる。 技術的負債の四象限 ソフトウェアの性質を可視性と価値の正負によって 4つに分類する バグ 技術的負債 見える 見えない 新機能 アーキテクチャ (開発者体験 ) 出典:フィリップ・クルーシュテン (2012) プ ラ ス の 価 値 マ イ ナ ス の 価 値

Slide 44

Slide 44 text

見えないことによる情報の非対称性 エンジニアには悪いところがよく見える。非エンジニアには、表面しか見ることができない。

Slide 45

Slide 45 text

情報の非対称性が コミュニケーションを不全にする。

Slide 46

Slide 46 text

見えてしまえば、非機能要件のリスト 『ブレーメンの音楽隊』の怪物の様なもの

Slide 47

Slide 47 text

情報非対称性が 技術的負債 現象の原因 エンジニアは見える、非エンジニアは見えない。この 情報非対称性:そのギャップを埋めるために生み出さ れた言葉が技術的負債。このコミュニケーション ギャップが技術的負債を「問題化」させるまで放置さ せてしまう原因。

Slide 48

Slide 48 text

1 3 2 ①リアルオプション戦略と仮説検証 ②経験主義的プロセス ③頻度がつくり出す質 未来の不確実性への向き合い方 未来の不確実性 高速な仮説検証

Slide 49

Slide 49 text

仮説法とは何か 仮説検証という言葉が人口に膾炙しているが、仮説という考え方が理解されていない わずかな痕跡を元に 大胆な予測を行い 大胆な推測を行い それが仮に真である場合 証拠をさがす行動をする。

Slide 50

Slide 50 text

リアルオプション戦略 “わからない”部分を最小のコストで実験し、明らかにすることで後出しジャンケンする。

Slide 51

Slide 51 text

1 3 2 ①リアルオプション戦略と仮説検証 ②経験主義的プロセス ③頻度がつくり出す質 未来の不確実性への向き合い方 未来の不確実性 高速な仮説検証

Slide 52

Slide 52 text

理性主義と経験主義 わからないことを行動を通して経験し、それを知識として徐々に突き止める =経験主義 理性主義的な問題解決
 経験主義的な問題解決
 わからなかったので、 もう一度考えてみよ う! わからなかったので、次 に何をしたらわかるのか 考えよう。

Slide 53

Slide 53 text

経験主義的プロセス 固定するもの/変化させるものを反転させて「経験」を得られるようにする。 リソース
 納期
 要求
 リソース
 納期
 要求
 固定する 変化する 150pt 15pt 10pt 1ヶ月 1ヶ月 あとどのくらい?

Slide 54

Slide 54 text

経験主義的プロセス 机上の計算の積み上げによって予定するのではなく、実験から予測するプロセスに。

Slide 55

Slide 55 text

相対見積もりによってバイアスを取り除く タイムスロットを固定し、消費ポイントから期日を予測することで相対見積もりが可能になる リンゴ1個分 あの猫は3個分くらい スケジュールコミットが厳しい環 境ほど悲観的に見積もる。
 コミットが緩い環境や担当者の 責任感が強いほど楽観的に見 積もる。


Slide 56

Slide 56 text

見積もりは ”幅を持った予測 ”にする。 楽観 悲観 リスク 楽観 悲観 リスク 楽観 悲観 不確実性をファーストクラスとしてプロジェクト管理の対象にする 1ヶ月後 初期 2ヶ月後

Slide 57

Slide 57 text

プロジェクトを形作るものはなにか。 プロジェクトのタスクとリスク プロジェクトタスク タスクは、プロジェクトを 足し算で評価する。 プロジェクトリスク リスクは、プロジェクトを 掛け算で評価する。

Slide 58

Slide 58 text

1 3 2 リスクが早期発見されるほど成功する 不安の大きい要素から先に取り組む。 早めに関係者にプロトタイプやできたものを見せる。 本番システムをつかって早期に検査する。 逆に後半でリスクが爆発する方が問題が大きくなる。 プロジェクト早期から、リスク要素に真正面から向き合うには、 チームのコミットメントと心理的安全がなければむずかしい。

Slide 59

Slide 59 text

プロジェクト終了確率は対数正規分布 足し算の世界は、正規分布に近づく。掛け算の世界は対数正規分布に近づく。 正規分布 対数正規分布

Slide 60

Slide 60 text

プロジェクト大規模化がリスクを増やす そのため可能なら小さな単位に分割したい。

Slide 61

Slide 61 text

プロジェクトスコープを小さく保つ 規模が小さいとタスクの足し算の要素が支配的になり、大きいとリスクの掛け算が支配的になる 正規分布 対数正規分布 大規模化 細分化 リスクの裾野が長くなり コントロールしにくくなる。

Slide 62

Slide 62 text

見積もり、コミットメント、ターゲット 見積もりは本来は確率分布の形をしている。 見積もりとして、表現されたものが 50%で完了するラ インであれば楽観的な見積もりだし、 99%であれば悲 観的すぎる見積もり。 何%で終わる見積もりなのか。

Slide 63

Slide 63 text

見積もり、コミットメント、ターゲット 見積もりを人々が口にするときに 3つの観点がバラバラなときトラブルが起こる。 コミットメントはチームの努力目標。 見積もりは確率分布。 ターゲットはビジネスとして必要な時期。 60% 80% 努力目標はあったほうがいい。 でも、外部に約束する時は、普通は十分な確率を見越して設定 しないと企業価値が損なわれる。

Slide 64

Slide 64 text

1 3 2 ①リアルオプション戦略と仮説検証 ②経験主義的プロセス ③頻度がつくり出す質 未来の不確実性への向き合い方 未来の不確実性 高速な仮説検証

Slide 65

Slide 65 text

ドラム式自動洗濯機の ”良さ” 新しい「当たり前」となる習慣の価値は、使う前にはわからない。 手洗いの方が よく落ちるよ 全自動は 信用できない 干すのは 手間じゃない 洗剤は 自分で入れる

Slide 66

Slide 66 text

フロー効率を高める技術的投資 継続的デリバリーを前提に自動化や効率化を徹底的に進めることで品質と価値効率を最大化する 開発 テスト リリース 開発 リードタイム リードタイム プロダクト型 プロジェクト型 CI/CDなどのデリバリー自動化への投資 継続デリバリーを前提としたアーキテクチャ投資 頻度は「質」に転化する。

Slide 67

Slide 67 text

67 © rector.inc フェイルファストの原理 シリコンバレーでは、 Fail Fast (早めに失敗しろ )という言葉がよく言われる。 さまざまな試行錯誤があってこそ、イノベーションを生む のだという話として表層的に捉えられていることが多い。 モダンなソフトウェアプロダクト開発においては、まさに この「早めに失敗する」という原理に基づいて 様々な技術/文化が発達し、その結果強靱で強力、高品質な プロダクト開発が行われている。

Slide 68

Slide 68 text

失敗から学ぶ ≠ とりあえずやってみる 失敗するかも知れないことをやるというよりも、失敗そのものを積極的に生み出す 何でもかんでも 闇雲にやる 失敗が早期であれば プロジェクトの被害は 軽微 早く失敗しろ 失敗から学ぶ 早く失敗しろ 失敗から学ぶ

Slide 69

Slide 69 text

フェイルファストの原理から導かれる文化 早期に”低コスト”で失敗を引き起こす仕掛けをつくる 失敗から”次の行動”が導けるような仮説思考に基づく それらを組織的にスケールできるようにする

Slide 70

Slide 70 text

フェーズ毎の「フェイルファストの原理」 経営と組織文化 プロダクトマネジメント 開発中 リリース後 心理的安全性の投資 リアルオプション戦略 透明性あるOKR 仕事の明確化 コアの内製化 失敗の予算化 発信のオープン化 フェイルファスト マインドの育成 仮説法的なNSM リードタイム最適化 システム思考 データ駆動な仮説構築 ユビキタス言語の管理 仕様の直交性 形式手法等の仕様検査技術 優先順位算出の明文化 静的型/型推論の発展 CodeClimate/ Linter Churn analysis/静的解析 Security Shift Left DevOps / DevSecOps Microservices ユニットテストとCI API駆動開発 Trunk Based Development コンテナ化 / k8s化 継続的デプロイメント Blue Green Deployment Feature Toggle Dark Launch サーキットブレイカー フォルトインジェクション カオスエンジニアリング Infra as Code

Slide 71

Slide 71 text

エンジニアリングが導く未来の組織

Slide 72

Slide 72 text

エンジニアリング組織の変化 職能別組織 事業部組織 ユニット型組織 CEO ビジネス組織 技術組織 事業部 ビジネス組織 技術組織 CEO 事業部 事業部 プロダクトチーム プロダクトチーム プロダクトチーム 横軸組 織

Slide 73

Slide 73 text

組織の「エマルション」が進む ソフトウェアを事業に生かしていくことが当たり前になるにつれて、組織の中で溶け合う 職能別組織
 事業部組織
 ユニット型組織
 外注型組織


Slide 74

Slide 74 text

文字とコード。民主化するプログラミング かつて、文字が書ける書記官は高給取りで人材不足と言われていた。 文字がかける書記官 コードがかけるエンジニア

Slide 75

Slide 75 text

異なる要素の 境界面に争いは生じる。 溶け合った後 には、争いは生じない。

Slide 76

Slide 76 text

一昔前の働き方って「非人間的」? 「仕事が奪われる」そのとき、どんな仕事が奪われているのでしょうか。 白物家電のない生活 工場制手工業

Slide 77

Slide 77 text

未来からみると 私達の働き方は「非人間的」。

Slide 78

Slide 78 text

働き方の変化はなぜ起きているか。 少ない労働力でより多くのことをコンピュータに任せて仕事をしていく必要がでてきている。 労働力が希少に 
 コンピュータが安く大量に 


Slide 79

Slide 79 text

コンピュータに 働かせる領域を増やし ヒトが働く領域の価値を上げる。

Slide 80

Slide 80 text

労働の移転:人から計算機へ 旧来型組織 
 現代的ソフトウェア企業 


Slide 81

Slide 81 text

労働の移転:人から計算機へ 旧来型組織 
 現代的ソフトウェア企業 
 均質なチーム 多様なチーム

Slide 82

Slide 82 text

目的と手段のはしごが置き換わっていく 不確実性が小さい”手段”の領域からコンピューターが置き換えていく 目的 手段 目的 手段 目的 手段 目的 手段 目的 手段 不確実性小 不確実性大

Slide 83

Slide 83 text

労働の移転:運営から成長への仕事の変化 旧来型組織 
 現代的ソフトウェア企業 
 運営( Run the Business) 成長( Grow the Business ) 変革( Transform the Business) 成長( Grow the Business ) 変革( Transform the Business)

Slide 84

Slide 84 text

労働の移転:成長する組織の仕事のあり方 旧来型組織 
 現代的ソフトウェア企業 
 官僚型職能別組織 コマンド&コントロールの目標管理 メンバーシップ型人事制度 全体論的多様性のあるチーム 権限委譲と透明性のある OKR型目標 ジョブディスクリプション型人事制度

Slide 85

Slide 85 text

不確実性に適応する力が求められる。 2020年版ものづくり白書 


Slide 86

Slide 86 text

経営学とソフトウェア工学を わけて考える時代の終わり。

Slide 87

Slide 87 text

社会のソフトウェア化が進むと 人間には本質的なコミュニケーション能力 が求められてくる。