『エンジニアリング組織論への招待』を読む(1章)
はじめに
未経験から就職した受託開発の会社でwebエンジニアとして1年半働く中で、高確率で案件が燃えたり、あまり効率的でないコミュニケーションのもと手探りな開発をしていたり、開発のしにくさを実感していました。
そこで、開発する組織の構造、あるべき姿について知る事でストレスなく快適なチーム開発できるのでは......!と考えたので、『エンジニアリング組織論への招待』を読んでいこうと思います。備忘録がてら自分が思ったこと、実際に使えるなと感じたことをこちらにメモしていきたいと思います。
下記の5章からなる本なので、5回程度の投稿でまとめようと思います。
第1章 思考のリファクタリング
第2章 メンタリングの技術
第3章 アジャイルなチームの原理
第4章 学習するチームと不確実性マネジメント
第5章 技術そそいきの力学とアーキテクチャ
さっそく第1章 思考のリファクタリングから行きます!
全てのバグは思考の中にある
コミュニケーションをしていて感じる理不尽、感情の対立は思考のバグ
思考のリファクタリングは頭の中の無駄なプロセスを削除して考える指針を持つ事
これによって問題解決に向かって明確に行動できる
第1章ではチームの要素となる人間の論理的思考の欠陥を指摘して、性質を理解していくことが目的っぽい
不確実性とエンジニアリング
エンジニアリング=工学
工学とは数学自然科学を基礎として、有用な事物や環境を構築する事を目的とする学問。問題を解決する学問。
問題 お腹減った
解決 スパゲティを食べている
定義は終わりになるほど具体的になっていき解決される
つまり曖昧なもの(不確実性)を減らして具体的にしていくのがエンジニアリング
不確実性は情報が多ければ多いほど少なくなる。つまりエンジニアリングの仕事は情報を生み出す事。
不確実性とは
不確実なこと(人にとってわからない事)とは未来と他人
向き合うことは不安なので、基本的にわかっている事に向き合ってしまう。
(例:難しいタスク先延ばしにしてわかりやすいタスクに手をつけ始めがち)
情報を生み出すには
論理的思考を持って情報を生み出すために知ること
1.人間がそもそも論理的思考ができない時があること(論理的思考の盲点)を知る
例:自分が知ってることを全て相手が知っていると勘違いして話してしまう
例:自分の正論は自分の見識の範囲の中でしかないこと
例:他者と関わる以上感情的になり、論理的でないことがあるなど
2.論理的思考とはそもそも何かを知る
以下の3要素を使って論理的に思考していくことが大切である
・経験主義 経験して、検証し物事を明らかにしていく
・仮説主義 少ない情報から全体像を仮定して検証して物事を明らかにしていく
・システム思考 要素に分解するのではなく、全体の関係性を分析していく
論理的思考の盲点
論理的思考はそもそも演繹的思考である
演繹的思考の例:
ルール 人は死ぬ
事象 私は人
結論 私は死ぬ
正しく論理的思考が行われるには
・ルールと事象が正しく認知できること
・演繹が正しくできること
が必須条件である。
当たり前の条件に見えるが、しばしばこれらの前提が崩れてしまい、論理的思考ができないことがある。
ルールと事象が正しく認知できないケース
例:伝聞を事実として報告する、自分の意見も事実として伝えてしまう
そもそも人は物事を正しく認知できないことを知ろう。(カントの認知の話?フランシスベーコンの4つのイドラなど)
正しく演繹できない
例:この人はこちらを下に見ているからこう意見しているのだと感情的になって、短絡的に判断してしまう
認知の歪みが正しい演繹を妨げる
認知の歪み・・・・不安や抑鬱状態を固定化させてしまう思考が歪むパターンを精神科医が分類したものたち。以下パターンから抜粋
・ゼロイチ思考 例:あの人はいつもそう、これでダメなら全部ダメ
・一般化のしすぎ 主語の大きさ 例:あの人は営業職だから
・すべき思考 例:芸能人の不倫は個人間の問題なのにモラルの問題にすり替えて、事情を無視して絶対良くないと断定する
・選択的注目 例:不景気というニュースを聞いて街に出ると不景気っぽいことばかり目に付く
・結論の飛躍 例:既読無視されたからこの人は私のことを嫌いだ
・感情の理由づけ ただ嫌いなだけなのに、生産性が低い、やる気がないから人間として程度が低いと結論ずける、というようにそれらしい理由をつけてしまう
・認知的不協和 自己の矛盾を避けるための行動。例:タバコ吸ってる人がタバコは体に悪くないと主張する お母さんに勉強しなさいと言われた子供が今勉強しようと思ってたのに言われたせいでやる気がなくなったと主張する
経験主義と仮説思考
・スクラム開発は経験主義
スクラム開発は不確実性の高いタスクからやっていき、わかることを増やすことで不確実性を下げ見積もりの精度を上げていく開発
仕事は学校のテストと違って、現在の手持ちの情報だけでは答えが出ない可能性があるのでスクラム開発のようにわからないことを検証していく作業が大事
・経験主義はコントロールできるものを操作して、観測できるものを通じて結果を知識にする(不確実性を減らす)ということ。
・名言「観測できないものは制御できない」トムデマルコ(ソフトウェア工学の人)
経験主義の実践例:上司が仕事を評価してほしい
コントロールできるもの 上司を変える、評価基準を知る、自分の行動を変えるなどの行動
コントロールできないもの 自分に対して上司が内心思っていること、上司の評価基準
観測できるもの 仕事の評価の結果
観測できないもの 上司の内心
経験主義的な判断:上司の評価基準を知って、自分の行動を変えることで得た仕事の評価を観測することで、良い行動ができていたかを知ることができた。
良くない判断:上司に良く思われようとして、プレゼントをあげてみたが、上司の内心は観測できないため、何の情報も得られなかった。
・仮説思考
わずかな痕跡からそれを説明する大胆な仮説を作り、確認する (例PDCAサイクル)
遅延した意思決定・・・立てた仮説についてリスク小さくしながら検証すること
例:
100万円払うと半分の確率で3倍になるプロジェクトがあった時、最初から全て賭けるとと利益の期待値は50万円だが
10万円賭けて、成功してから残り全てをかけると95万円になる
全体論とシステム思考
・そもそもの説明
システムとは・・・・秩序立った複数要素の組み合わせ、要素に分けてもみられない性質を持つ関係性。エコシステム(生態系)など有機的な生命現象にも用いられる
全体論とは 要素還元主義的ではなくシステムを見て判断する、ネットワーク構造になっているイメージ
(参考)要素還元主義・・・全ての要素は分解できる、要素の総和として全体がわかる、ロジックツリー構造
全体論的なシステム思考をしていくことが大事
例:コストを下げれば利益をあげられるだろう(要素還元主義)と思ったら実際には売り上げが落ちてしまった(要素同士の関係性が大事だった)
・物事の関係性のパターン
拡張のフィードバックサイクル
例:サッカーが好きなので練習して上達して褒められてさらに練習する、
抑制のフィードバックサイクル
例:勉強しないので無理やり勉強させられて成績が伸びないのでさらにやらなくなる
・注意すること
認知できる範囲に限界があるので、人間は全体を把握でないまま限定的に正しいことを判断している。
例:アルファベットのUを下から見た人は線にしか見えないし、上から見た人は点が2つあるように見えている、互いに正しいことをいっているが口論になる
・まとめ
個人のせいにせずに関係性を確認する。
章のまとめ:人間の不完全さを受け入れる
・論理的思考の盲点
・経験主義と仮説思考
・全体論とシステム思考
上記は人間が持っているバグに対するパッチを与える考え方。
それによって以下のことを克服できる。自分の思考の癖などを振り返って気をつけよう
・人は正しく事実を認識できないこと
・いくら理屈で考えても出ない問題があること
・人は問題を個人の責任にしたり全体像を見失って、局所最適な思考をしてしまうこと
別の話:コミュニケーションにも不確実性がある
要素3点
・他者理解の不確実性 他人や現象は完全には理解できない
・伝達の不確実性 完全に伝わるとは限らない
・成果の不確実性 仮に理解されても予想されたように行動されるとは限らない
その結果生まれること
・情報の非対称性 片方が知っていること
・限定合理性 個人の中での最適解が全体の最適解にならない()
以上を踏まえるとコミュニケーション能力とはコミュニケーションの不確実性を減少させられる能力である。
思ったこと
・論理的思考をする上で盲点になるパターンの列挙がとても勉強になったし、何か困った時に当てはめて考えていくツールとして使えそう
Discussion