人間は本能的にわからないものを避けようとする。「不確実性に向き合う」ことの難しさをどのように克服し、自分やメンバーとの人間関係、チームのマネジメントに活かせばいいのか。経営者とエンジニアの認識のギャップをどう埋めるか。「アジャイルなチーム」をめざすには? 技術的負債を解消するには? 経営学や心理学、ソフトウェア工学などの知見も援用しながら、大事な問いへの対処法を提示している本書。
■リファクタリングせよ
「問題解決をめざすなら、コードだけでなく、人々の思考・組織・ビジネスの『構造』こそリファクタリングしなければいけない」。
ソフトウェア開発の現場では、多くの理不尽や感情の対立が起きている。まるで人間の思考の中にバグが含まれているような状態。
ソフトウェアの実現における「はじめ」は、曖昧な要求であることが多い。そこから具体的で明確なアウトプットに進む。実現に至るまでに曖昧さを減らし、具体性・明確さを増やす行為がエンジニアリングである。
エンジニアリングで重要なのは、「どうしたら効率よく不確実性を減らせるか」という考え方。ソフトウェア開発を成功させるには、「思考のリファクタリング」が必要となる。
■「環境不確実性」と「通信不確実性」
不確実性はどこから生まれるのか。それは未来と他人という、「わからないこと」にある。未来は、それがやってくるまでわからないもので、行動や実験の観察によって明らかになっていく。これを「環境不確実性」という。一方、他人は、自分には理解できず、コミュニケーションを通じてしか削減できないもので、「通信不確実性」という。
不確実なものに向き合う際は不安を伴う。人は不安になると、本能的に回避か攻撃を選びがちだ。この不確実性を下げるには、情報を生み出すことが欠かせない。
これを意識していれば、エンジニアは、不確実な要求仕様や不確実な実現手段にストレスを感じることが減っていくだろう。ソフトウェアを書くこと以外に不確実性を削減する手段があれば、それを提案していくこともエンジニアリングの一部である。
複雑な問題を簡単な問題に変換するには、「論理的思考の盲点」「経験主義と仮説思考」「システム思考」という3つの考え方が役に立つ。
■論理的思考の盲点
論理的思考は、「ルールと事象を正しく認知できること」「正しく演繹できること」という2つの前提が満たされたときに可能になる。そのため、自分や他者の認知がいつ、どのように歪むのかを知らなければならない。
そのうえで大事なのが、ネガティブな感情や不安を引き起こす「認知の歪み」を取り除くことである。
■経験主義と仮説主義
不確実性を確実なものにしていくには、それを理解したうえで、実験によって知識を獲得し、「わからないこと」を行動で突き止めていくことが必要となる。要は「行動して確かめる」という発想だ。
経験主義をうまく機能させるには、「行動できることは何か」と「行動の結果起きたことを観察できるか」という2点を重視しなければならない。
経験主義の生産性を高めてくれるのが「仮説思考」だ。「仮説思考」はわずかな情報から、大胆に推論を行い、その正しさを検証するという考え方
■システム思考
人は、問題を個人の責任にしたり、全体像を捉えずに局所最適な思考をしたりしてしまう。システム思考では、それを理解したうえで、「それが全体像ではないかもしれない」「問題は関係性にあるのではないか」と、問題の構造を解き明かそうとする。対立が生じたとき、一次元上の観点から全体の関係性を把握していくことで、対立を解消に導けるのも、システム思考のメリット。
■真のコミュニケーション能力とは
通信不確実性、すなわちコミュニケーションの不確実性は、情報を知っている人と知らない人を分断していく。これにより「情報の非対称性」が拡大する。人は、自分の課題を他人も把握していると勘違いしがちだ。もしくは、把握していてほしいという願望に基づいて行動する傾向にある。
また、人間の認知能力には限界がある。そのため、限られた範囲でしか合理的な行動がとれない「限定合理性」も生じる。
■メンタリング
メンタリングとは、自ら考える人材をつくるテクニックのこと。対話を通じて、メンタリングする人の思考力を一時的に貸し出し、思考の幅を広げていく。これにより、当人の認知を補正し、次の行動を促し、成長させていく手法。
メンタリングが、直接何かを教えること(ティーチング)よりも優れているポイントは、メンティの気づいたことの応用力が身につくという点である。この応用力は、他人から与えられた説得による知識ではなく、自らの気づきによって知識を獲得したときに生まれる。前者を「他者説得」、後者を「自己説得」という。
メンタリングでは、他者説得よりも自己説得を重視し、その獲得を促していく。
■心理的安全性
グーグルの労働改革プロジェクトによると、チームの生産性と最も強い関係性のある要因は、「心理的安全性」だという。心理的安全性とは、対人リスクをとっても問題ないという信念を、チームで共有している状態のこと。個々人のキャリアやセルフイメージなどに負の影響を与える恐れなく、自分を表現して働ける状態を意味する。心理的安全性を高めることで得られる効果は、メンバーが率直に話すようになり、健全な議論ができ、失敗が緩和される点だ。さらには、組織内の障害ではなく目標に集中でき、イノベーションが促される。
■「アジャイルなチーム」 自己組織化
アジャイルとは、「チームが環境に適応して、不確実性を最も効率よく削減できている理想状態」である。(具体的には、情報の非対称性が小さく、心理的安全性が高い。また、チーム全体のゴール認識レベルが高い。)
こうした理想状態に向かって前進している集団を、「アジャイルなチーム」という。これを自己組織化と呼ぶ。
アジャイルな方法論とは、理想状態にチームが向かうために、不確実性を減少させる方法を考えるための組織学習のアプローチと捉えるとよい。具体的には、不安に向き合うこと、少人数の対話を重視すること、特定の役割にメンバーを縛らないこと、事前に大惨事のリスクを減らしておけば意思決定を遅延してもよいと考えることなどが挙げられる。