「一流は納期を守らない」大ヒット本著者が語る、マイクロソフト流「生産性爆上げ、6つの鉄則」(牛尾剛/世界一流エンジニアの思考法/勉強法/Microsoft Azure/サティア・ナデラ)
Summary
TLDRアメリカでソフトウェアエンジニアとして活躍する牛強さんは、自身を3流と位置づけながらも一流エンジニアの思考法を取り入れることで生産性を上げてきたと語る。理解に時間がかかることを知り、他者が早く理解できるからといって自分のペースを求めないようにしたそう。またコードは書くためのものではなく読むためのものとして、他者が読んで理解しやすい書き方を心がけることでレビューも減ったと述べている。
Takeaways
- 😊 理解に時間がかかることを知るまでは、賢い人がすぐに理解できると羨ましく思っていた
- 🧐 1流のエンジニアは自分の10倍以上の時間をかけてでも理解しようとしている
- 👍 理解のために時間を惜しまず投資することで生産性が大きく向上した
- 📝 理解したと判断するための基準は、他者に説明ができること
- ⏰ 納期を設定しない方が品質の高い製品ができあがる
- 💡 徹夜して成し遂げたからといってビジネスインパクトが上がるとは限らない
- 📈 スーパー効率を求めるあまり、逆に生産性が下がってしまうことがある
- ✍️ コードは読み物なので、他者にとって読みやすいことが大切
- 🎯 自分が3流であるからこそ、同じ立場の人を助けられるアドバイスができる
- 💪 1流のエンジニアの思考法や戦略を真似することで武器になる
Q & A
牛強さんはなぜ自分を3流だと考えているのですか?
-コンサルタントやPMとして日本で通用しなかった経験があるため。プログラマーに転身したが、コーディングスピードはチームの中で1番遅いと述べています。
なぜアメリカでは納期がないということが衝撃的だったのですか?
-日本では必ず期限を設定し、残業をしてでも間に合わせようとするが、アメリカではそうではない。できたところで完成、できないものはできないという認識で、期限自体があまり重視されていない。
なぜアメリカのソフトウェアエンジニアリングが進んでいると思うのですか?
-アメリカでは品質を犠牲にしてでも期限にこだわることがない。ゆとりをもって開発することで、完成度や品質の高い製品を提供できている。
コードを書くことと読むことのどちらが大切だと気づいたのですか?
-他のエンジニアから自分のコードが読みにくいと指摘されたことから。メンテナンス時など読む時間の方が書く時間よりはるかに長く、他人に理解しやすい書き方が大切だと気づいた。
一流のエンジニアの思考法を身につけるメリットは何ですか?
-一流と同じように対応することで、生産性や業務スピードが大きく向上する。また、賢い人でも理解に時間がかかるという共通認識ができ、苦手意識や劣等感がなくなる。
3流の人が本を書くメリットとは?
-1流の人は当たり前のことをやっているため参考にならないが、3流の人がどう工夫したかが参考になる。再現性が高く、自分でもできると感じられる。
ファイアされずに済んだ理由は何だと思っていますか?
-一流のエンジニアの思考法や戦略を身につけていたため、生産性が高く評価されたのだと考えている。
理解力を高める方法を教えてください。
-他者に説明できるレベルまで理解すること。自分で納得していても他者に説明できなければ本当の理解とは言えない。ブログを書く等のアウトプットも効果的。
開発スピードを上げる方法を教えてください。
-理解するのに必要な時間を惜しみなく投資すること。時間をかけてでも自分なりに完全に理解することで、その後のスピードが格段に上がる。
品質の高いソフトウェアを提供する方法を教えてください。
-期限にこだわらず、無理のないペースで開発すること。期限に追われ品質を犠牲にするより、ゆとりをもって高い完成度を目指すことが大切。
Outlines
🤔 エンジニアの思考法
このパラグラフでは、エンジニアとしての思考法についての話が展開されています。特に、効率的な仕事の進め方や、失敗を恐れずにチャレンジする姿勢が強調されているようです。また、アメリカでの働き方と日本でのそれとの違い、特に納期に対する考え方の違いが語られています。エンジニアとして一流になるためには、単に技術的なスキルだけでなく、このような思考法を身につけることが重要だというメッセージが込められているようです。
🕒 理解と時間投資
第二のパラグラフでは、新しい知識を理解するための時間投資の重要性に焦点を当てています。他人と比較せず、自分のペースで深く理解することの大切さが語られています。また、理解したことを他人に説明できるレベルまで知識を深めることが、真の理解につながると強調されています。エンジニアリングだけでなく、一般的なビジネスパーソンにとっても、このような深い理解を追求する姿勢が有効であると示唆されています。
📖 コードの読みやすさ
このパラグラフでは、プログラミングにおけるコードの読みやすさとその重要性について論じています。コードは書くだけでなく、他人が読んで理解しやすいようにすることが、長期的なメンテナンスやチームワークにおいて極めて重要であることが強調されています。また、レビュー過程でのフィードバックの価値と、それを通じてコードの質を向上させるプロセスも語られています。
Mindmap
Keywords
💡納期
💡エンジニアの思考法
💡効率
💡マイクロサービス
💡生産性
💡メンタルモデル
💡デッドライン
💡品質
💡コードレビュー
💡アジャイル
Highlights
納期がないことが衝撃的だった
できなかったからといって困ることを前提としていない
スーパー効率が悪い。品質が犠牲になる
コードは読み物。他人に理解可能かが大切
3流の人がどう工夫したかが参考になる
Transcripts
納期ないっていうのが衝撃的でしたねあ
できなかったねじゃあ伸ばそうみたいな逆
にスーパー効率悪いですよねそん賢いから
一発で理解できてんのかなと思ってたん
ですけどイ俺の10倍以上時間をかけて
1番最初はもう師匠の言うことはもうその
まま実行した方が良く
[音楽]
てよろしくお願いしますよろしくお願いし
ます一般のビジネスパーソンにも役に立つ
エンジニアの思考法というテーマで牛強
さんにお話を伺い
[音楽]
[拍手]
[音楽]
ます後派のすごいところやっぱり40代
超えてからアメリカに渡られてご活躍され
てるってことなんですよねすごい
エンジニアなんですけどけれどもご本人は
ご自身が3流だってずっとおっしゃって
いるただ自分がその中でその一流の中で
やっていけたのは生産性を上げるための
一流のエンジニアの思考法をあの借りる
ことができたからだこれは本当に一般の
ビジネスパーソンにもすごく役に立つ
ポイントがすごく多くてですね私も今日
ちょっとお話を聞くのすごく楽しみにして
いまし
たこな僕のキーワードは3つ選んだはこれ
ですはいはいはいあなんかめちゃくちゃ
面白そうそうじゃ私もどれどんな感じな
ですかメンタルモデルなるほど
[音楽]
えっと理解するには時間がかかるって
やっぱその全体的なものを先に作っておく
ことに時間をかけろっていうきっと意味
ですよねうんそうですねその僕も理解に
時間がかかるっていう概念をそのがかった
のはやっぱりアメリカに来てからなんです
よねほう理解に時間がかかるっていうこと
を知ったはい知ったっていう僕正直言って
ね頭良くないんでなんか賢い人とか見て
あんな難しいことよくあんなすぐに理解
できんなて羨ましいなと思ってたんですよ
はいある時そのま新人さんみたいな人い
てるわけですよ大学出たての僕らのシステ
ムってまクラウドのバックエンドでアジル
ファンクションズって言うんですけど皆
さんにはアイコン1個に見えてるかもしれ
んけどめっちゃ雑なんですよ中身その
めっちゃ雑なやつでうんもうもう大学卒業
したての子がガンガンにコード書いて設計
して自分うん仕作ったりとかするんですよ
ねうんすごいすげえなと思ってあの彼らに
聞いてみたんですトニーってやつとねクー
パーってやつなんですけど一緒に昼飯食っ
てる時にはいトニーさお前どうやってさ
あんな複雑なんとね理解してんのて言う
たらあのトニーがそううっすねてあれ難し
いっすよねてって言っててで僕らその
なんかサービスがマイクロサービスって
小さいサービスの塊でできていてそれぞれ
結構でっかいんですようんうんうんでそれ
それぞれに複雑なんでそれのまアーキテク
チャーってって仕組みみたいなのを解説し
てるビデオ1個1時間半ぐらいのその長い
ビデオなんですけどそれをまエンジニアが
説明してるんですげえわかんにくいしで
トニーが言ってたんはいやあれねもう1回
見ても全然分からへんから僕10回見て
ますわ言ってうん10回みたいなそだって
1時間のやつ10回ねじゃですかだ僕は
結構衝撃的やってうんうん僕はだから彼ら
が賢いからはい一発で理解できてんのかな
と思ってたんですけど私もそんなイメージ
賢い人にはありますよ賢い人そうですよね
でも彼ら俺の10倍以上時間をかけて理解
しようと頑張ってるんですよねうんうん
うんあ賢いやつでも時間かかんだみたいと
か俺時間かけてなかったなそもそもみたい
な離理外しようと頑張らなかったみたい
うんうんはいでそういうのに気づいて僕も
真似するようにしたんですよ他の人時間
かかるかもしれへんけど理解できるように
自分の速度で理解できるように頑張って
やったうんそしたらいろんなものが
めっちゃ楽になっ楽になってめっちゃ早く
なっめっちゃ楽になっで他の人も観察し
たら全員そうなんですよ僕のチームとかま
本当にね僕は本当3流やけど他のやつは
ほんまにガチ一流みたいなやつばっかりな
んですよねその例えば会議とかしてても
あの僕やったら分かれへんなと思ってもま
自分の担当ちゃうしつって流してしまう
ところとかでもちょ待って俺
アンダスタンドできなかったみたいなこと
言って会議止めるんですようんでちょっと
でそれ説明をなんか聞いて彼なりに理解し
たらうんああなるほどねってじゃあっつっ
てものすごいアドバイスしてくれたりする
んですようんえめっちゃ分かったふりをし
てしまいそうですけどそう僕めっちゃ
分かったふりしてましたよしないですかだ
からそれが結構その生産性爆下がりみたい
なあ分かったふりすること分かったふりし
てるからなんか曖昧になったりとかなんか
仕事の質が落ちてたりとかちゃんと理解し
てたらはいそのなんて言うのかいろんな
ものが生産的になるというかやらなくて
住むことがすげえ増えるというかはいでも
これはだから人によって賢さは違うじゃ
ないですかだからやっぱり自分なりの時間
時間うんうんだから別に他の人が早いと
遅いとか気にする必要なだからそこはもう
時間気にせずに理解にはいあの投資をする
とリターンはすげえていうのは僕は思って
ますはいすはい今ちょっとお話聞いてて
あの思い出したんですけどその理解の定義
って書かれてましたですよねそのおさんが
定義する理解するとはうん人に説明可能
ですよね自分で理解したなと思っただけや
とはいなんかねいまいちシャロなケースが
あるんですよねうんうんうん話を聞くとか
でもほま全部やらなくていいすよ全部やっ
たらしんどいのでうんはいでここは絶対や
がっつり理解しようと思った時は話を聞き
ながら自分がどうやってそれを他の人に
説明するかみたいなを想像しながらずっと
聞いてとかま僕らで言うとま技術なりに
なんか新しいことを学んだ時に僕はブログ
を書いたりとかするようにしてますでそれ
は僕の師匠から教わったことなんですけど
うんうんうん説明うんようにするとあれっ
て俺ここ分かってなかったみたいなあれ
これどうなってんだっけみたいななるんす
よねうんうんそこでこう理解してないうん
うん曖昧やったらサブ埋めれたりとかする
んですよねだから僕はそういう2つの手を
大たいあのクライテリアにしてる感じです
それは理解のクライテリアってことですよ
ね
[音楽]
はいアメリカにいて結構びっっくりしたの
は納期ないっていうのが衝撃的でしたね
うん意味がわかんないですよねなんてね
どんなマネージャーも絶対言わないですね
あの残業して頑張ろうとかここに間に合わ
せようとかうんうんあできなかったね
じゃあ伸ばそうみたいなできなかったら困
るっていうことをまず前提としていない
みたいなイメージですよねそうはいそれで
も物事はちゃんと進むですよねでも
アメリカと日本とじゃソフトウェアの
エンジニアリングでどっちが進んでると
思いますその日本めっちゃ納頑張ってる
けどうんうんアメリカの方が圧勝してます
ああで向こう言ったらデッドラインとか
っていうのがあるんですけどまこれはあ
それぐらいにできたらいいかもねとか
そもそも言わないですねETAとかいう
言い方をよくしますねETAはいだからそ
ま大体この時にぐらいにできるかなと今は
思ってますぐそういうノりなんですよだ
からそ伸びでも別に経営人からなんか言わ
れたりとかしないしうんやたら時間をかけ
てしまってなんか何もできてないとか逆
じゃないですかね何が重要かっていうこと
やと思うんですよはい僕らでもそのビル
ドっていうイベントがあってこれは5月何
日に発表されますじゃ5月何日にこれ発表
しなあかんからそれまでに頑張らないと
いけないは要ありますよね物理的なもんや
からでもよくよく考えたら普段の仕事で
こういうケースって本当にうんどんだけ
あるんすかねって話オリンピックのアプリ
やったらねそうかもしれへんけどうんうん
うんうんうんうんそれ以外ってその実際に
できるのが1週間抜いてどれぐらい
ビジネスインパクトがあるんですかていう
と例えば農を頑張ることははいこれすげえ
その例えば残業とかしてうんうんうん
えっと徹夜とかして例えば救出してやる
わけじゃないですかはいでそれでどうやっ
て品質が上がるんですかねうん例えば僕ら
みたいなクラウドのサービス世界の人で
使ってもらうようなサービスを作ったに
はいその僕らが徹夜して頑張って
とりあえずリリースしましたって言ったら
何かが犠牲になるわけですよね大体それは
品質ですよねそうですよねうんねそしたら
バグりやすいですよね大体慌てて出した
もっていうのはろなことにはならないです
よねだから逆にスーパー効率悪いですよね
そんなんてうんうんむしろ僕がなんか日本
人やから早く作らなあかんけど申し訳ない
なとか言ってたらいやそんなことは金銭で
いいからしっかりしたのをちゃんと作って
出そううって言われるですうんえつまり
個人がなんかそのあのなんてですか本当に
最低最低限とか最終期日に最高の
クオリティのものを出すという意識で最終
記述すらもイメージがないですできた
ところは完成できないものはできないし
うんを認めないとダメなんじゃないですか
ねだって計画ってそれって未来を予測し
てんねんからま言うたら星占いみたいな
もんじゃないですかうんうんだこれを
そんなに重要しするもんじゃないと思い
ますじゃあ仮にそれでこう他者が先に
すごいものを出してきたらじゃあ次にまた
自分らがもっとすごいものを出せばいい
みたいな感じっていうそ仕方がないはい
仕方がないだって今のAIとかで考えても
AIでもし僕がすごいなんかこうやばい
そうねがある状でリリースしたらもう大
批判じゃないですかそんなたえ他の企業
買ったとしてもはい結構実際ありますよね
そういうパターンねあのうん録がくことが
ないですだからま僕のチームでも
マネージャーが僕はせかすこそは一切ない
しうんでだチーム自体のなんかリリースの
予定が伸びても別にみんなそんなに
クリティカルな顔なか全然しないですはい
[音楽]
はいコドは読み物っていうあの読者という
か視聴者が見たら
感だはいあのこれはさんの本に書いてあっ
て私がかなりあのま刺さった部分だったん
ですけれどもうんプログラムをこう書く
わけですよはいでえっと実際にでそれをし
たらまレビューをしてくれるんですね
みんながデビューのコメントがすごい
たくさんついてうんうんまなんか重ん
なかったわけですよコメントがつくっての
は重んないっていうことですか面白くない
ですねだってそのコメントを対応しないと
いけないしうんその俺の書き方えあそっち
1回せっかく俺が書いたこれ完璧に動い
てるやんみたいな品質も完璧うんうんうん
うんうんうんじゃあなんでなんでこういう
風に直せっていうわけて思うじゃないです
か最初思ってた僕はま僕メンタリングとか
よくやってもらってるんですけどまそう
いう風なメンタリングのコーチとかにも
相談したりとか自分で本も読んでみたりし
てであ結構ああって分かったことがコード
ははいその書くもんじゃなくてはいそのま
実際はする人もそうやしはいその実際に
メンテナンスをする時もそうなんですけど
読む方がよっぽど時間が長いんだと書く
よりも書よりもうんうん分かりにくいと
いうことが一番問題でてその他の人に理解
可能かとか分かりやすいかとかそれが1番
大切最初に重要なんですよね一緒に働い
てるそのすごいできるやつのクリスって
いうやつがあのねってそれはうん君の
コードが分からなかったんだて言われて
うんうん僕より全員できるやつですよだ
から僕の書いたコードがなんで難しいん
やろうと思って俺ですらこれでかけるのに
うんうんその書いてあるコドが彼らにとっ
て難しいうんうんていう発想がそもそも
なかったんですよはいはいでも彼らも時間
かけたら分かるかもしれないですけどうん
うんそのなんかさっと分からへんとなんか
分かりにくいじゃないですかま文章もそう
ですよそうなんですよどうしてこうなって
いるのかなぜここにこのコードなのか
みたいな違和感なんですよねきっとその
レビューを書いてくる方々がはいわり
にくいみたいなだから後で例えばこれをま
例えば3年うんにこのコードを変えようと
思った時に呼んでわがわからへんかっ
たうんなんでこうなってるんだとそうそう
そうなりますよねでその人がもうやめて
たらその何もわかんないですよねなんで
こうしたんだろうみたいなうんはいだから
僕の方はたくさんレビューを食らってたん
ですよはいそれからそのコードは読み物や
と思ってそのここのとこって分かりにくい
んちゃうかなとかじゃあこうやったら
分かりやすいかなみたいな感じで書ように
するとまレビューキュって少なくなって
うんうんうんこれやみたいうんはい意外と
こう重要な情報をちゃんとモーラしていて
もその流れで見た時にすっと頭に入って
くるかどうかっ
意外そうなんですよこの違和感がないと
いうかところでとかとこがとか書いてあっ
て全然とろがじゃない話になってるとか
わかりそういうですそういうりです思った
よりその読みやすさみたいなんていうのは
すごく重要で生産性にもかわってうんうん
はいそう
[音楽]
そうま僕もいろんなこと本で書いてますよ
ね生産性のティップスであるとかアメリカ
と日本の違いとかまMicrosoftで
どういう開発しとるとかねマネージャーが
どういうマネージメントしとるとかま色々
書いてるんですけどうん僕自分で思ってる
のは僕は3流だからと思うんですずっと
おっしゃってますよねはいほんまなんです
よでもだからだって僕コンサルとかPM
だったんですよでそういう人がまそもそも
才能もないし日本でも通用しなかったんで
そういう人がいきなりプログラマーなんて
いきなりすごいとうん思まいう話ですよね
うんうんうんでも世界の人ってその
ほとんどの人ってそのまあ一流とか超一流
じゃないじゃないですかうんうん僕もそう
ですけどま僕昔なんかコンサルタントで
教育とかしてる時に思ったんですけど僕
結構そん時に成績多かったんですうんうん
も頭いい人って結構教えんの下手くそやっ
たりとかうんうんだ彼はなんか何が分かれ
分からへんのか分からうんうんうん大体さ
すごいやつが本書くわけじゃないですかで
も三流のやつが本書いたらちょっと違い
ますよねみたいなああなんかそのなんて
言うんですか再現性っていうかま自分も
できるかもしれないみたいな3流がどう
やって工夫したかだって1流の人やったら
僕が書いてあるティップスとんかやらなく
ていいと思うんですとか元からもう子供の
頃から身についてますとかもあると思い
ますよ理解が時間かかるとか例えばうん
うんうんうんうんうん苦しんでる人がどう
やってそのなんちゅうのこの一流の人と
バトルするのかうんうんうんうんうんうん
ははいはいで僕は今ファイアーされてない
わけじゃないですかレイオフもあったん
ですよあって他の人ファイアーされたけど
僕は生き残ったんですよどう考えても僕は
1番コーディング遅いのにうんうんで割と
その一流のま思考法ってのは結構
インストールできるっていうかあのそう
すればやっぱりかなり武器になるっていう
ことなんですそうはいストラテジーを1個
だけシェアをするとするとはいまなみの
ループみたいのがあるんですよはい毎週
毎週でもいいし1ヶ月に1回でもいい
けど
[音楽]
H
5.0 / 5 (0 votes)