世界一流エンジニアの思考法

第1章 世界一流エンジニアは何が違うのだろう?―生産性の高さの秘密

  • 理解には時間がかかるもの
    • 手を先に動かさず、まずは仮説をたてアプローチを選定する
    • 熟考なしの試行錯誤は悪
  • 根本を把握していないとトラブルに弱く結局は効率が悪い
    • 目先のアウトプットが本質的な理解を遠ざける
    • 未来の生産性
    • 基本的な構造から把握した知識は応用範囲が広く、複雑な問題も因数分解し対応できる
    • 牛尾さんの対応
      • プログラミングの基礎を学ぶ
      • C#の言語仕様を学ぶ
      • LeetCode
  • メンタルモデルをつくる
    • メンタルモデル
      • 人々が世界を理解し、予測し、解釈し、新しい状況に適用するための、自己の心の中のイメージや理論のこと

第2章 アメリカで見つけたマインドセット―日本にいるときには気づかなかったこと

  • いかにやることを減らすか?
    • 本当に必要なこと1つに集中する
  • 会議の「準備」「持ち帰り」をやめる
    • 💭準備なしの会議で効率的な時間が本当に実現できるのかな。前提として参加者の共通認識は必要そう。何の会議ための会議かとは知っておかないと...という気はする🤔
  • 計画は当初の予測であって、予測不能なことは起きるし、優先順位も変わっていく
  • どれだけ何をやったか?ではなく、どれだけ会社にインパクトを与えることができたか?
  • リスクや間違いを快く受け入れる
    • 間違いを厳しく批判したり懲罰したりしない
    • 失敗から学ぶ
    • 早く失敗する
    • 実験を推奨する
    • 現状維持や標準を要求せず、臨機応変が推奨される
    • 非難や恐怖感のない環境
  • チャレンジしない方が会社の将来のリスクを高める
  • 自分の能力以上のことにチャレンジしているので失敗は起こる
  • 会社と合意したゴール(KPI)を達成しているかどうかが重要
    • 💭 前提として評価基準や目標設定が整備されている、というのがあるのでそれらが整備されていないベンチャーだと違う気はする
  • 不確実性を受け入れる
    • 楽に達成できる計画で仕事をする
    • 無理と言う・断る練習をする
      • 無理の連鎖は疲労を生み、生産性を下げる
      • はっきりと意見表明をする
        • 人格の否定のニュアンスは含めない

第3章 脳に余裕を生む情報整理・記憶術―ガチで才能のある同僚たちの極意

  • 自分が「楽しくない、苦しい」と思う時は「無理」あるサインで、自分のレベルに合っていないことをやっている。上達しない。
  • 自分の言葉で説明可能な状態にする

第4章 コミュニケーションの極意―伝え方・聞き方・ディスカッション

  • クイックコール
    • 自分にその分野のメンタルモデルやコンテキストがなければ聞いた方が早い
    • 受ける側もチーム、プロジェクトを推進させることになる
    • 気軽に聞ける雰囲気は、気軽に断れる雰囲気(知らないことは知らないと言える)
  • ディスカッション
    • 正しいかどうか、ではなく自分の考えを自分なりに深める行為
    • 異なる視点から自分の考えや知識を深めることができる
  • PR コメント
    • In My Opinion
      • 相手を否定しない、相手のアイデアを否定しない、自分の考えとして意見をいう
      • 意見が違うだけであって間違っていると言うスタンスではない

第5章 生産性を高めるチームビルディング―「サーバントリーダーシップ」「自己組織型チーム」へ

  • サーバントリーダーシップ
    • ビジョンと KPI は示すが、具体的にどう動くかはチームやメンバーに任せる
    • チームメンバーをステークホルダー
  • 仕事を楽しんでいるか?を確認する文化
    • いかにメンバーたちが幸せに働けるかに高い関心を寄せ、エンパワーしてくれる
  • メンバーの自発性を促す
    • 自発性が低い人には「どのタスクやります?」とあくまでも選択するのはメンバー
    • メンバーが伸び伸びと仕事を楽しめる環境を作り出すこと

