『組織にテストを書く文化を根付かせる戦略と戦術』を聞いて #jopf

はじめに

先日開催された『開発を活性化するためのポイントとテストに関する勉強会』にて、『組織にテストを書く文化を根付かせる戦略と戦術』のお話を聞いてきたので、そこでの内容と自分が所属している組織への適用について記してみます。

感想

衝撃的だったのは、「テストを書く文化の醸成には2年ぐらいかかる」という言葉。

一日二日でできるとは思っていないんですが、まさか年単位とは。

そのため、勢いで乗りきれるほど甘くはなく、戦略と戦術でもってテストを書く文化を醸成しましょうという話に続きます。

スライド10ページ目で引用されている『テストを書く時間がないのではなく、テストを書かないから時間がなくなるのだ』

でさらっと、テストを書かない理由No.1に対する厳しい答えを提示し、戦術として「どこから手を付けるか」(スライド21ページ目)や、「テストでこだわりがちなところに対する警鐘」(スライド24ページ目)、「テストでのこだわりポイント」(スライド25ページ目)を例示されて、一つ一つが勉強になりました。

で、どうする

一番手っ取り早いのは、自分のテストスキルを上げることかなと思います。発表の中でも言われていましたが、「レガシードコード改善ガイド」を読んで用語や考え方を身につけ、

レガシーコード改善ガイド (Object Oriented SELECTION)

レガシーコード改善ガイド (Object Oriented SELECTION)

実際にテストを書いてみるというのを自分はやっています。

Ruby/Railsでは、『Read Everyday Rails - RSpecによるRailsテスト入門 | Leanpub』や『Rails 4 Test Prescriptions』などがよいように思います。

pragprog.com

後は、公開されているOSSには結構テストが書かれていないことが多いので、テストを追加するPull Requestを出すというのもいい勉強になるかなと思っています。

実際に組織に展開するというフェーズについては、それぞれ組織ごと・チームごとに異なるように思えます。私が言われたものでも、

  • テストを書く時間がない
  • テストを書くためのスキルがない
  • テストコードの品質が担保できない
  • それは(QA|開発者)の仕事
  • テストコードによって生産性が上がるといった定量的指標がない

などなど。あー言えばこー言う状態なので、真正面でぶつかってはダメで、地道に答えを用意するのが一番早いように思っています。

それか、トップを仲間につけてトップダウン式で強制させるというのもある組織形態では有効な気がします。

冒頭で書いた「文化の醸成は年単位の事業になる」という言葉を旨に、いろいろと試行錯誤するしか無いのかなと思っています。