エンジニアのチーム開発「TeamGeek」を読んで

この本を読もうとしたきっかけは、下記のエントリーをはてなブックマークで見かけたからです。

私は、完全に個人+独学で現在アプリを作成しています。 何とかゲームを形にできるようにはなりましたが、もっと効率よく、もっと色々なことをやっていきたいと思っています。 ちょうど1年前くらいなのですが、技術力が独学のままではなかなか上達しないのではないかという疑問がありました。 これは、今もあります。 もっと身近に話を伺える人が入ればもっと開発スピードがあがるだろし、技術力もつくのではないか。

ですので、今回の本に関してはとても興味深く読み進めることができました。 チームでの開発にはとても興味はあるのですが、実際にやったことがないのでとても怖いと感じています。 まずは、方法がよくわからない。この辺りは実際にチームで動いている人に話を聞くのが一番いい方法なのかなと思います。 個人的にすごく停滞をしているなと感じている日々ですので、ブログもそうなのですが色々とアクションを起こしていきたいと思います。

ブログには個人的に印象に残ったことを書いていきたいと思います。

TeamGeekを読んで

プログラマとして成功するには、最新の言語を覚えたり高速なコードを書いたりするだけではいけない。プログラマは常にチームで仕事をする。技術面だけではなく、人間的要因を学ぶことで、より大きな効果が得られるだろう。

天才プログラマの神話

ソフトウェア開発はチームスポーツであるということだ。成功を収めるには自分が「謙虚・尊敬・信頼」の原則に基づいて行動できているかを認識しなければいけない。

プログラマの不安

完成をしていないものを見られたら、何か言われるのではないか?馬鹿だと思われないだろうか? 他のプログラマが先に手を出すかもしれないと不安に思っているからだ。誰にも話さずに秘密にしておけば、アイデアは自分だけのものになる

いつも1人でやっていると、失敗のリスクが高くなる。そして、成長の可能性も低くなる。 素晴らしいアイデアを隠しておいて、それが完成するまで誰も話さないというのは、リスクの大きな賭けだ。早い段階で設計ミスをしやすくなるし、車輪の再開発をする可能性もある。 誰かと仕事をすることで、みんなの知識が集まっていく。しょーもないことに1人で躓いたら、どれだけの時間が無駄になるか。 1人で仕事をするほうがリスクが高い。誰かと一緒に仕事をすると、アイデアを盗まれたり馬鹿にされたりしないかと不安になるかもしれないが、間違ったことをして時間を無駄にすることを不安に思うべきだ。

チームがすべて

ソフトウェア開発はチームスポーツである 一般に広く利用されているソフトウェアのなかで、本当の意味で1人の人間が作ったものはいくつあるだろうか?成功の秘密は高機能はチームにある。どんなやり方であってもこの技能を身につけるべきだ

謙虚・尊敬・信頼

謙虚:世界の中心は君ではない。君は全知全能ではないし、絶対に正しい訳でもない。常に自分を改善していこう 尊敬:一緒に働く人のことを心から思いやろう。相手を1人の人間として扱い、その能力や功績を高く評価しよう 信頼:自分以外は有能であり、正しいことをすると信じよう。そうすれば、仕事を任すことができる。

実践

エゴを失くす

優れたリーダー

エンジニアは様々理由からリーダーになりたがらない。ただ、リーダーのいないチームは機能しない マネージャーになるべき理由は、自分自身をスケールできるからだ。コードを書くのが得意だとしても、1人でかけるコードの量には限界がある。

有害な人

他人の時間を尊重しない エゴ:人・異なる視点の意見に耳を傾けられない人・妥協ができない人 権利を与えすぎる。訪問者が何かを要求してきたら、アラームを作動させたほうがいい。 パラノイア:被害妄想をする人。チームと意見が合わない場合、「陰謀論」を唱え始める 完璧主義:プロジェクトに停滞をもらたらす。 人を「善人」「悪人」と分けるのは単純すぎる。意図的に文化を破壊しようとする人はいない。多くは誤解や見当違いが原因だ。また社交的ではないのかもしれない。