本日は、米マイクロソフトシニアエンジニア 牛尾剛さん著作 文芸春秋出版「世界一流エンジニアの思考法」を紹介します。
インドで日本とインドの技術者と触れ合う中で、エンジニアの思考法ってどういったものなんだろうと、ふと感じる中で、この本に出会ったのがきっかけです。
私はエンジニアの考え方のみならず、日本とアメリカの企業文化の違いのところが特に興味深く紹介させて頂きました。
牛尾さんご自身は、1971年生まれ、日本の大手SierにてITエンジアであったが、2009年に独立。
2015年に米国マイクロソフトに入社し、2019年より米国本社でAzure Functionの開発に従事したそうです。
目次
第1章 世界一流エンジニアは何が違うのだろう?
第2章 アメリカで見つけたマインドセット
第3章 脳に余裕を生む情報整理・記憶術
第4章 コミュニケーションの極意
第5章 生産性を高めるチームビルデイング
第6章 仕事と人生の質を高める生活習慣術
第7章 AI時代をどう生き残るか?
➀世界一流エンジニアは何が違うのだろうか?
牛尾さんがマイクロソフトでプログラムの作成、もしくはコードの修正に対応していた際、兎に角早く間違いを見つけ、プログラムを完成させることに気を取られていたそうです。
一方、マイクロソフトのエンジニアは、ある最初の一つの事象だけを見て仮説を立て、手は一切動かさなかったそうです。
更にプログラムの複雑なアーキテクチャの把握の仕方は、兎に角何回もビデオなりで見返し、理解することに時間を掛けていたこと。
また、既存システムがある場合は、あれこれ考えて調べる前に、まず「エキスパートに頼る」というのがベストプラクテイスであると認識したそうです。
②「Be Lazy」というマインドセット
「Be Lazy」(怠惰であれ)
これが、アジャイル、スクラム開発の世界で頻繁に言われている重要なポイントだそうですが、
「より少ない時間で価値を最大にするという考え方」その習慣は以下だと言います。
・望んでいる結果を達成するために、最低限の努力をする。
・不必要なものや付加価値のない仕事(過剰準備含む)をなくす。
・完結さを目指す。
・優先順位をつける。
・時間や費やした努力より、アウトプットと生産性に重点を置く。
・長時間労働しないように推奨する。
・会議は会議の時間内で効率的かつ生産的に価値を提供する。
この前提として海外のメンバーの場合、「最初の1個をピックアップしてやったら他はやらない。
その一つにフォーカスしよう」という感覚になるそうです。
「減らすこと」自体に価値があるというマインドにリセットすることなんだそうです。
最終的に三つピックアップするケースでも、まず最初に一つだけピックアップしてから、あとの二つをピックアップする。
この1番重要な「一つだけ」をピックアップする癖をつけると、ポイントを外さない仕事を高速で回せるようになる。
更に時間を固定して、その中で価値を最大化するという行動をとる。
時間が最大の制約なので、時間内に確実にできる数に絞って、最大の成果を出せることに集中する。
更に、「準備」「持ち帰り」をやめてその場で解決する。
常に「会議の場」だけで完結し、必要な「意思決定」は会議の時間内で完結する。
「リスクや間違いを快く受け入れる」
日本では中身も売れ行きもボロボロなのに、納期と予算を守ったという理由で、「成功」したことになっているプロジェクトが沢山あったが、アメリカでは、成功しようがしまいが、まずはやってみて、早くフィードバックを得て、早く間違いを修正していくFail Fastの精神が強い。
更に日本のように検討ばかりして、さっさと「やらない」ことのほうが最大のリスクという考えが強いんだそうです。
また、日本のように「納期は絶対」という神話はなく、多くの案件は期日通りリリースしているが、中身は予定よりも少ない量に変更されていることがよくあり、納期を守るために、徹夜する人もみたことがないそうです。
Q(品質)C(コスト)D(納期)+S(スコープ)はトレードオフの関係にあり、納期を短縮したければ、品質を落とすか、お金をたくさん払うか、提供する物量’(スコープ)を減らす。
ソフトウエアの場合は、変更が多いため、当初の計画通りにはまずいかないため、単純化していうと、進捗の「実績」だけで状況判断し、「納期」を固定したまま「スコープ」を出し入れするのが現実的なんだそうです。
いずれにせよ、日本のように「なるはやで」「明日までに」という火急の依頼は「マネジメント能力の欠如」と見なされるそうです。
現実をみて、フィードバックを受けて納期や仕様が変わっていくのはむしろ「善」。
「不確実性を受け入れる」
マインドセットをチームと関係者でシェアすることで生産性が高まるんだそうです。
従い、KPIは定時で無理なく楽に達成できる程度のものであるべきなんだそうです。
③脳に余裕を生む情報整理・記憶術
牛尾さんは、いかに脳みその負荷を減らすかが生産性を上げるポイントだと言います。
レベル1:何もググらずに即座に実装できるもの。
レベル2:問題をどう解決するかはすぐに思いつくが、具体的な方法は忘れているの絵、ググる必要があるもの。
レベル3:自分は解法を知らないが、スパイクソリューション(課題解決のための大まかなプログラム)をしたらできそうなもの
レベル4:自分だけでは解決が難しい、もしくはものすごく時間がかかるもの
そこで、生産性とは、いかに「レベル1」を増やすかではないか。
レベル3や4の増加を増やすよりも、レベル2案件をレベル1に向上させる方が生産性が高いのではという気づきを得たそうです。
重要なことは自分がしんどいと思う「努力」は一切やめてしまうこと。
重要なのは「今の自分では解けない」としっかり見極めること。
時には時間をじゃぶじゃぶ使い、技術を徹底して理解し、すぐに取り出せるレベル1の状態にしてこそ、長い目で見た際の生産性が上がる。
いずれにせよ、アウトカム至上主義となって一日に一つ何か成果を出すことを目標に動き、仕事がおわるまでやめないスタイルをやめたそうです。
今手を付けている仕事を一つに限定すること。
毎日4時間をブロックしてTeamsもメールも一切閉じて、自分の作業だけをする。
更に自分がやったことをクリアに説明できるよう時間をかけて言語化してみる。
その一つの手段として、ブログを書いてみるというのもあるそうです。
人間が記憶をするために有効な方法は、シンプルに「思い出そうと頑張る」ことで、記憶しやすくなる復習のタイミングを習慣化し、「作業内容を人にそらで説明できるか」を記憶できたかのチェックポイントにするそうです。
④コミュニケーションの極意
アメリカでは、対クライアントでも社内でのやり取りでも、「脳の負荷を減らす」端的なコミュニケーションが喜ばれるということ。
特にエンジニアは「情報が少ない」方が好まれるんだそうです。
また、ある人は、問い合わせがあるといつも一発で完璧に的を射た回答が帰ってくる。
その習慣に「メモをとる」習慣があり、日頃から人に伝えることを前提とした準備をしておくと、なにか聞かれた際の工数削減に直結するそうです。
何かあればクイックコールを頻繁に使うこと。
インターナショナルチームでは、原則として自分にその分野の「メンタルモデル」や「コンテキスト」がなければ、すぐさまエキスパートに聞いたほうがよいという考え方で仕事をしているそうです。
⑤生産性を高めるチームビルデイング
ソフトウエアの世界では、「サーバントリーダーシップ」と呼ばれるタイプのマネジメントが主流になっていそうです。
つまり、リーダーは「ビジョンとKPI」は示すが、実際にどのように動くかはチームが主体的に考えて意思決定していく。
日本企業と比べると、現場のメンバーがかなりの権限を与えられて、どう実行するか各自で考えている。
「自己組織チーム」とも呼ばれるもので、チームを信頼して、チーム内でビジネスの仮説や仕様、そのアーキテクチャや技術を決定していくそうで、タスクの割り振りもチームが自らやっていく。
基本的にメンバー各自がやりたい仕事を「自分がやるよ」と選択していく。
特にインターナショナルチームでは、基本的にメンバーが「楽しんでいるか」が非常に重要視されるそうです。
では、マネジャーは自主的に動く各メンバーをどうサポートするのか。
ゴール設定はかなり親身になって一緒にやってくれ、困って相談するといろいろとアドバイスをくれるが、「あれしろ、これしろ」と細かく指示することはない。
更にエンジニアが中長期にどうキャリアアップしていけるか、相談に乗って支援もしてくれる。
マネジャーには、バックログ(今後やるべきことリスト)と大きな予定だけはあるが、一度仕事をプログラマに割り振ったら、あとはもう信頼するしかないんだそうです。
更にチーム内ではスキルや経験に関係なく、全員が同じ責任を持っているフラットな「仲間」としてふるまうのだそうです。
ボスであっても私たちに仕事をするときは「お願いモード」
失敗しても、ポジテイブな態度でいるほうが心地よく、できる人たちにのびのびとパフォーマンスを発揮してほしかったら、何よりもチームメンバーが「仕事を楽しめる」環境を作ることが大事。
そのためにはたくさん仕事をするのではなく、「作業量を減らして、インパクトのあるものに集中する」ことに高い価値を見出しているそうです。
⑥仕事と人生の質を高める生活習慣術
「生産性を上げるためには学習。だから仕事を定時ぐらいで切り上げ、その後自分のやりたいトピックを勉強したり試したりする」
これまで、筆者は「アウトカム」重視派で、切りの良いところまでやろうと考えて、結局寝る直前までかかることが頻繁にあった。
それに対して、5時になったら仕事が途中でも、どんなに切りが悪くてもすぐに仕事をやめ、タイムボックス制に切り替え、朝型の生活にシフトし、必ず夜10時には寝るスタイルにしたところ、1週間もしないうちに頭がさえて生産性が上がったそうです。
更に朝起きてから就業前までの数時間を「学習」の時間に充てることにした結果、違うことをするのがリフレッシュにつながることを理解できたそうです。
著者は海外チームにいて日本の会社との一番大きな違いは、みんな楽しそうに、人生と仕事をエンジョイしていて、どうやったら自分の人生が幸せになるかを主体的に考えて、仕事の仕方を「選択」しているのだそうです。
⑦自分の所感-日本も変わってきた部分も!
この本を読んで、アメリカと日本の仕事に対する考え方の違いを感じるとともに、私がいる職場についても考えてみました。
今の職場は、中途採用が半分以上居り、だいぶアメリカの考え方、つまりプロフェッショナルが主体的に楽しんで仕事を進めていく形に変わりつつある部分もある気がしました。
「Be Lazy」の発想まではなかなか持てないにしても、しっかり休暇を取り、幸せに仕事をする。
私自身もその考えを取り入れるとともに、これからの日本や会社でも急速に広まっていく気がします。
(広まっていかないと、人口減少時代に幸せになれない人生などまっぴらだとも思います。)