第6章 仕事と人生の質を高める生活習慣術―「タイムボックス」制から身体づくりまで

  • 生産性を上げたければ「学習」すること。仕事ばかりしていては短期的なアウトプットは上がっても根本的な生産性は上がらない。(第1章)
  • タイムボック制を導入し時間で区切る
    • 脳の酷使をやめる
      • 瞑想をする
      • ディスプレイから意識的に離れる
      • しっかり睡眠時間をとる
    • 発想のブレークスルーはその仕事をしていないときに生まれる
  • 身の回りの整理 → 情報の整理 → 頭の整理
  • 新しいことを学んだらブログでアウトプット

第7章 AI時代をどう生き残るか?―変化に即応する力と脱「批判文化」のすすめ

  • 専門性を高める
  • 脱批判文化
    • ソフトウェアの文脈においては、完璧を求める文化は少しも良いようには働かない
    • 完璧主義、失敗者を批判する文化が強い日本
      • 新しことへチャレンジする精神(=> 失敗する可能性の方が高い)
      • イノベーティブなことができない
      • 人がこれくらいやって当たり前、専門家だったら当たり前
      • お客様は神様
  • アメリカの文化
    • まずは自分がどういう貢献ができるか?と言う考えがベースにある
    • 人が自分に何かしてくれたら感謝の気持ちが生まれる
    • 自分が動かなければ良くならないのは当たり前
    • あくまでも自分次第
  • 感謝のループ
    • 作ってくれてありがとう、助かった => もっと良くしよう
  • マネジメントの姿
    • 今からどうやったらよくできるか?自分に何ができるか?
      • それぞれの立場でなすべきこと
    • 完璧主義やメンツからの精神論での納期順守はプロのマネジメントではない
  • 人間は失敗するもの、やってくれてありがとう
  • ポジティブフィードバック

所感

  • マイクロソフトのシニアエンジニアであっても「プログラミングの基礎を学ぶ」ことが大事とおっしゃっているので、もっとコンピュータサイエンスやプログラミングの基礎を学ばねば。
  • 「チャレンジしない方が会社の将来のリスクを高める」「自分の能力以上のことにチャレンジしているので失敗は起こる」という言葉を見て、最近失敗していない(= チャレンジしていない)ので自分を奮い立たせチャレンジし、盛大に失敗してみよう。
  • 脱「批判文化」のすすめ、というのはとても同意できるもので、エンジニアの文化として、HRT がよく取り上げれるが、HRT の前段(土台部分)に感謝(Thanks)というものがある気がしていて、この辺りについて言語化してブログ化する

Team Geek

1章 天才プログラマの神話

  • ソフトウェア開発はチームスポーツである
  • 三本柱
    • 謙虚 Humility
      • 「謙虚」は自分の意見を言わずに黙れということではない
    • 尊敬 Respect
    • 信頼 Trust
  • コードレビュー
    • 相手が間違えているのではなく自分が理解できないだけ
  • 早い段階で失敗・学習・反復する
    • Google の社是
      • 失敗は選択肢の1つ
      • 過去に失敗したことな方らそれは革新的でないか、リスクをとっていない証拠である
    • 過ちから学ぶには失敗を文書化する
      • 学習した結果として何を学んだかと何を変更するか
  • 弱さを見せる、ときには「わからない」と言うことが長期的な立場の向上につながる
    • 答えをきみが持っている必要はない
    • 適切な答えを知るより、適切な人を知る方が価値がある

2章 素晴らしいチーム文化を作る

  • 誰かが新しくチームに参加した時は、チームリーダーから文化を教えれもらうのではなくチームメンバーから学ぶ
  • 建設的な批判はエンジニアリングチームの成長や発展に欠かせない
    • Healty Conflicts
  • ミッションステートメント
    • プロダクトが目指すことと目指さないこと

3章 船にはキャプテンが必要

  • サーバントリーダー
    • 執事や召使のようにチームに奉仕すること
    • 必要があればチームが進めるように穴を埋める、自らの手を汚す
  • アンチパターン
    • みんなの友達になる
      • 友人関係とチームをリードすることを混合してはいけない
    • 採用を妥協する
      • 「Aクラスの人はAクラスの人を採用したがるが、Bクラスの人はCクラスの人を採用したがる」という格言
        • 一流の人は、一流の仲間を増やして良い仕事をし、かつ自分を伸ばすことを重視するが、二流の人はライバルを作らないように自分より能力が下の人を採用したがる、という意味
  • リーダーシップパターン
    • 目標を明確にする
      • モチベーションと方向性を与える
    • 正直になる

