世界一流エンジニアの思考法
米マイクロソフトのシニアエンジニアが書いた本です。日本とアメリカと文化の違いや仕事の取り組み方の違いや一流のエンジニアの仕事の仕方を知ることができ、非常に勉強になりました。ここ最近の本では読んで良かった本の一冊です。この本は学ぶべき内容が多かったため、メモが多めです。
読書メモ
以下、重要と感じた部分を引用しつつ、思ったことを書いていきます。
世界一流のエンジニアは何が違うのだろう
試行錯誤は「悪」である→ 試行錯誤よりも仮説を立てて取り組む
今までの自分だと、とにかくやってみるという感じで深くは考えずに行動をしていたと思います。そのために問題解決までに時間がかかっていたように思います。まずは仮説を立てみるということをやってみたいと思います。
理解に時間をかける
理解とは
・ その構造をつかんで人に説明できる
・ いつでもどこでも即座にとりだして利用できること
・ 知見をふまえて応用が効くこと
→理解に時間をかける。どんな優秀なエンジニアでも難しい内容には理解するのに時間をかける
どんな優秀なエンジニアでも難しい内容は理解するのに時間がかかっているのは意外でした。優秀なエンジニアたちなら理解も早いかと思っていました。つまり、時間をかけて理解をすることは悪いことではなく、時間をかけてしっかりと理解することが大事。
Be Lazyというマインドセット(怠惰であれ)
→より少ない時間で価値を最大化する考え方
Be Lazyを達成するための習慣
・ 望んでいる結果を達成するために、最低限の努力をする - 不必要なものや付加価値のない仕事(過剰準備含む)をなくす
・ 簡潔さを目指す - 優先順位をつける - 時間を費やした努力より、アウトプットと生産性に重点を置く - 長時間労働しないように推奨する
・ 会議は会議の時間内で効率かつ生産的に価値を提供する いかにやることを減らすか 「準備」「持ち帰り」をやめてその場で解決する
これは、本当に日本の会社は学んでほしいと思いました。職場にはなぜこの作業をするのかよくわからない不要な作業があったり、無駄な会議があったりします。もっと生産性を考えて、仕事が進められるように工夫できれば良いなと思います。
生産性を加速するために、リスクや間違いを快く受け入れる
・間違いを厳しく批判しない
・失敗から学ぶ姿勢
・早く失敗する
・実験が推奨される
・全員に現状維持や標準を要求せず、臨機応変が推奨される
・避難や恐怖感のない環境
今の時代、検討ばかりして、さっさと「やらない」ことのほうがリスク
もう少し気軽に失敗できる環境があると良いなと思います。
不確実性を受け入れる→変化に柔軟に対応する
・マネジメントは詳細まで練られた計画を期待しない
・予算と報告のプロセスは精密な結果の予想を要求しない
・内部プロセスは計画や優先順位の変更に柔軟である
・事前にすべての問題分析が完了せずとも新しいことに挑戦する姿勢を持つ
・システムとプロセスは柔軟で、複数の頻繁な変更を受け入れられる
・学びに基づいて、変化を精力的に行う 楽に達成できる計画で仕事する →火急の依頼は「マネジメント能力の欠如」とみなされる 無理・断る練習をする
これくらい柔軟にやるためにはやっぱり個々の能力がある程度ないと難しいのかなと思いました。ここまでチームでできるようになれば、すごく生産性があがりそうです。
火急の依頼については全くその通りで「マネジメント能力の欠如」である。マネージャはこの認識ができると良いと思います。
コミュニケーションの極意
気軽に聞けることの大切さ
反対意見でも否定をしない 「自分の意見をのべさせてもらいますね」みたいな感じで否定をせずに意見をいう
わからないことがすぐ聞ける職場って良いですよね。聞きづらいと聞くかどうしようかって迷っている時間が勿体無いですね。聞かずに進めて間違えて手戻りするのも時間が勿体ないです。
生産性を高めるチームビルディング
「サーバントリーダーシップ」対となるのが「コマンドアンドコントロール」
コマンドアンドコントロール制ではマネージャが部下に指示をする
サーバントリーダーシップ制ではメンバーが主体で動き、マネージャは彼らの障害を取り除く役割
サーバントリーダーシップではビジョンとKPIは示すが、実際にどのように動くかはチームが主体的に考えて意思決定していく。
これもやっぱりチームメンバーの能力がある程度高くないと難しいかなと思います。ビジョンとKPIだけ決めて、その過程は自由に進めることができればかなりストレスがなくなりそうです。
自己組織チーム/フィーチャーチーム
自己組織チームの3つの特徴
・生産性が高い
・チームのエンゲージメント(満足度)が高い
・よりよいソリューションが選択されやすい
タスクの割り振りもチームが自らやっていく。
基本的にメンバーがやりたい仕事を「自分がやるよ」と選択していく。
常に「楽しんでいるか」が非常に重要視される。
日本では「楽しんでいるか」なんて聞かれるのはまずなさそう。こういう職場の雰囲気があるとかなり働きやすそうです。
日本では「我慢できるのが大人」、インターナショナルな職場では、「自分の考えや人生に責任を持つのが大人」とされる 仕事を楽しんでいるか?を確認する文化 マネージャはいかにメンバーたちが幸せに働けるかに高い関心を寄せ、エンパワーしてくれる Be Lazyを推奨し、休暇を尊重する 作業量を減らして、インパクトのあるものに集中する
このあたりの価値観は本当に見習いたい。
仕事と人生の質を高める生活習慣術
定時に仕事を切り上げたほうが生産性が高まる
生産性を上げるためには学習 仕事は定時で切り上げて、その後に自分のやりたいトピックを勉強したりためしたりする
脳の酷使をやめる
・ 瞑想する(マインドフルネス)
・ ディスプレイから意識的に離れる
・ しっかりと睡眠時間をとる
良いプログラマになるためのコツ
・ 新しいことを学んだらブログを書く
・ ブログを書くとき、サンプルコードそのままではなく、少し変えて試してみる