『Team Geek ―Googleのギークたちはいかにしてチームを作るのか』まとめ

  • 22
    Like
  • 0
    Comment

『Team Geek ―Googleのギークたちはいかにしてチームを作るのか』まとめ

『Team Geek ―Googleのギークたちはいかにしてチームを作るのか』を読みました。ずっと読みたかったけれど、メタ的な話なので優先順位が低くなかなか買わずにいたのですが
会社の本棚に最近入ったので、嬉しくなって一気に読みました。Amazonのレビューも総じて高く、すべてのエンジニアにおすすめの書籍です。内容も大切なことが噛み砕いて書いてあるので、
一気に読めますし、何度読み返しても勉強になります。

複数のプログラマが関わる場合、優れたコードを書くだけではプロジェクトは成功しない。全員が最終目標に向かって協力することが重要であり、チームの協力はプロジェクト成功のカギとなる。本書は、Subversionをはじめ、たくさんのフリーソフトウェア開発に関わり、その後Googleでプログラマを経てリーダーを務めるようになった著者が、「エンジニアが他人とうまくやる」コツを紹介するものである。「チームを作る三本柱」や「チーム文化のつくり方」から「有害な人への対処法」までエンジニアの社会性について、楽しい逸話とともに解説する。

はじめに


エンジニアリングは簡単だ。人間は難しい。 - Bill Coughran

隠したらダメになる。


いつも一人でやっていると、失敗のリスクが高くなる。そして、成長の可能性が低くなる。

早い段階から成果を共有することで、つまづきを回避したりアイデアを検査したりできるようになるが、プロジェクトのバス係数を高めることもできるようになる。

プログラマには強いフィードバックループが必要だ。

エリック・レイモンドの「目玉の数さえ十分あれば、どんなバグでも深刻ではない」という言葉があるが、
「目玉の数さえ十分なれば、どんなプロジェクトも適切で順調だ」と言い換えたほうがいいだろう。

一人で仕事をするほうがリスクが高いということだ。誰かと一緒に仕事をすると、アイデアを盗まれたりバカにされたりしないかと不安になるかもしれないが、
間違ったことをして時間をムダにすることを不安に思うべきだ。

HRTの三本柱


謙虚:
    世界の中心は君ではない。君は全知全能ではないし、絶対に正しいわけでもない。常に自分を改善していこう。

尊敬:
    一緒に働く人のことを心から思いやろう。相手を一人の人間として扱い、その能力や功績を高く評価しよう。

信頼:
    自分以外の人は全能であり、正しいことをすると信じよう。そうすれば、仕事を任せることができる。

まずは、君がHRTを受け入れて、内面化することから始まる。つまり、コミュニケーションの中心にHRTを置くということだ。

Postmortem


過ちから学ぶには、失敗を文書化することである。我々の業界では「ポストモーテム」を書くという。
これは、謝罪や言い訳を羅列するものではないので注意したい。
適切なポストモーテムには、学習した結果として何を学んだかと何を変更するかを記述する。
書き終わったら見つけやすい場所において、変更を継続できるようにする。

優れたポストモーテムには以下のことが含まれる。
・概要
・イベントのタイムライン(調査開始から解決に至るまで)
・イベントの根本原因
・影響と損害の評価
・すぐに問題を解決するための行動一式
・再発を防止するための行動一式
・学習した教訓

学習のための時間を残す


その場で最も知識のある人になるのは楽しいし、誰かを指導するというのはやりがいがある。
問題となるのは、チームの中で局所最適化してしまうと、学ぶのをやめてしまうことだ。
学習をやめると退屈になる。
知らないうちに時代遅れになってしまう。
一流プレーヤーを目指すことは簡単だが、方向性を変えて新しいことに挑戦するには、エゴを捨てなければならない。
謙虚になって、誰かに教えるのと同じくらい自分でも学ぶようにする。
コンフォートゾーンの外側に自分の身を置くのである。
自分よりも大きな魚のいる金魚鉢を見つけ、彼らの助けを借りてなんでも挑戦していくのである。

ミッションステートメント(いや、まじで)