5章 組織的操作の技法

  • 理想的なマネージャー
    • 自分の責任範囲を広げよう
    • リスクを取ろう

感想

  • 1章の HRT の文脈で「相手が間違えているのではなく自分が理解できないだけ」と言うのはとても納得できるものであった
  • 「謙虚」は自分の意見を言わずに黙れということではない、と言うの意識しておきたい。「自分の意見を言わない」と言うのは、チームに対して信頼がないと言うこと
    • もしかしたらチームをより良くする・前進させるかもしれないのに「言わないことが謙虚」ではない
    • そこは「2章 素晴らしいチーム文化を作る」の「建設的な批判はエンジニアリングチームの成長や発展に欠かせない」につながる
    • そして、心理的安全性の話になる

IT エンジニア採用とマネジメントのすべて

求人票

カジュアル面談のポイント

  • 転職活動の温度感
  • 優先したい軸の確認

面接

  • 現職で不満に感じていること
  • 次の職場でやりたいこと
  • どういった企業を受けているのか

評価

行動評価

  • 組織目標を達成するためにチームの一員として働いた経験を教えてください。チームはどの様に協力してくれましたか?結果はどうなりましたか?
  • 影響範囲をベースに評価する
      1. 指示を仰ぎながら実施できる
      1. 1人で実施できる
      1. チームメンバーに対して教育ができる
      1. 他部署へのいい影響が与えられている
      1. 社外へもいい影響が与えられている

技術評価

  • Readability
  • Reliability
  • Security
  • Availability
  • Flexibility
  • Scalability

成果評価

  • エンジニアのアウトプットと売り上げ貢献を直結させて考えることは難しい
  • 階級以下の人たちは成果評価の比重を下げて、それ以上の人たちには成果評価の比重を上げる

市場価値で給与を決める

  • 年に一度、職務経歴書を社員に更新してもらい、その職務経歴書を3社の人材紹介会社に提出する
  • 受け取った人材紹介会社は想定される報酬レンジを算出する
  • 3社から受け取った報酬レンジのうち、最も高い金額を年収として設定する

その他

  • 面接終了間際や直後に候補者にアンケートを配布し、面接体験の FB を回収し、面接品質を向上させる
  • 自社の weak point を認め、面接で包み隠さず伝える
    • 改善策を立てていること、ケースによっては一緒に改善していって欲しいと伝える
    • 現在抱えている課題をフラットに説明し、そこに共感してもらえる人、やりがいを感じてくれる人を採用する
  • 候補者ジャーニーの作成
  • 40 ~ 50 代エンジニアの活用

急成長を導くマネージャーの型

マネージャーの4つの役割

  • 経営からオーダーされた成果を残す
    • 「自分が社長なら」とい常に考えておく
  • 人的資産を維持・活用する
  • 人を育てる
    • 育成も投資。リターンを見極めて戦略的に行う。「これは!」という人財にフォーカスする。
  • 会社の中でチームを機能させる

マネージャーとしてのスタンス

  • ベンチャーでは誰もがプレイングマネージャー(兼任) -自分起点で決めていく
    • 全て自分で考える
    • 自分なりに状況を考え、定義した役割を言語化し「こういう認識ですが間違いないでしょうか?」と経営陣にぶつける

チーム

  • 会社の中で担うべき役割があり、達成すべき目標がある

