鯨飲馬食

いろいろつまみ食いで勉強したことのメモ書き

TDD Boot Camp Osaka 4.0 で boot されてきた

www.kokuchpro.com

参加動機

  • 職場で若い人とペアプロでテスト駆動で開発してみたことがある
  • 短期間で機能を完成させてリリースし、有効性が見れた
  • でもその後、自分も他のメンバもペアプロテスト駆動開発を実践することがなかった

有効性が見れたのに何故継続できなかったのかは気になっていて

  • 最初の単体テストコードを書くのが難しいから他の案件でできなかった? (やれたときは、最初に作るときに単体テストを書いていた部分の機能追加だった)
  • テスト駆動開発のやりかたがよくなくてまたやろうと思わせられなかった?

という疑問は持ちつつも次の一手を打つこと無く時間が過ぎていた。 今回、テスト駆動開発がどう美味しいのか考え直したいと思いTDDBCに参加しました。

学んだこと

午前中は講演とデモがあり、午後はペアでひたすらRed、Green、Refactorのサイクルを回しました。ほとんど使ったことがなかった言語 (Ruby) で書いたので最初は手間取ったものの、徐々にペースを掴んでいって最後はもっとやりたいと思いつつも時間終了でした。

講演とデモの解説の中で irof さんから

  • 不安をテストにする
  • 不安がないところはテストを書かなくてよい
  • まずassertionを書くことでゴールが明確になる
  • 一歩一歩踏みしめたいとき以外は、こう書けばいいとわかっているなら一息で書いてしまえばよい
  • TDDのテストは開発のためのテストであり、品質を保証するためのテストはまた別
  • 開発が主役。テストが主役ではない

という話があり、動く(価値のある)きれいなコードを素早く開発するための手段としてのTDDであり、テストをたくさん書くことが目的ではないということは肝に銘じておかねばと思いました。

懇親会では原田騎郎さんから、サボるためにTDDをやるんだ、とプログラマの三大美徳の一つである怠惰に絡めた教えをいただきました。楽できるところは楽をするために頑張って、プロダクトの本質に集中して価値を届けていきたいです。

boot された?

オープニングの話で、TDD boot campに受講者として何度も参加すると boot されてないということになって主催者が叱られるという話がありました。素振りはしっかりできたので、ここで満足して終わりにするのではなく現場での実践を試みていきたいです。次回はTAなりで協力できればと思います。

講師・サポートスタッフの方々、会場提供いただいたファーストサーバさん、お菓子差し入れをいただいた皆様ありがとうございました。

(追記)後日、一緒に参加していた同僚と、職場のエンジニアに向けて学んできたことの共有をしました: