O’REILLY Learning「Googleのソフトウェアエンジニアリング ―持続可能なプログラミングを支える技術、文化、プロセス」
第1部 主題
1章 ソフトウェアエンジニアリングとは何か
プログラミングがソフトウェアエンジニアリングの著しく重要な部分であることは言を俟たない。
第2部 文化
2章 チームでうまく仕事をするには
ソフトウェア開発とはチームによる取り組みであるということだ。
そして、エンジニアリングのチームで(あるいは他のどんな創造的共同作業でも)成功するためには、「謙虚、尊敬、信頼」という中心的原則をめぐる自身の行動を改革する必要がある。
Googleには、社員たちお気に入りのモットーとして「失敗は選択肢の1つである」というものがある。
ときどき失敗するようなことがなかったとすれば、十分に革新的ではないか、十分にリスクを取っていないかのどちらかであるということが、広く認められている。
3章 知識共有
単一障害点(single point of failure/SPOF
決定的な情報が1人の人物からのみ得られる場合に生じうるボトルネック。
何もかもが常に完璧かつ即座にドキュメント化される魔法の世界。
ドキュメント化された知識にはスケーリング上の利点があるが、的を絞った人間による支援にも利点がある。
学ぶには、まず自分が理解していないものがあることを認めなければならない。
そのような正直さを罰するのではなく、歓迎すべきである。
自分がチームの新人だろうがシニア(senior:上級)リーダーであろうが関係ない。
何か学ぶべきことのある環境に常に身を置くべきだ。さもなければ停滞してしまうだろう(新たな環境を見つけるべきである)。