Agile Samurai Base Campにお手伝いさんとして参加してきた #agilesamurai
はじめに
TDD界隈でお声がけいただいたのでお手伝いさんしてきました。
自分の備忘録の意味合いが強いですが以下書きますー。
当日はいろいろ出しゃばって前に出る機会をいただきました。自分自身とても沢山の気付きをいただきました。ありがとうございます。
ただおかげさまですっかりぐったりしていますが。
私全然疲れが抜けてないんですけど、みんな仕事なんでいけるんですかすごい。
— Yotaro TAKAHASHI (@PoohSunny) 2013, 12月 9
あ、一応私も今日は仕事してますからね。念のため。
やったこと
ペアプロデモ
先日行われたTDDBC横浜の時に引き続き、てらひでさんとペアプロでした。
- TDDBC横浜についてはこちら
TDDBCより勉強会慣れしていない方向けの勉強会という想定だったので、お題とかもより現場で使いやすいように(=実践に近い形に)練りこんだりしました。
結果としてちょっとライブ感が強く出すぎたという改善点がありました。
これは次回があればもう少しいい感じにしたいと思います。
あとは下向いてしまう関係でかなり声も小さかったですね。すみません。
なお、あのソースは公開するにはちょっと忍びないレベルなのでそのままお蔵入りとしまするww
アンカンファレンス
引き続きてらひでさんと、初心者向けのアンカンファレンスに参加しました。
質問していただいた場合は回答 + ペアプロデモの続き + FizzBuzzのTDDデモ
といろいろやりました。参加者の方にも何らかの形で影響を与えられればいいなーと思います。
参加していて思ったのは、質問していただいた方の内容が鋭い!ということ。
みなさん問題意識がばっちりあって参加されてるんだなと感じさせられました。
そこにすごく刺激をうけました。ありがとうございます!
事例発表
その後は、事例発表もさせてもらいました。
内容はレガシーコード絡みww
最初は、経験談に基づいたレガシーコードファイティングの事例をガチでやろうと思ってスライドを作っていたのですが、スライドをあらかた作ったところでとても持ち時間の8分じゃ間に合わないことが発覚したので(気づくの遅い)、内容を考え直して
「レガシーコード改善」 → 「レガシーコードでレベルアップ」
という内容に切り替えました。
下記エントリーに「レガシーコードを相手にしたとき、ユニットテストにチャレンジすることは良い経験となります。」と記載があるのですが、読んで参考にさせていただきました。(言いたいことほとんど書いてあって愕然としたりしましたがw)
こちらの発表の方は、口頭やtwitterなどで参考になったという声をかけていただけたのでとてもうれしく思っています。
ぜひ皆さんのお役に立つといいな、と思っています。
スライドの最後にも挟み込みましたが、事前に貴重なアドバイスを下さったAgile Samurai Base Campスタッフのみなさな、そして嫁さん、ありがとうございました。
最後に
共有しよう
今回参加していただいた方で、参考になったと思った方や実践してみた方、あるいはその結果新たな疑問がわき出た方、ぜひまた外の勉強会に参加して考え・体験・悩みなどを共有してみてください!
私自身、対レガシーコードでいろいろ悩む中で外に出て、いろんな方からアドバイスもらって今ここにいる感じがしています。それは振り返るとすごく幸せなことだったと思うので、そういう幸せが増えるといいなと思っています。私自身まだまだ悩んでるので、もっといろんな人と悩みを共有したいと思っています。
次のステップ
レベルアップしたら、次のイベントに出てみたいですよね。私も今お手伝いしているコミュニティにもう少し貢献して、次のステップとして利用できる場を増やせるように頑張りたいと思います。実際にそういうアイデアも出ているので、実行に移していければと。
感謝!
参加してくださったみなさま、スタッフの皆様、どうもありがとうございました!
第三回ゆるぎー はじめてのTDDに参加してきました。 #yuru_gee
はじめに
12/2(月)に第三回ゆるぎー はじめてのTDDにお呼ばれして参加してきました。
柄にもなく講師なんて肩書をつけてもらったもんだから、前日まであわわわなってたわけですが、@uasanoさんや@terahide27さんのお陰で楽しく過ごせました。ありがとうございました。
勉強会内容
会場
今回は渋谷の21cafeさんをお借りしました。
私は初めての利用だったのですが、広々していて、設備も綺麗で管理人さんも綺麗な方ですごく良かったです。
— Yotaro TAKAHASHI (@PoohSunny) 2013, 12月 2
ちなみに、管理人さんは「おだんみつ」さんと言うらしいです。
ペアプロデモ
@terahide27さんの説明(なんと@t_wadaさんからのメッセージがあったのにはびっくりした!!)につづき、ペアプロデモをしました。
@uasanoさんとペア、@terahide27さんが第三者視点での説明者というトリオでした。
途中専門用語を説明なしで使ってしまって申し訳なかったですが、
参考になったというご意見もけっこういただけたので嬉しかったです。
ペアプロについて
ドライバーとナビゲーターについて、21cafeさんのレポートを見ていて、
自分があまりうまくデモできてなかった気がしたので補足させてください。
- ドライバーとナビゲーターについて
ナビゲーターは文字通りナビゲーターなので、下記が主な役目です。(後述のやっとむさんの資料から引用)
- ドライバーを支援する
- 全体像や、次のステップを考える
ちょっと前回は、ドライバーを強く誘導しすぎたかなーと反省。あくまでペアプロは協力作業です。
下記の資料も参考にしてみてください。
- やっとむさんのペアプロワークショップスライド
実践タイム
実践では@akikohatayamaさんとペアを組ませていただき、ペアプロしていました。
プログラミングは自学とのことで、いろいろお話するなかで私も伝え方とかで気づくことがあり参考になりました。
そしてなにより楽しかったです。ありがとうございます。こちらからなにか参考になる情報はお渡しできたかしら?
懇親会
懇親会も楽しかったですね。
「なんで人前で発表するのー?」(意訳)と聞かれてあわわわしてしまいましたが(笑)。
改めて理由を考えると、やっぱり楽しいからかなーと思います。
人とのつながりができるのも楽しいし、TDDも楽しいし。
おわりに
もっとやりたい?
そういう人向けに、直近では以下のイベントがあります(宣伝)
あと、ゆるぎー向けに、こんなお誘いもありましたね。
第三回ゆるぎー はじめてのTDD #yuru_gee に参加された方、TDD Advent Calendar 2013にブログ記事を書いてみませんか~?
http://t.co/D7c5RuqIRQ #TddAdventJp pic.twitter.com/QLwnCjoZsy
— 山本康彦@BluewaterSoft (@biac) 2013, 12月 5
私はエントリーしたので、もし興味があるかたは是非!
yuru_geeは、絶妙なゆるさとゆるくなさがなかなか新鮮でした。
というわけで非常に楽しかったのでまた呼んでください。次回は参加者として参加できればと思います。
@terahide27さんを始めとした主催者のみなさま、ペアになってくれた@uasanoさん、@akikohatayamaさん、会場の21cafeさん、ありがとうございました。
TDD Boot Camp 横浜 3rd に参加してきました #tddbc
はじめに
こんにちは。
(id:xxxcaqui さんのエントリーにインスパイアされた挨拶。)
参加者の皆様、お家に帰ってブログを書くまでが #tddbc ですよ!皆様のご感想をお待ちしております。
— しんや (@shinyaa31) October 5, 2013
というわけで遅くなってしまいましたが、TDDBC Yokohama 3rdにスタッフとして参加したのでそのレポートです。
TDDBC Yokohama 3rd開幕
基調講演
@yattomさんによる基調講演でした。
TDDBCではt_wadaさんが基調講演をしてくださることが多いのですが、そのエッセンスがにじみ出つつ、やっとむメソッドが織り込まれていて、とても楽しかったです。
TDDやろうと思ったのはなぜですか? → 面白そうだったから!というのはすごく共感できました。
ペアプロデモ
今回はペアプロデモにチャレンジさせてもらいました。
意識したこと
後のLTで話すのですが、今回は「リズムを大事に」というのを意識してやりました。
その点については参加者の方の感想を見ているとそこそこうまくいったような気がしています。皆さんにいい影響があればいいな、と思います。
反省点(ちょっぴり裏方の話)
反省点として、@terahide27 さんもおっしゃってるのですが、TODOリストを細かくし過ぎた、というのがあります。
@comutt 懇親会でも話題に上ってたのですが、ペアプロでもでTODOリストの書き方はちょっとミスリードしました。お題が簡単だったから、テストケースに直結するくらい具体的になってしまっただけで、本来はもっと抽象度が高いタスクを書くことになると思います #tddbc
— てらひで (@terahide27) October 7, 2013
もう少し裏方の話をすると、過去のTDDBCのFizzBuzzでのデモのときは、だいたい
- 3の倍数のとき
- 5の倍数のとき
- 3と5の倍数のとき
- それ以外の時
みたいな、前回のデモよりはおおくくりなTODOを作ります。
そうすると、経験的に3の倍数のテストから実装する、という流れになります。
その場合、最初の Red -> Green -> Refactoring のサイクルが結構長くなってしまうという悩みがありました。
事前打ち合わせで、なんとか「それ以外のとき」のテストからやる流れにもっていけないかなーと考えた末、「どの値の時にどんな値を返すか?」って問いをベースにTODO組み立てれば、それ以外のときからやる流れできるし(インプットとしてシンプルな順考えると1からやることになると思うので)、結構Greenまで早く持っていけるんじゃね? ということであの形になりました。
その狙い自体は悪くなかったと思っているのですが、結果的にTODOリストの粒度が細かくなり、午後の実践で細かいTODOを書く人がけっこう多かったように思います。
実践のお題で、TODOを必ずしも細かく書く必要はなかったと思っており、この点をミスリードしたかな、と反省しています。
解毒の意味も兼ねて、Youtubeにあがってる他のペアプロデモの動画もご参考にしていただければ。
で、その後悔があってLTすることになります。それは後述。
実践編
実践編では、疲れ果てたり自分のGroovy力に自信がもてなかったので、
RubyのTAをやるはずだった id:sue445 さんにGroovyのペアとして入ってもらい(ごめんなさい)、後ろでうろうろとみなさんのペアプロを見てました。
最初は慣れない感じで皆さんかたくなってる印象でしたが、時間がたつにつれどんどん慣れ、
コミュニケーションが活発になっていくのがわかってすごく嬉しかったです。
やっぱりペアプロすごい!
懇親会
#tddbc ビアバッシュ懇親会のLTがカオス過ぎて超たのしい
— YASUI Tsutomu (@yattom) October 5, 2013
ですね。あんなにみんなハジケるとはびっくり! 楽しかったー!
(お酒飲み過ぎて詳細あんま覚えてない。。。。)
LT
ペアプロデモの反省から、ちょっと準備していた内容を変えてLTしました。
当日口頭で話した内容は下記です(一部忘れたけど)
TODOリスト。思ってたより細かい #tddbc
— iyuuya (@iyuuya) October 5, 2013
これはデモのところで書いた通りです。も少し粒度が大きいほうがよかったかなーと。
「ペアの交代は赤くなったところで」いいですね。「行き詰まったとき」も。それに、議論が過熱してきたらキーボードを奪っていったんコードを書いてみるというのもお勧めです。 #tddbc
— YASUI Tsutomu (@yattom) October 5, 2013
ペアプロの交代を「疲れたからかわって」「書きたくなったから貸して」みたいにカジュアルにできるの、いいですね! #tddbc
— YASUI Tsutomu (@yattom) October 5, 2013
ペアプロでのペア交代って、時間で縛る必要ないのか。行き詰まったら交代、良い気がする。 #tddbc
— Johnny • H • Kikkawa (@shinjukujohnny) October 5, 2013
赤くなったら交代、行き詰まったら交代は@setoazusaさんのアイデアだった気がします。ありがとうございます!
カジュアルに変わるのはアドリブでしたが、実際疲れた時にアタマを切り替えられるのでよかったですね。
時間で区切るのも有りだと思います! 集中モードになっちゃうときとかは時間で区切るの有効ですよね。
ひらがなは斬新だ… #tddbc
— とーます (@grimrose) October 5, 2013
テストメソッド名って日本語でいいのか とはいえ違和感ありまくるw #tddbc
— Keisuke.I (@syguer) October 5, 2013
「いちを入れたらいちをかえす」とか最初は書きましたからねww
比較的早く「_1を入れたら」とリファクタしましたが、あれは正解だったようです。
ここらへんは、一旦TODOリストに戻って話し合いの結果を書いたほうがいいと思います。 #tddbc
— とーます (@grimrose) October 5, 2013
仰るとおりです。。。TODOリストをもっと有効活用できたと思います。この点も反省。
ペアで話し合った内容を残すのは、特に難しい要件とかだと超大事な気がしました。
isMultiply()はprivateだし直接テストする対象になっておらず、convert()の内部(実装の詳細)だから、リファクタリングの一環としてグリーンのまま進められますね。 #tddbc
— YASUI Tsutomu (@yattom) October 5, 2013
そういえば、privateメソッドのテストについての話。見事なエントリがあるんだけど実はあまり知られてないのかも。素晴らしいまとめになっています。「プライベートメソッドのユニットテストは書かないもの?」 http://t.co/EDRlG1Qks4 #tddbc
— YASUI Tsutomu (@yattom) October 7, 2013
もはや定番化したprivateメソッドのテスト問題。
まとめにかえて
思えば1年ちょっと前、TDDBC Yokohamaの2ndに参加してから、
いろんな人と出会って勉強させてもらい、3rdではスタッフとしてお手伝いできました。
反省点も多かったですが、去年目標としていた、TDDBCに恩返しするって目的は一応達成できたかなと思います。
まだまだ自分もTDDBCも成長できることがあると思うので、引き続き高みを目指せればと思っています。(まずはGroovyか。。。。)
あと、楽しかった! と感想を持ってくれたり、
スタッフとして参加したい! って言ってくれる人が多かったのが嬉しかったです。
是非次回はスタッフで一緒に楽しみましょー!!
最後に、主宰の@setoazusaさん、スタッフ&参加者のみなさま、アットウェアさん、ありがとうございました。