勘と経験と読経

略すとKKD。ソフトウェア開発やITプロジェクトマネジメントに関するあれこれ。

テストから見えてくるグーグルのソフトウェア開発

読書メモ。「テストから見えてくるグーグルのソフトウェア開発」を読んだ(Jolt Awards 2012にも選ばれた本ということで遅ればせながら)。タイトルの通り、テストそのものというより、テストの視点からグーグルのソフトウェア開発全体が語られており興味深い。テスト技法そのものよりストーリーをプロマネとして楽しんだ感じ。

インターネットは、ほとんどのソフトウェアの設計、開発、流通のあり方を劇的に変えた。以前人気を集めたテスト本でテストのベストプラクティスとされていたことの多くは、今日の環境では、せいぜい非効率でおそらく効果がない。悪ければ、逆効果だ。私たちの産業ではものごとがあまりにも速いペースで動いているので、つい数年前に書かれたテスト本でも、身体から悪の精神を取り除くために蛭を使ったり頭蓋骨に穴を開けたりしろと言っている外科の教科書のようなものだ。騙されやすい人々の手に落ちないように、リサイクルするのがもっとも賢明だろう。
テストから見えてくる グーグルのソフトウェア開発 まえがき、より

ちなみに副題の「テストファーストによるエンジニアリング生産性向上」はタイトルに偽りあり、のような気がするんだけど、違うだろうか。

google流、テストの再発明

googleはなんでも自前で組むというのは有名な話のような気がするけれども、テストや品質保証についても同じように取り組んだのかな、と思っている。単体テスト結合テストシステムテストといった基本的な考え方すら行わず独自のテストの呼び名と定義を行ったり(S、M、Lテスト)役割分担ですら独特である。

意外な事は、そのgoogleでも最初は品質について大きな課題をもっていたという点だ(もちろんgoogleスケールの話なので、私が普段身近に見るような問題と同種のものではないのだけれど)。

  • 最初は「テストチーム」がデベロッパーチームと別にあり、そこで品質を担保してた
  • 手作業中心
  • 複雑さとスケールに対応できなくなる
  • 優秀なテスターが燃え尽きる

本書が面白いのは、そこからどのようにして品質を確保していったかというストーリーや思考の過程だと思う。最終的に出来上がったプロセスやテクニック、方法論はたしかにgoogle風のエレガントなものだけれども、それだけではなく涙ぐましい努力もあって面白い。トイレにテストに関する張り紙をしたり、一定水準のテストを実施するとレベルに応じてバッジが貰えたり(しかもレベル1は誰でも取れるように非常に簡単な条件になっている)。

私たちは、グーグルのデベロッパー文化を変えたかったんです。デベロッパーが責任を負っているすべての機能の一部としてテストが組み込まれるように。興味を持っても、どうやって始めたらよいかわからないチームもありましたし、チームの目標と成果(OKR)として「テストの改善」を掲げるチームもありました。でも、かならずしもそれだけでは行動につながらないんです。新年の決意で「痩せるぞ」と言うようなもので、すばらしい立派な目標ですが、言うことがそれだけなら、うまくいかなくても不思議ではないですね。
テストサーティファイドは、小さくて明確で行動につながるステップを用意しました。
テストから見えてくる グーグルのソフトウェア開発 2.2.1 テストサーティファイドプログラム創設者へのインタビュー、より

インタビューもいろいろ掲載されていて、いろいろ泥臭いところも垣間見える点は本書の良いところだと思う。

ただ、本書を読んで自分のプロジェクトに何か適用できるかというと、それはまた別の問題である。たぶんこのレベルに到達する前にやるべきことが山ほどある。いくつかテクニック的に興味深い箇所はある(ACCなど)のだけれども、全般的には「レベルが高すぎる」という印象。