1章ソフトウェアエンジニアリングチームを効果的にする条件
チームによっては、まるで機械のように成功を量産しているチームがあります。このようなチームは、コミュニケーションが円滑に行われ、微笑みを浮かべながら期限を守り、課題に率先して取り組んでいます。逆に、マイルストーンを達成するのにも苦労しているチームもあります。コミュニケーションは雑然としており、期限を守るのも一苦労です。成功しているチームを効果的にしている条件とは何なのでしょうか。それは、明確な計画、本音での話し合い、健全な信頼関係、そして自分たちのしていることを全員が信じていることなどが挙げられます。仕事について、一定のリズムとステップを身につけているチームもあれば、まだ手探り状態のチームもあります。しかし、幸いなことに、誰でもそのステップを学ぶことができるのです。どんなに躓きやすいメンバーでも、少し練習すれば仕事のリズムをつかむことができます。
この仕事のリズムは、ソフトウェアエンジニアリングチームにおいては、どのようなものでしょうか。それは、コードを書き、コードをテストし、世の中にリリースすることによって、便利なプロダクトや機能を作り出す能力という形で具現化します。このようなリズムを日常的に奏でているチームは、効果的であると言えるでしょう。つまり、優れたソフトウェアを作るには、まず効果的なエンジニアリングチームを作らなければならないのです。
Googleなどのハイテク企業で25年以上エンジニアリングチームをリードしてきた経験の中で、チーム力学によってプロジェクトの成否が大きく左右されることを目の当たりにしてきました。効果的なチームを作るということは、単に適切な技術スキルを持つ人を集めるということではありません。コラボレーションし、信頼し合い、目的意識を共有する文化を育てるということなのです。本章では、エンジニアリングチームを成功に導くために鍵となるものを、調査結果と筆者自身の現場経験の両方から紹介します。 ...