目標設定

  • 目標の達成を目指すことでチーム・個人の能力を最大限発揮するもの
  • 目標はチームの力を引き出すエンジン
  • 目標を目指すことでチーム・個人がどうなるのか?
  • 手が届くギリギリのライン
    • 70%程度は達成方法の想像がつくが、30%は達成イメージがつかない
    • 達成方法が設定時点では思い浮かばない
    • => 達成イメージがつかない部分があるから「創意工夫」が生まれる => 能力が向上する
  • 成果中心の評価ではなく、能力中心の評価
    • 絶対に達成できるような保守的な目標を達成し続ける人より、野心的な目標を掲げ、そこにチャレンジし続けることで能力を伸ばす人を評価する
  • 野心的な目標を達成した際に何があるのか?
  • Will / Can のアサイ
    • Will の背景(ビジョン、キャリアアップ、ポジション、タイプ)を把握し、背景に対してアドバイスをする
    • 会社は Will を叶える場所ではない。支払っている給与に対して成果を残してもらう場所。
    • 可能な限り Will を叶える。叶わなくても理解する。向き合う。

成果を出し続ける

  • 「このまま同じことを続けて望む成果は得られそうか?」を問う
  • トップダウンが有効
    • 改善ポイントが明確でやればやるだけ成果がでるタイミング
  • ボトムアップが有効
    • 改善ポイントが不明確、成果が出ないタイミング

評価

  • 評価は納得解。メンバーがその評価に納得し、受け止め、そこから成長課題を設定し、モチベーションを向上させることができれば、評価は成功。
  • コンフォートゾーン、チャレンジゾーン、パニックゾーン
    • チャレンジゾーン: 達成が全く想像できないわけではないが、確実に想像できるわけではない
  • 中間振り返り
    • 現在の進捗を正しく認識してもらう(定量目標の場合は必須)
    • 言語化
      • うまくいったこと、いかなかったこと、それぞれどのようなことがあったか?それはなんでか?
      • 目標達成に活かせる学びは?
  • フォードバック
    • 事実に基づく
      • 事実の記録。事実をストックしていく。
    • 結果だけではなく成長課題がわかるように
      • 良かった点、更に求めたい点
    • 口頭ではなく必ず文章で
  • 評価はメンバーの最大の関心事
    • 「これでもか」というくらい丁寧に時間をかけて
    • メンバーの最大の関心事に答えられないマネージャーは、どれだけ良い戦略・組織があったとしても人が動かない
    • 相手が気づいていない、耳の痛い事実を伝える

ピープルマネジメント

  • 「正しいこと」より「共感できること」
  • 見返りを求めず惜しみなく与える

一番大事なこと

  • メンバーの本質的な成功や成長に執着する
    • 成果を作るのはマネージャーではなくメンバー
    • そのメンバーの成功や成長にコミットする

チームトポロジー

4つの基本的なチーム

  • ストリームアラインドチーム
    • ビジネスの主な変更フローに沿って配置されるチーム
    • 職能横断型で他のチームを持つことなく、利用可能な機能をデリバリーする
    • 本番環境のアプリケーションの開発、運用、修正を含む全体のオーナーシップを持つ
  • プラットフォームチーム
    • ストリームアラインドチームのデリバリーを助けるチーム
    • プラットフォーム = 内部向けシステム
    • ログの仕組み、モニタリングシステム、テストツールなどを開発する
  • イネイブリングチーム
    • 転換期や学習期に他のチームがソフトウェアを導入したり変更したりするのを助けるチーム
    • 特定のテクニカル(プロダクト)のスペシャリストから構成される
    • 適切なツール、プラクティス、フレームワークなどアプリケーションスタックのエコシステムに関する調査等を行う
  • コンプリケイテッド・サブシステムチーム
    • ストリームアラインドチームやプラットフォームチームが扱うには複雑すぎるサブシステムを扱うチーム
    • 本当に必要な場合だけ編成される

その他

「問い」リスト

1 on 1

  • 私がしていることでこのまま続けて欲しいこと一つは何か?
  • 私が今してないことでもっとした方が良いと思うこと一つは何か?
  • あなたがより高いパフォーマンスをあげるために、私がすべきことは何か?
  • 上司・リーダーとしてではなく知人・友達として...
  • この企画で特に大事にしたかったことは何ですか?
  • あなたはこれからどんな価値を提供していきたい?
  • どんな価値を提供してきた?
  • 今のあなたのパフォーマンス状況は 100点中何点?今チームのパフォーマンス状況は 100点中何点?

MTG

抽象的な一般論ではなく、具体的なエピソード

  • Before
    • みなさんが普段の商談において大切にしていることはなんですか?
  • After
    • これまでの商談において意外に効果があった工夫はなんですか?

