「Googleを支える技術」が東京の方では山積みにしている本屋が多かったので、購入してみました。技術的な面について興味深いのはあたりまえですが、文化的な面も非常に興味深いです。これまでも、断片的には聞いていたのですが、本で文章として整理された形で説明があると、いろいろと考えるのに参考となります。
関連する目次を示すと、次の通りです。
第6章 自主性が重視されたソフトウェア開発
・選ばれたプロジェクトだけが生き残る
・少人数からなるプロジェクトチーム
・コードレビューにより品質を高める
・早い段階から性能について考えられる
・新しいWebサービスが始まるまで
・情報は徹底して共有する
オープンソース方式をうまく取り入れている感じがします。前提としては、オープンソースを開発できる人材がいること、人数がある程度いること、が要求されるので、中小企業では実践は難しいのですが、参考になる点は非常に多いです。リスクを減らすために、社内評価をするというのはよくある話ですが、ドキュメントだけではなく、実際に動くものを提供させて、コード・サービス内容まで含めて評価をして淘汰していく、といったあたりが、Googleらしいということになります。普通の企業では、ここまで開発者に作業を進めさせません。研究所であれば別なのですが、Googleではみんな研究員的な立場で仕事ができるということになります。一般的には研究員はコストが高いので、入社したはいいけど遊んでいただけ、というわけにもいかないので、オープンソース開発をしつつ研究ができる人材しか雇わない、ということになるのでしょう。ソフトウェア開発は、コンピュータがあれば何とかなる世界なので、生命科学とか物理といった分野の研究よりも研究環境自体の用意はしやすい状況です。あまりにも計算量が多い処理はパソコンでは難しいですが、ちょっとしたアイデアのプログラム化は個人でもできてしまうからです。
そういったことを考えていくと、設備的にはソフトウェア分野は、他の分野に比べて有利なので、後は時間をどのように確保するのか、というのが問題となってきます。Googleでは、80%は仕事、20%はクリエイティブな活動に割り当てることになっているようなので、20%の方でオープンソース開発をしていると考えればいいのでしょう。その活動に対しても評価をきちんとしているらしいので、その仕組みが良ければ、開発者のモチベーションは高く維持できるはずです。このことからわかるのは、一般企業での一日の仕事はGoogleでは80%の時間内で終了させる必要があり、日本の普通の開発者が時間外でやっている作業は20%の時間でやることができるような人材でないと、もたなさそうだ、ということです。オープンソースを開発できる研究員というだけではなく、この条件もクリアしないといけない、というあたりからも、Googleが要求する人物像はレベルが非常に高いということがわかります。これが実践できる人材なら、どこの企業でも欲しがるだろう、ということは容易に想像がつくので、こういう人になれることを目標としてみてもいいのかもしれません。