Google Web Toolkitのミッションステートメント:
    GWTのミッションは、開発者が既存のJavaツールを使ってAJAXを構築できるようにすることで、
    ユーザーのウェブ体験を劇的に改善することである。

ミッションステートメントを書くことで、
認識の違いを明らかにし、プロダクトの方向性を決めることができる。

ダメなミーティングは拷問


ミーティングを開くときの5つの簡単なルールがある。

1. 絶対に必要な人だけを呼ぶ
2. アジェンダを作ってミーティング開始前に配布する
3. ミーティングのゴールを達成したら時間前でも終了する
4. ミーティングを順調に進める
5. ミーティングの開始時間を強制的に中断される時間の前に設定する

許可を求めるより寛容を求めるほうが簡単


まずは組織で許されていることを把握しよう。
許可を求めると責任を押し付けることができるが、逆に「ダメ」と言われる可能性もある。
上司の許可を得なくてもできる範囲を知ることが重要だ。
ただし、可能な限り会社にとってただいいことを使用。

道がないなら道をつくる


アイデアはクレジットを考えなければうまくいく!
どういうことかというと、たまに自分の功績にならないアイデアは広めたくないという人がいる。
その時は、君の功績になることが重要なのか、それともアイデアが広まることが重要な事なのかを考える必要がある。
自分のアイデアが自分以外の人の口から出てくるのを耳にするのは苦痛かもしれない。
でも、それがアイデアを広める唯一の方法だったりする。

「攻撃的」な仕事と「防御的」な仕事


...このような経験から、Benは仕事を「攻撃的」と「防御的」に分けることにした。

攻撃的な仕事は、ユーザに見えるものである。
見た目の輝かしい物であったり、興奮してもらえるものであったり、
プロダクトのセクシーさを伝えるものであったりする(UIの改善・スピード・相互運用性など)。

防御的な仕事は、プロダクトを長期的に健全にするためのものである
(リファクタリング・機能の書き換え・スキーマの変更・データマイグレーション・モニタリングの改善など)。

ぼくたちは、技術的夫妻がどれだけあっても、防御的な仕事に
時間や労力の1/3 ~ 1/2をかけないというルールを作っている。

正しいことをして、解雇されるのを待とう。

元ネタ:http://www.mengstupiditis.com/2011/06/do-right-thing-wait-to-get-fired.html


New Google employees (we call "Nooglers") often ask me what makes me effective at what I do.  I tell them only half-jokingly that it's very simple: I do the Right Thing for Google and the world, and then I sit back and wait to get fired.  If I don't get fired, I've done the Right Thing for everyone.  If I do get fired, this is the wrong employer to work for in the first place.  So, either way, I win.  That is my career strategy.

I discovered where I got this rebel streak from only very recently.  I realized I inherited it from my dad, which was very strange to me because when I was growing up, I perceived my dad as an establishment figure, part of the very establishment I was rebelling against, so it was a severe cognitive dissonance for me to think of my dad as a rebel.  But rebel he was.

My dad started his career as a child laborer (yes, one of those millions of faceless children in developing countries you read about occasionally on National Geographic), but by mid-career, he rose up the ranks to become one of the most senior military officers in all of Singapore.  I recently learned that one reason he was so successful was because he was unafraid to speak the unpleasant truth to his superiors to their faces, including Defense Ministers and Prime Ministers.  Near the end of his military career, one of his superiors asked him what made him so effective.  My father replied, "It's very simple.  Everyday on my drive home, I would pass by HDB flats (public housing in Singapore) and I would always take an extra look at them.  Why?  Because after you fire me, that is where I'd live."

Some day, when you reach my old age, spend some time talking to your father about his career, you may be pleasantly horrified to discover how much you are like your father.


小さく約束して、大きく届ける


Googleはその点がうまい。
プロダクトの機能を事前に予告しないというよく考えられたポリシーを持っている。
そのおかげで、新しい機能を公開した時に嬉しい驚きがある。
非現実的な期日に間に合わせるためにデスマーチをすることもない。
ソフトウェアは、実際に準備されて利用できるようになってから、リリースされるのである。