TDD Boot Camp 札幌 2.1に参加しました

9月24日に行われたTDD Boot Camp 札幌 2.1に参加してきました。
当日の様子については@sue445さんによるまとめ – TDD BootCamp 札幌 2.1 #TDDBC があります。
今回もJavaチームのTAとして参加。
演習では「会議室の予約を管理するよくある社内システム」を構築するというのをslim3&GAEを使って行いました。
セッション等については他の方が書いていると思いますので、TAとして思った事を書いていきたいと思います。

反省点

いきなり、反省点から。
slim3というほぼ初体験のFWを使ったTDDBCだったにも関わらず、事前準備があまりできませんでした。
前日のJenkins勉強会の懇親会時点で、環境構築で戸惑っていた始末。
(なのに懇親会に行ったのか?・・・@sue445さんに懇親会でお会いできたからこその当日だったのです)

ミスリードはしないまでも、slim3を使った開発という面での技術的支援はあまりできなかったです。ごめんなさい。むしろ、slim3とGAEでバリバリ開発経験のある@t_hachinoheさんから学ぶ事が多かった!大変感謝しております。

翌週なんてどうなるかわからないから、時間のあるうちにできることをしておけ、と身をもって学びました。

TAとして伝えたかった事

今回は「実際の仕事で(時間的制約がある中で)どこを抜いて、どこは締めるのか」をチームプログラミングを通じて少しでも伝えられていたら良いなと思って演習を進めていました。
仕事には、期限があります。決められた時間の中でより良いもの、質の高いものを作っていく、そのために大事な事の一つとしてTDDという開発手法があります。そう思っています。
実際に1時間で1ユースケースをこなすのは時間が足りなすぎた。
完璧なロジックで、理想の形でTDDをやる(つまりはすべてのパターンのテストを作って開発していく)のはなかなか難しい。

で、目的を達成するために外してはいけないところはどこなのか。

今回のシステムの場合、短納期のプロジェクトだったらどうするか、そこで出した答えは
「GUIのテストは省く」
でした。まずはデータだな、と。
データの取得更新がシステムとして正しい事、これだけは確実にしておこう。
ロジックとして引数が美しくないところもありましたが「そこは次のイテレーションがあったらそこで改善する」と割り切りました。その分データ更新の部分はテストからきちんと書くことにしました。
全体の流れ、ユースケースを実現する事を意識して。

実際、本当に必要なテストも若干足りていなかった(バリデーションのパターンが足りなかったなど)のですが、そこについては
「ここは絶対にやっておいたほうがよいところ、間違いなくTODOコメントを残しておく事」
と適宜話していく感じで、外してはいけない部分は伝えられたかなと思います。

テストからインターフェースを考える、というあたりをチームメンバーが既に把握していたというのもあり、実践として、自分が仕事で得た経験を・・・共有できて・・・いたかな。
「時間的制約」を意識してもらえていたら良かったなと思います。

制約のある中できちんとしたものを作りたい

短い時間の中でもTDDで開発したコードは動くという自信が持てる

TDDで作っておけば少々コードがアレでもあとで安心してリファクタリングできる

そもそも技術力が上がればもっとたくさんのコードがかけるよね

このどれかでも持ち帰っていただければ!
だんだん書いていて不安になってきました。これでよかったんだろうか。

たのしかったこと

みんなで考えながら、プログラミングをする事が純粋に楽しかったです。
いままでは「テスト駆動開発をしよう」という緊張感のようなものがメンバーにありましたが、今回はTDDを行う事は当たり前、自然な事であるという流れができていたような気がします。どうテストをするかという悩みもありましたが、それよりもその先をどうしようか「どう作っていこうか」という話し合いが多くできた事がとてもよかったです。
(準備をもっとしていればはまらなかった事もあったのですが)、みんなで頭をひねって考える時間、ソースを見ながらあーだこーだ言う時間がもてたのは「参加型」としてよかったことだったかもしれないな、なんて。

あと、自分のチーム懇親会参加率が100%だった。えへ。
終わったあとの鶏とビールは最高でした。
P9241545

謝辞

毎回、素晴らしいスピード感でTDDBCを開催してくださる@shuji_w6eさん、今回も本当にありがとうございました。
JavaのTAとして事前準備をまかせっぱなしにしてしまい、さらに前日から(お酒の席にも関わらず)サポートいただいた@sue445さん、今回お会いできて本当によかったです。ありがとうございました。
そして、同じチームだった@hope_784さん、@onjiroさん、@t_hachinoheさん、当日撮った写真では大変疲れた様子でしたが、楽しんでいただけましたでしょうか。至らないところもたくさんありましたが、皆さんとプログラミングができて、私はとても楽しかったです!ありがとうございました。

次回はみっちり自分も鍛え上げられるtddbcにも参加してみたいです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください