こんにちは。かじです。
今回は牛尾剛著・世界一流エンジニアの思考法の書評をしたいと思います。
発売以来、自分の身の回りで話題になっていた一冊で、未だに平積みコーナーに残っていたので、購入してみました。今年は、積読を解消するまでは本を買わないと決めていたのですが、ついつい。
本書の要点
個人的な本書の要点は下記になります。
・試行錯誤は悪
・理解に時間をかける
・WIPは1
・コスト、クオリティ、時間はトレードオフ
一つ説明ずつ説明してきましょう。
試行錯誤は悪
まずは、試行錯誤は悪です。
個人的には環境構築でよくあるパターンな気がするのですが、急いでいたりすると、表面的なエラーメッセージを見て、適当にパッケージをインストールしてしまうことが多々あります。それでも上手くいかず、ググってみて出てきたやり方を片っ端から試してみる。もしくは思いつく方法を片っ端からやって時間を消費してしまうということが多々あります。結果上手くいったら、何か動いていたからいいや、動かなかったら、諦めるみたいなことはあります。
なんでエラーが出ているのか根本的な理由を把握せずに頭を使わずに手だけを動かしてしまうというのは悪手であると筆者は述べています。
理解に時間をかける
続いてのポイントは理解に時間をかけるという点です。
筆者は、アメリカマイクロソフトのエンジニアの方々は、生産性が日本に比べてはるかに良いですが、決して日本人より頭がいいという訳ではなく、何かを理解する際には時に時間をじゃぶじゃぶ使うことを厭わないと言います。
自分が優秀であることを認めさせたいとか思うと、ついつい早く理解しようと焦ってしまうことが多いかと思います。しかし、肝心なのは、根本から理解であるということです。枝葉のことに焦点を当ててしまうことによって本質的な理解をおざなりにしてしまうと生産性は上がらないのです。
WIPは1
WIPとは、Work in Progressの略で、進行中のタスクを意味しており、常にシングルタスクにするのがポイントです。これ自体はどこでも言われていることで、当たり前の気がしてしまいますが、なかなかできないのが実情です。これを実践するためにマイクロソフトの社員は徹底したアプローチを取ります。
例えば、日本人はタスクを洗い出して優先順位をつけて、優先順位の高い方から進めるようにしますが、MSのエンジニアは、タスクの中で一番インパクトのあるタスクをピックアップして、それだけに集中します。他のタスクに優先順位などはつけず、一番インパクトのあるタスクが完了させることを第一目標にします。
他にもシングルタスクを徹底するために、一日4時間は誰とも連絡を取らず、一人で集中する時間をとると言います。
確かにこの方法であれば、シングルタスクは実現できそうな気がしてきます。
コスト、クオリティ、時間はトレードオフ
最後のポイントは、コストや時間とクオリティはトレードオフであるということです。
これも考えてみれば、当たり前ですが、日本には納期を神格化する風習があり、納期までに完了させることが絶対とされています。そのため、残業は勿論、場合によっては徹夜することさえもあります。納期を守るために本来すべきテストの工数など一見減らすことができそうな工数を減らすことで、納期を守ることなどがあります。結果そうなるとクオリティが落ち、瑕疵が増えることになります。瑕疵自体はソフトウェアに付き物ですが、納期を守ろうとするあまりクオリティが下がったことによって、穴が大きくなってしまうことは往々にしてあります。
MSの場合は、期日を遅らせたりすることは当たり前で、場合によっては機能を減らすということもあります。納期をどうしても守らなければいけない場合には、その分プロジェクトを早めに始めるしかないと思います。
これ自体は結構業界構造や日本の文化的な背景が起因しているのではないかなと思います。
日本では事業会社が自社で開発している企業もありますが、SIerのような企業にシステムの開発運用を丸々外注しているということが多くあります。SIer自体、人月商売である故に、かかった工数に対して金額請求をします。そんな中、多重下請けをしたり、値引きやスケジュールの短縮のようなクライアントからの要求があった場合に破綻します。そもそも、人月工数も見積もりであるため、それ通りにいかないことは多々ありますし、人によって能力差があるにも関わらず、全てを同じ工数内で計算するのも無理があるような気はしていました。
実際に僕が見ているのは業界のほんの一部だけですし、海外の場合を知らないので一概には言えませんが、バッファを見たコストやスケジュールの見積もりをしたり、あまりに無理な要求な場合は断るみたいな努力が必要なのかなと思いました。
まとめ
本書を読んで、エンジニアの生産性の高さというのは各個人の考え方の面も多数を占めていますが、環境や企業、業界の構造も少なからず起因しているなと感じました。ある意味、IT業界だけではなく、日本のGDPが下がっているということにも繋がっているような気がしました。