相手の価値観を内省する機会を作り出す

  • Before
    • これまでの人生において最も「豊か」に感じられた食事はなんですか?
  • After
    • 無理に1番を決めなくても構いません。今頭に浮かんでいるこれまでの「豊か」に感じられた食事の思い出をいくつか教えてもらえませんか?

適度に制約をかけ、考えるきっかけをつくる

  • Before
    • 何か良いアイデアはありますか?なんでも良いので遠慮なく提案して下さい。
  • After
    • どんなユーザーをターゲットにしたいか思い浮かぶ特徴はありますか?
    • これまでボツになった企画で「もったいない」と感じるものはありましたか?

遊び心をくすぐり、答えたくなるような仕掛けを

  • Before
    • 社長が発表した来期の戦略について何か質問はありますか?
  • After
    • もし社長にバレないように戦略を1つ追加するとしたら何を追加しますか?
    • まずは悪いアイデアから考えましょう。何かボツ案はありますか?

フカボリモード

  • チームの根底にある「こだわり」がはっきりせずぼやけている時に、解像度を高めるためのモード

素人質問

  • 初歩的な質問ですみません...。これはどう言う意味ですか?
  • 理解不足で申し訳ないのですが、これはどう言う意味ですか?
    • お前そんなこともわかってないのかとツッコミを受けるかもしれないのですが...
  • そもそもの質問になるのですが、これはどう言う意味ですか?

ルーツ発掘

  • 興味本位で聞くのですが、...
  • ◯◯さんの関心についてより理解したいのですが、....
  • どこにこだわりがありますか?
  • なぜそこに/いつからこだわりますか?
  • ◯◯との違いはなんですか?
  • どんな時にテンションあがる?
  • 影響を受けた人や本は?
  • 仕事の中で許せないことは?イライラしてしまうことは?
  • 休みの日にはどんなことにお金や時間をかけていますか?

ユサブリモード

  • 固定観念や価値観のズレなどの「とらわれ」が見えてきた時に揺さぶりをかけて、新しい可能性を探るためのモードです

言い換え

  • 今の状態を数値に表すと100点満点中何点ですか?その理由は?

仮定法

  • もしあなたが経営陣/ユーザー(立場)だったら..
  • もし予算が3倍/納期が1ヶ月伸ばせる(制約の撤廃)になったら

その他

  • メンバーから視点が異なる回答があった時
    • イデアの提案ありがとうございます。あなたが着目した技術の可能性についてとてもよくわかりました。うまく育てば良いアイデアになりそうです。「ところで」、先日伝えたユーザニーズの観点が抜けていたけれど、検討はこれからですか?
      • この技術のどんなところが面白いと思ったのですか?
      • 特に大事にしたいこだわりはどこですか?
      • いつ頃からそのアイデアを持っていたのですか?
  • そもそもなぜ◯◯をつくるのか?
    • 会社から与えられた「とらわれ」から脱却し、本質を見つめ直す
  • 「◯◯」はなぜ重要なのか?「◯◯」とは何か?
  • この会社をより良くするためにはあなたはどう変わるべきか?
    • 強すぎるので以下の方がベター
    • この会社をより良くするためにはあなたがやってみたい挑戦は?あなたができるちょっとした工夫は?あなたらしい改革をするとしたら?
  • この会社をより良くするためにはチームはどう変わるべきか?
  • この会社をより良くするためには組織はどう変わるべきか?
  • 否定形容詞のテクニック
    • この会社をより良くない状態になっているとしたら、どういう状態?
  • 発散の質問
    • 思いつくアイデアを全て書き出す
  • 収束の質問
    • 条件設定。優先順位や期間の指定
  • ハードルを下げる
    • 無理に良いアイデアを言おうとしなくて良いですよ
    • パッと思いついた考えで良いですよ
  • 質問に回答してくれたことへの感謝
    • 難しい質問だったかと思うのですが、ご回答いただきありがとうございます。
    • 言語化してくれてありがとうございます。助かりました。
  • 3人のレンガ職人の話
    • 中世のヨーロッパで旅人が3人のレンガ職人に出会うんです。旅人が『何をしているんですか?』って聞くと、1人目は『ただひたすらにレンガを積んでいる』と答え、2人目は『大きな壁を作っている。これで家族を養っている』と答えました。3人目は『私は歴史に残る偉大な大聖堂を作っている』と答えた。
    • 目的意識

