『世界一流エンジニアの思考法』を読んで
いま話題の書籍『世界一流エンジニアの思考法』を読んでみました。私の参考にしたいと思ったところを章ごとに、手短にメモしておきます。
世界一流エンジニアは何が違うのだろう?
試行錯誤は悪である
小さいミスやバグでコードが動かないということはよくある。その場合、何も考えず、とりあえずログを見ながらコード修正をして、直していく試行錯誤(トライアンドエラー)のようなアプローチを取りがちです。よく考えて修正するというより、手当り次第、修正して動けばラッキーというようなかたち。
[エラー]→[ログ]→[修正]→繰り返し …
一流は、そうではないということです。
エラーに対して、ログ(事実)から原因を考えて仮説を立てる、というステップが重要なんですね。
まず1つの事実(ログ)をもとに、仮説を立て(考えて)、仮説を検証する行動を取る。自分でまずは、多分こういうことが起こっているという推測を立て、それを証明する検証を行う。
[エラー]→[ログ(事実)]→[仮説を立てる]→[仮説の検証]→[修正]
デザインドキュメント
コード(実装)の前にドキュメントで整理するということは取り入れたいと思った。新人研修で、コードの前にドキュメントをまとめてからというステップを組み込み、実装内容を整理するということはやったことがあり。研修限らず、実務でも有用かぁ。
ドキュメントを書くことで頭が整理され、ヌケモレを防ぐことにつながるのは素晴らしいです。
コード(実装)の前にドキュメントでレビューをもらいたいです。
アメリカで見つけたマインドセット
Fail Fast(早く失敗する)
考えてるだけで、やらないのは論外かぁ。。
結果はどうあれ、まずはやってみて、フィードバックを得て、早く間違いを修正していく。
脳に余裕を生む情報整理・記憶術
「アウトカム」至上主義が上達を阻害する
成果を急ぎすぎず、細かい基礎の積み重ねの方が重要であり、そのほうが、長い目で見た時の生産性は上がる、ということ。とはいえ、アウトプットを何らか求められる現場にいる場合は難しそう。基礎の積み重ねが出来る環境に変えていく必要もありそう。仕事で難しければ、仕事以外の時間を使って基礎を積み重ねていくことも必要。
短期的には、目の前の仕事で最低限のアウトプットをしつつも、長期的には、基礎を積み重ねていくことも大事という考え方。
うまくいっていないものは「わかっていない」。基礎的なことがうまくできない段階で、下手に試行錯誤するのはダメ。愚直に王道を進み、基礎を理解すべき。
コミュニケーションの極意
意見が対立しても「否定しない」
伝え方・・・・大事・・・・
相手を否定しない
相手のアイデアを否定しない
自分の考えとして意見を言う
その他、いっぱいあり!
テストステロン。。筋トレやらなきゃ。