こんにちは!株式会社Re:Buildの中西です。今回は7/22(土)に香川県の情報通信交流館 e-とぴあにて行われたTDD Boot Camp in 香川に参加してきましたのでイベントのレポートをお届けします!
参加の動機
これまでプロジェクトをスクラム開発で取り組んできましたが、どうにも毎週のコードレビューとテストがボトルネックになっている気がしていました。
また独学でテストを勉強し、チームメンバー全員でテストコードを書くようにはしているのですが、うまくテスト駆動開発できていなかったり、テストの書き方の方向性はこれでいいのかなど迷っていました。
そんななか、なんとあの「テスト駆動開発」を翻訳された和田卓人さんが来てくださるテスト駆動開発の勉強会があるということで参加させていただきました!
トークセッション「テスト駆動開発 質を作り込む」
午前中は和田卓人さんによる講演会でした。
まず印象に残っているのが、テスト駆動開発のゴールは「動作するきれいなコード」だという言葉です。ハンマー釘病にかかってしまわないよう、まず最初に目標を設定することはとても大切なことですよね。
次に非常に印象に残っているのが、とりあえず動いてる汚いコードをリファクタリングするときにとりまく下記の3つの感情のおはなし。
- 堕落:「コード動いてるからええやん?」
- 焦り:「うわああああテスト書く時間ないでござる」
- 恐怖:「動かなくなったら嫌だから、リファクタできひん。。。」
どれもビジネスでプログラミングをしたことがある人なら感じたことがあるとおもいます。解決法としては、
- 恐怖:テストコードを書くことによって克服
- 堕落:怠けようとする弱い自分を倒すことで克服
焦りに関してが問題で、本当に時間がない場合ってのもあるのでしょうが、日をまたぐと自分のコードでも意味がわからなくなったりすることって頻繁にありますよね!?なので最低でもその日のうちで最低限のテストコードくらいは書こいておこうというのがひとまずの解決策でした。
全体を通してすごく話がわかりやすくスライドもシンプルでみやすく、発表の仕方自体も勉強させていただきました。
テスト駆動開発ハンズオン!
午後はお待ちかねのテスト駆動開発のハンズオンでした!会場の人とペアになってプログラミングをしていく、いわゆるペアプログラミングでのハンズオンでした。
ペアプログラミングとは、2人1組になって1つの画面でプログラミングをしていく手法のことで、ドライバー(キーボードを叩いてプログラミングする人)とナビゲーター(設計したりドライバにアドバイスをしたりする人)の役割に分かれて共同で作業を進めていきます。一見開発効率が2分の1になるかのように思えるのですが実際はそうではなく、誤った実装をしそうになったときにペアに指摘してもらえたり、煮詰まったときにドライバーとナビゲーターを交換することで1人で煮詰まらずに作業が進んでいくという感じで、メリットの方が多い作業方法のように感じられました。
各チームある程度作業が進んだところで会場全体でコードレビューの時間に。最初は自分のコードを大勢の方にみられるということで緊張していたのですが、実際やってみるととてもおもしろく、様々な指摘を貰うことでコードがその場でブラッシュアップされていく感じがエキサイティングでした。
他のペアの方のレビューの際も、自分が指摘する側にまわることで良いコードからは刺激をもらいますし、俺だったらこうするけどなと感じた部分に関してはすぐに質問してみるなど、お互いにとってプラスになることがとてもおおい時間だなと感じました。
懇親会!
TDDBC in 香川に参加していた約20名くらいで、ホテルの屋上で開催されているビアガーデン会場へ!
ものすごいでかい会場にたっくさんの人がおりました!笑
香川県ってこんなにもビアガーデン文化が広まっているんやなぁと、沖縄県民の中西としてはカルチャーショックでした!
まとめ
- テスト駆動開発は銀の弾丸ではない
- 時間がないときとかは、最低でもその日のうちに最低限のテストをかく癖をつけよう(テスト駆動開発にこだわる必要はない)
- 沖縄でTDD勉強会やりたいのでテストコードとかテスト駆動開発興味ある方いましたらご一報ください
- 香川は飲み会のシメはカレーうどん
これまでテストコードや、テスト駆動開発に関する勉強を独学でしかしてこなかった自分にとっては本当にたくさんの学びがある1日になりました!
最後に、和田卓人さん、TDDBC in 香川の運営の方々、重厚で楽しい時間を本当にありがとうございました!