エンジニアの知的生産術
なぜ、この本を読もうと思ったのか
著者を個人的に昔から一方的に知っていて、尊敬しているソフトウェアエンジニアであった
知的生産について、日々仕事でプロダクトコードを構築、見積もり、結果の集計をしていくなかで課題感が湧いてきた
具体的には
ゴール設定について適当なことになっているのではないだろうか
プロダクト開発に関わるメンバーの間でのドメイン知識共有にフォーカスして日々過ごしているものの、大切な知識の共有、具体的なイメージ像に関して関連する人それぞれがどれぐらいの共通性を持って脳内に認識を持っているのか
日々、達成したい目標が市場にあり、そのためにプロダクトの生産に勤しんでいるが、創造的な仕事、アウトプットをしていない焦りを日々感じていた。
インプットは多めであるが、アウトプットは少なめ、しているとしてもプロダクト開発に関わることぐらい
この本をどう読んで、読み終えたのか?
最初から読み始め、最後まで読むというスタイルを続けた
途中、章を飛ばしても良いなど読書法についての紹介があったが、それでも読み飛ばした。
そして今、読んだことを思い出しながらページを軽くめくり、索引を見ている
結構読んだこと忘れてるかもしれない
indexはできているが。
ざっくり印象に残っているところを書き足してみよう
新しいことを学ぶには
学びのサイクル
情報収集、抽象化、検証のサイクル
こちらのサイクルについて、腹落ちしながら見ていた。
情報収集のサイクルについて長い期間がかかるかもしれないという考えは私は強い
ポーカーの話を思い出したが、ポーカーの場合情報収集については
ネットで詳しい用語集、ハンドについての説明をしているサイトを調べる
実際にアミューズメント施設でポーカーゲームを勤しむ
この2点を実行できれば良いのだろうか?
抽象化に関して脳内実験に近いのかなという受け取り方をした。
しかし、これはあくまでプロダクトコードに関してのことで、日々の生活やポーカーのこととかとなるとまた事なるのだろう
実践・検証
こちらについて実践や検証について、ノートに検証結果を書き留めるのがシステム化されていないと難しい。
コードであれば、commitを行えば証跡が残る
しかし、変更内容だけのことを書くのではなく、何をもってどのような理由で変えたのか、を表現できないと難しい
以上の認識はここ2-3年でできるようになってきた形だ
ポーカーだと
実際に友だちや施設で遊んで検証するしかない
その都度思考し、ノートにまとめるとかできればよい
オンラインゲームであれば、ログに残るので追いやすいのだが。
やる気の維持
やる気の維持は、孤独な戦いになると続きそうにないので、ゴールを短めにセットして、早めに成果としてハネるようにするべきと書かれているが、同感である
知りたいところから大雑把な認識で情報を得て、納得するように進めていく
知りたいところから調べ、必要になったら他を調べる
大きいWeb frameworkでは、メタプログラミングの効果もあって、動的(runtime)にメソッドが生成、実行されることがある。
その場合、メソッドをgrepしてもソースコードの検索には利用することはできない
となると、鍵となるのはソースコードに書かれているコメント、利用しているClass、似ているメソッド名での検索となる
その場合はざっくりと似たような検索結果から、ヒットした項目を元に概要を得るようにしている
抽象化について自分の言葉で説明できるか
そう、便利ライブラリ名しか知らないとか。
そんな時何がどう作用してどのようになっているのか、を認識した上でなければ概念を道具として用いても役に立たない。
やる気を出すには
GTDの手法が取り上げられている。
GTDについては知らないため、こちらについてはきちんと情報を得てから感想を書くほうが良いのだろうか。
部屋が散らかっていたら部屋の一角を掃除しろ、ということが取り上げられている
なんとなく分かるが、まだ腹落ちした感覚ではないかも
タスクの分解論に関して最近はできるようになってきたかもしれない
知的生産性向上システムDIPSの緊急性分解理論は行動指針として参考になるかも
質を下げられないか?
量を減らせられないか?
納期を伸ばせないか?
方法を変えられないか?
別のもので代替できないか?
お金で解決できないか?
どうしようもないならやめるべき
タスクの見積もりについて
こちらについて普段思っているもやもやの中身が出てきた印象を受けた
モヤモヤとは
プロダクト開発でのフィーチャーに対するイシュー、こなさなければならないチケット・タスクの見積もりについて。
Estimateというざっくりした単位で決めていくが、A, Bを比較した時の難しさの指標が難しい
front-end 7: server-side 3となると一見良さそうだけど、server-side側でも文字列をいじる実装と、金額計算、座標計算など難易度はことなるわけで、一概に難しい/簡単の基準を少ない解像度かつ数値のみで表現することは難しい
A, B, Cに関して、優先順位の付け方を1つのパラメータのみ注目していれば組み合わせ数は少ない。
だけど、2つのパラメータ... 3つ... n...となると組み合わせ数が膨大になる
しかし、A, B, Cのタスクについては
価値とリスクのマトリックス
四象限の図が出てくる
アジャイルプログラミングに関係することである。
図なので絵で書かないとまずそうか
https://gyazo.com/0b38e679214617ee3dbbd7cb04beaa69
1, 2, 3 の優先順位で実装する。
金銭価値とリスクで比較する
金銭価値とリスクが高いものを優先して実装をすること
こちらがやはり、手をつけないとまずいことか。
4については実装しないこと
7つの習慣
コラム内の記載であるが、気になったので転記しておこう
私的成功を支えるもの
主体性を発揮する
目的を持って始める
重要事項を優先する
公的成功を支えるもの
Win-Winを考える
理解してから理解される
相乗効果を期待する
やる気を出す
ポモドーロテクニックが出てくる。
これは効果的なのかな、と以前から思っていたが、別に25分でなくても良いらしい
のであれば実行時間を考えずにとりあえず時間を確保してみる、で動くと良さそうだな。
記憶を鍛えるには
脳の記憶の仕組みの解説
ざっくりとした解説であるが、脳の記憶について現在検証済みであり判明していることが書かれている
ここについて気にしたことはあまりなかった
なんとなくニューロンが、とか化学物質が、とか海馬が、などは認識している
が、ものを覚えるときに脳の仕組みが...という視点はなかった
シナプスの記憶増強
繰り返すことでパターンが構成され、覚えやすくなるということ
これはだいぶ昔、小さいときに聞いた話であった。学んだかも。
アウトプットが脳を鍛える
アウトプット、本の中ではインプットした内容に関して、日にちを開けてテストすることで成績が上がった検証結果が載っていた
アウトプット大事であり、かつ思い出しながらテストを受けると良いらしい
学習方法の見直しを図らないといけないな。
忘れてから学習する
以外である。慌てて詰め込むより、忘れてから学習するほうが成績が良いらしい
そういう結果になるのか。
ライトナーシステム
学習方の1つらしいがあとで改めてググっておこう
Anki
どこかで聞いたことのあったような。
クイズ番組の出演者が利用していて有名になったようだ
問題は自分で作る必要がある
学習にはそれが最適なのだろう
触ったことがなく、本を読むだけで終えているが、触ったほうが良いのかもしれない
効率的に読むには
読むとは1次元の情報を認識すること
読む、たしかに左から右、縦書きなら上から下と読んでいくわけで、1次元情報を読み砕いていく。
その認識薄かったな
読む速度の限界、情報伝達の速度の限界
まず、情報伝達は口頭で話す速度以上の速度はでない
読める形、文章に起こすことで情報の伝えられる速度を増していくという考え
速読の理解度はあまり高くない
数年前に流行った速読ブームで、速く読めないと、という流れがあったものの、本に書かれているのは理解の仕方、方法論が中心になっていた
闇雲に読んでもしょうがないよな
本を読まないのも大事
書評、知り合いでもいいしネットでもよいし、まずそこを抑えて読む読まないを決めるというのは大事
意識的にそれは対応できていそうだけど、読書スピードの観点から考えたことはなかった。
Whole mind system
本の中では、元々5つのステップだったものを8つに分けている
準備
プレビュー
フォトリーディング
質問を作る
熟成させる
答えを探す
マインドマップを作る
高速リーディング
速く読むやり方と、内容を理解し、自分の中で考えを組み立てる
音読並みの速度で読む場合に有効とのこと
基礎から組み立てなければ理解が成り立たない数学で取り入れられている読書法
人に教えること
人に教えることももっとも効率の良い読書法となるそうだ
アウトプット、という面もあるが、言葉にして理解しているかの自己確認となるので良いのだろう
考えをまとめるには
書き出すことで情報量を確認する
KJ法、GTD
書き出すときには質を求めてはいけない
本では、5分と時間をきめて書き出しをしている
重複を気にしない
多すぎる情報の整理のしかた
本の中ではふせんを利用し、机をフィールドとして使った整理方法が出ている
注意すべきは、ふせんを並べているときに発見したらすぐに書き込むこと
関係のありそうなものを近くに移動させる
こちらは、KJ法の整理手法が取り上げられている
グループ化するときに改装分類は利用しないことが大切である
事前に分類することが大事
分類することのメリット
関係性について
関係性に関しての注意点
類似のみが関係ではない
中山正和さんが考案したNM法では対立関係に着目をしている
話題がつながる関係を出していく
関係性をまとめたふせんのグループについて表札を作っていく
この過程が大事であるらしい
そして、表札でまとめたものをふせんとして戻して、グループ化していく
表札でまとめる意味は、大量の情報を表札を利用してまとめることで圧縮し、人間に整理しやすい形にするためらしい
後半、社会人向けのチューニングとして
小さい時間単位で入力できること
途中で中断しても良い設計にする
小さい面積を活用できるよう、クリアファイルを利用するなど工夫を行う
ステップの省略についても話が出てきていた
繰り返しの大事さ
KJ法でもすでに手法として成されているが、繰り返すことが大事であること
これは反復して学習するということで大切なのだろう
脳の話についても出ていた
アイデアを思いつくには
フェーズが3つある
耕すフェーズ
芽生えるフェーズ
育てるフェーズ
アイデアの作り方
本では、3つの方法が取り上げられている
Youngのアイデアの作り方
資料集め
資料の加工
努力の放棄
アイデアの誕生
アイデアのチェック
川喜田二郎の発想法
W型問題解決モデル
ステップが9段階ある
問題提起
探検
観察
発想
仮説の選択
推論
実験計画
観察
検証
Otto Scharmerの変化のパターン
U曲線モデル
これは図に出さないと理解が難しいな...
西尾さんのscrapboxに図が書かれていた
アイデアが芽生えるための手法については、管理しようがないということである
しかたがないのだろうか
情報収集フェーズについて
言語化されていないものの言語化の手法
フレームワークの利用
活用することで言語化の助けになる
しかし、枠にはまってしまうため、活用がうまくいかない場合は注意が必要である
そうなってしまうよな
言語化フレームワークの利用は思いつき時にのみ、としたほうがよさそうだ
抽象概念と身体感覚
こちらについては、摩擦を例にあげられていた
摩擦がある、なしについて摩擦とはでは何か、なんなのかという問いに答えられなければ身体感覚として言語化されていない抽象概念である状態ということ
抽象概念に昇華することがとても大事
例え話、メタファ・アナロジー
例え話により抽象概念を身体感覚として、より理解された形の知識としてまとめる作業をいうようだ。
Clean languageとSymbolic Modelling
相手からメタファを引き出す手法
基本5質問
そのXはどんな種類のXか
そのXはほかにどのようなものがあるか
そのXはどこにあるか
そのXはどのあたりにあるか
そのXは何のようか
例え話のままでは他人に伝わらないので、整理をさらに行う必要がでてくる
言葉になっていないものについて
暗黙知について
暗黙知という言葉について正確に理解してなかったかもしれない
暗黙知について2つの意味があるそうだ
暗に知ること
暗に知っていること
違和感
何かおかしい、というのは気づきのサインだそうだ
言語化できないが、何かおかしい、という感覚が次のフェーズにつながるようだ
KJ法も違和感に注目している
KJ法すげえな
Thinking At the Edge
うまく言葉にできていないが、言葉にするための大切なステップとのこと
辞書と総合し、言葉にできていないものが何かをさらに深掘りしていく
こちらについては、今であればコトバンクを利用すれば解決しそうかなあ
磨き上げのフェーズ
MVP
Mininum Viable Product
ここででてくるとは思わなかった
リーンスタートアップの話が出てきた
ターゲットとする顧客の話、何を目的にしているか、に関して。
U曲線モデルの、右側の上るフェーズについて解説が続く。
MVPとPDCAサイクルの話に関して織り交ぜながら解説をしている
試作品をアイデアからお越し、実証するフェーズに移す話である
他人の視点
自分に見えていないものを見るためにも、他人の視点、客観的な視点が重要である旨の話が出ている
他人から積極的に学ぶこと
スキルセットは人によって異なる
スキルセットについて得意・不得意はあるが知る・知らないもある
もし、AとB、2名がいて、Bのスキルセットは広く薄いものであったとすると、Aの領域にかぶる知識は、Aには敵わないが、Bの薄く広く広がった知識について、Aの知らない知識が多いという話である
ので、どんな人間からも学ぶことができる、としている
顧客と自分のメタファを合わせる
例として取り上げられているのはファイルバックアップである
ファイルバックアップの概念をappleはTimeMachineと表現し、バックアップを取るという概念を顧客側に寄せることができた、としている
何を学ぶか決めるには
数学の正しさ
数学は、公理の正しさがあり、積み上げていくことを前提にした設計になっている
公理により公理を作るというような
科学の正しさ
科学の場合、公理の正しさ、とは異なり物質的な制限がかかる
実験に利用するために消費する物質など
そのため、計測を行い、結果から答えを推測するという形をとっている
スティーブ・ジョブズのはなし
スタンフォード大学で公演をした有名な内容
カリグラフィについての話である
知識から知識を産めるようになるために戦略をねる
自分の持っている知識について、他人と同じものを避けていく戦略
こちらは生きていくための戦略のようだ
稼ぐための、というか
I型人材だけではなく、T型やπ型人材など、知識の専攻に関して1つのみとはしないという概念か
知識貿易戦略
これは... front-endとserver-side側の知識どちらも持ち合わせていて(自分の例えがちょっとアレだけど)、双方どちらとも知識を持っている人間はいないので、そのポジションをとれ、という話である
以上でこの本の章は完了となる
何度か、発想法や情報の整理方法については何度もこの本を参照しながら、学習し、振り返りつつ進めるしかなさそう