第2回テスト駆動開発入門勉強会に行ってきました

今回お邪魔させてもらった勉強会はこれ↓
http://partake.in/events/4013e528-80f4-4df6-9d2b-92abeb44014d


進め方は…


隣の人と本読みつつ

「こういうことじゃね?」って話しつつ

本に載ってるコードをペアプロで写経していく感じ


ペア毎に好きなペースで読んでいって実際にTDDを体験していこう感じでした。
最初は「ペアプロしたことないからどうやってやればいいのかわからん…」「本に沿ってすすめるって…どうすればいいの?」って感じでしたが、ホストの方々がそういうペアをまわって直接「こんな感じでどうですか〜?」って助けてくださったので戸惑ったのは最初だけでした。
知らない人とペアプロ…ってちょっとハードル高い感じしましたが、組んだ方がとても話しやすく色々意見交換できたり、ペアプロ中も各々楽しみながらマイペースにやるって感じだったので楽しめました。


成果は1時間で4章までさくっと進めた感じ。
ペアプロしながら意見交換しながらだと流石に早い。


1時間ほどペアプロやったら全員でディスカッション。
話題は↓。

・1章でグリーンのままコードが変わっていっているのはTDDっぽくないかも
⇒リファクタであればよいかとおもう。
 テストが通るって状態のままコードの品質だけが高まっていくって考え方。

・4章とかでいきなりテストコード書き換えてるの怖いよねー
⇒それが怖いならリファクタ前と後のコードを残しといて、どっちも通るよねってことを確認した後にテストコードを変えたらどうだろう?
⇒そもそもTDDでテストがちゃんとテストされているって保障がないのが怖いかもー
⇒TDDってあくまで開発技法なのでテスト技法じゃないのよね。。。そこはソフトウェアテスト技法で担保するのがよいおおもう。

ペアプロするときリスト書くのどうやってる?二人してコードに注目しちゃうんだよね。
⇒そもそもリスト書くって何?
⇒本(今回写経したテスト駆動開発入門)に書いてあるTODOみたいなの。
 たとえばコード上必要でも本質的に必要か不必要かをちゃんと誘導してくれる人がリスト書く人がやる。
 参考→http://ja.wikipedia.org/wiki/%E3%83%9A%E3%82%A2%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0
⇒リスト出す人は付箋とか使ってコードに注目しないようにするとうまくやれたことがあるよー。
⇒逆にコードに注目するのは悪くないと思うよー。お互い「○○やてるよー」「何々やりたいよー」ってペア同士コミュニケーションとるのが良い!一番だめなのは二人とも黙っちゃうこと!手止まっちゃうしお互い何してるのかわからないからペアプロの意味なくなっちゃう。

ペアプロのメリットって?
⇒時間短縮になる。例えばお互い6時間かかるのが二人で6時間になるよー
⇒集中できるから一人でやるより生産性あがるよ。
⇒お互い監視し合ってるからコードの品質も上がるよ。やり方にもよるけどリアルタイムコードrビューみたいな感じだし。
⇒うまい人とそうでもない人が組むといいよ。教育って目的もあるからね。


●個人的な所感
・知らない人とペアプロめっちゃ楽しい。
「これってどういうことなんだろう?」「こういうことじゃね?」って感じでお互い色々議論しながら進められるので楽しいし理解が早い。
・TDDは慣れるまでちょっとコツがいるかも。
「レッド→グリーン→リファクタリング」の流れが慣れるまでちょっと大変かもしれなけど、慣れたら楽しくなると思う。
何よりその場でリファクタできるってのは一番イイ。
・TDDとUTはやっぱり別物。
ごっちゃになってる感じがしたのですが、やっぱり「開発手法」と「テスト手法」なので別物。
テスト駆動開発入門がちょっと読み辛い…
勉強会のことじゃないですが…
途中何度か「これってどういう意味なんだろう?」ってなった。
他の人たちもそれは同じのようで、ディスカッションの時にも軽く話題になりました。
ケント・ベックの和訳本を読む時は気をつけましょう。
・ピザ美味しかった。

次も楽しみにしてます。