【読書ログ】Team Geek
Googleのエンジニアがエンジニアリングの中で重要な要素でありながらも、忘れがちである「人間、チーム」について述べてある本。挿絵も多く、技術本みたいな堅苦しい感じもないので、エンジニア以外の人でも読みやすいだろうなと思った。
1章 天才プログラマの神話
世の中には天才と崇拝される人がいる。例えば、誰もが知るプロバスケットボール選手のMJ(マイケルジョーダン)、プログラマの世界なら、Apple共同創業者のヴォズニアックやMicroSoft創業者のビルゲイツなど。
世の中の人々は彼らの功績を見て、個人を崇拝する。しかし、その功績は一人のみの力で生まれたものではない。バスケットボールならチームがあってこその功績であり、AppleやMicrosoftで例えるなら、多くのエンジニアや人がいたからこそ、素晴らしいソフトウェアや製品が生まれた。
人間は本能でリーダーやロールモデルを設定し、崇拝し、模倣しようとする。何かを与えてくれるヒーローを必要とするのは、プログラミングの世界も同じだ。 p.6
世界を変えるプロダクトを作り人を幸せにしたい、新しいプログラミング言語を開発したい、一発当てて金や名誉、財産を築き上げたい・・・
人それぞれではあるが、エンジニアは何かしらの野望を持ち、それを実現したいと願う。しかし、事はそううまくいかない。
それを実現する何か天才的なスキルがあるのか。一人でそれが実現できるのか。答えは、ほぼNOである。最初に挙げた天才と呼ばれる人たちでも、一人で成功する確率は極めて低い。もし、実現したいのであれば、それはチームでどれだけ協力できるかにかかってくる。
一人で何かを成すのは、多くのリスクが存在する。必ず成功すると考えているアイディアがあるとして、それを専門家や協力者無しで、一人で検証できるのか。時間はいつまで掛かるのか。弘法にも筆の誤り、どんな天才であっても、ミスする事は考えられるし、つまらないミスで延々と同じ場所をループし、時間を浪費し、失敗に終わるかもしれない。
1人で何かを成すのは非常に困難であり、その困難を乗り越えられる存在であるのがチームである。ビジョンを共有して、仕事を分け、学びあう。そうすることで、大きな事を成すことができる。
では、チームで動くときのポイントは何か。チーム内で重要な3要素が存在する。それが以下の三つ。
謙虚(Humility)・尊敬(Respect)・信頼(Trust) p.15
あらゆる人間関係の衝突は、謙虚・尊敬・信頼の欠如によって起こる。
謙虚・尊敬・信頼をお互いに受け入れ、実践する事で、優れたチームへとなることができる。
実践例としては、エゴを無くす、失敗・学習・反復を繰り返す、忍耐を学ぶなど、どれも、謙虚・尊敬・信頼に基づいて行われているものである。
2章 素晴らしいチーム文化を作る
チームの中で文化は重要な立ち位置を占める。
ここでいう、文化はコーティング規約やコミュニケーションのみだけではなく、チームが共有する経験・価値・文化なども含んでいる。開発のみならず、イベントや人間関係にも及ぶ文化ということだ。
ここでは、どのような文化が正解であるとは、述べられていない(というか正解はない)が、文化が存在する事で優れたチームになる事は正しく、チームを崩壊させるリスクを減らすのにも繋がる。
文化としてのコミュニケーションはいくつか成功パターンがある。
コミュニケーションの原則は同期コミュニケーション(ミーティング、対面)の人数を減らし、非同期コミュニケーション(メール、チャット)の人数を増やすこと。多くの人がプロジェクトの情報を知ることができるのが大切。
その為には、効率的なミーティングが求められる。必要な人だけを呼ぶ、必要以上の時間を取らないなど、書かれている内容は色々あるが、そんな感じ。
コミュニケーションの話題に続いて、コミュニケーションとコードの関係性についても述べてある。コミュニケーション無しで良いコードは完成しない。
コードはマシンとのやり取りではなく、人と人とのコミュニケーションである。 p.59
以下編集中。
3章 船にはキャプテンが必要
4章 有害な人に対処する
5章 組織的操作の技法
6章 ユーザーも人間
この記事が気に入ったらサポートをしてみませんか?