「心理的安全性のつくりかた」読後の思考整理

思考整理

  • 心理的安全なチームとは?
    • メンバー同士が健全に意見を戦わせ、生産的で良い仕事をすることに力を注げるチーム・職場のこと
    • NOT
      • アットホームなチーム、結束したチーム、和気あいあいとしているがストレッチした仕事をせずコンフォートゾーンにいるチーム
    • チームの大勢の意見が一致していたとしても「それは違うと思います」と容易に反対意見が言えるチーム
  • 心理的「非」安全なチーム
    • 「無知」「無能」「邪魔」「否定的」だと思われたくない
      • 邪魔...必要でも助けを求めない
      • 否定的...率直に意見を言わない
  • 高い妥協点
    • 健全な衝突(ヘルシーコンフリクト)
    • 心理的安全性が担保されている状況下では、健全な衝突は業績にプラスの影響がある
  • 4つの因子
    • 話しやすさ
    • 助け合い
    • 挑戦
    • 新奇歓迎
  • 正しいことを伝えるだけでは役に立たない(行動は変化しない)
    • プライベートでショックな出来事があった人に対して「給料分はパフォーマンス出せ」と言ってもパフォーマンスは上がらない
    • 「積極的に意見を言いましょう」「助け合いましょう」と言っても行動に影響は与えられないことが多い
    • 「お互い信頼するように」「尊敬し合うように」と言っても変わらない
    • 具体的に取れる行動にフォーカスして伝える
  • 4つの因子と具体的な行動
  • 変えられないものを受け入れる
    • 自分自身が赤いメガネをかけている
    • 赤いメガネをかけていない人などいない
    • 考えが正しいか真実かよりも、役に立っているか
    • 嫌な気持ちをコントロールしようとしない、受け入れる。諦める
    • 配られたカードで戦うしかない、それがなんであれ。
    • 人生に YES という
    • 大変なことが起きるのがノーマルというマインド
  • 大切なことに向かい変えられるものに取り組む
    • 会社、チーム、個人何のために何を大切にして活動しているのかを言語化する
  • マインドフルに見分ける
    • 今この場で起きている出来事に気づき続ける
    • 座禅・マインドフルネス
    • 「物語としての私」から「観察者としての私」
      • 物語としての私は、私 = OOO というキャラで成立している
      • そのキャラがある限りはキャラを壊さないような心理が働くので成果よりも対人関係のリスクに関心が行きがちになる
      • 「私 = 世界を眺めているカメラ」の状態が観察者
  • 行動分析でつくる心理的安全性
    • 行動自体が楽しい時に、金銭の見返りがあると行動が弱化される
    • 「なんでもいってね」は役に立たない
      • 具体化した投げかけ(問い)が重要
        • より良いOOにする上でもっとこうした方が良いという改善点や何か懸念点、リスクを思いつく人はいますか?
        • 担当する上で不安な点はありますか?
        • もっとこうした方が OO さんの生産性が上がるとかより相談しやすいとかはありますか?
    • フィードバックするときは、「あなたはこうすべき」ではなく「私はこう見えた・感じた」という I message.
    • シンプルに聞く
      • 困ってることある?分かりにくいところなかった?手が回ってないところある?悪いニュースある?
      • 解決できなくても一緒に考えるだけでも OK
    • あなたやメンバーにとって「この行動を続けられているだけでハッピーなもの」を見つける
  • 心理的安全性導入アイデア
    • ありがとうに理由をつける
      • 「あなたが素晴らしい」ではなく「私が助かった」
      • なぜ助かったのかを考えることで理由を発見できる
    • メンバーをよく見ている、気にかけている
    • 3割のレビュー会
      • カレーを作る時に、材料が集まった時点でレビューする
    • 弱みを正しく移譲する
    • 過去の失敗を素直に語る
    • 相手より少しだけオープンにいる