読者です 読者をやめる 読者になる 読者になる

世界のやまさ

SEKAI NO YAMASA

TDDBC 仙台 5 を開催しました

TDD TDDBC

f:id:nnasaki:20151130211533j:plain

もう2週間前になってしまいましたが、 2015/11/14(土) に TDDBC 仙台 5 を開催しました。もちろん一人でやったわけではなく、主催は @135yshr で、課題作成とマサカリ担当は @i_takehiro 、僕はその他雑用の主に3人で開催しました。

今回の感想は2つのツイートに集約されます。

詳細は当日の様子を自分のツイートを見ながら振り返ってみたいと思います。リアルタイムな流れは togetter を見ていただくと良いと思います。

会場は MEMBERS ウェブガーデン仙台

MEMBERS ウェブガーデン仙台さんの会場をお借りしました。ありがとうございました。とても綺麗な会場でした。

タイムテーブル

レビュー時間は思ったより、かかりました。次回はやはり見直さないとなぁと思った感じです。 (@i_takehiro のマサカリが冴え渡っていたのでとい噂も…)

和田さんについて

和田さんの基調講演はやはり素晴らしかった

今回は頑張ってツイートしてたので、ツイートを元にふりかえります。

まず、TDDをしていない、自動化されたテストが無いときのリリースは「爆弾処理」のようなリリース。

一休さんのとんちみたいですが、

我々が陥りやすい状況は設計を完璧にしてから綺麗なコードを書こうとすること。けれども、実装を始めないとわからないことが多い。TDDは動作する汚いコードから綺麗な設計を目指す。

TDD導入すると、デバッグ時間が減ってコーディング時間が増えるが、トータル時間は減る。TDD導入したことで良い結果があるが、SIerからするとポジティブな意見が出るかはビミョウ。

今回の課題は格子点

格子点っていってもピンと来ないかも知れませんが、方眼紙上に点を書いていく感じです。課題の詳細については、 TDD Boot Camp(TDDBC) - TDDBC仙台05/課題 をご覧ください。

今回も Mr.TDD & DDD こと @i_takehiro オリジナルの問題です。尚、当日は課題1までしか最初みせておらず、全体像がわからない状態で進んでいたので、もし写経する場合は課題1だけをみてやるとライブ感を味わえると思います。

お昼終わってペアプロへ

お昼は弁当を用意して、ペアプロに入ります。仙台の場合、ペアは主催者側でアンケートをもとに組んでおき、お昼ご飯を一緒に食べるようにしています。これは午後からペアプロをスムーズに行うために、コミュニケーションをとりやすくする試作です。

ちなみにお弁当は4種類用意していました。そのうちの1つはこんな感じです。

ちなみにペアプロ中はみんなTweetする暇がないので、Tweetがほとんどありません。

レビュー中にあったQ&Aに対する回答

ペアプロ中にちょっとしたQ&Aがあり、いつも情報が揮発してしまっていたので、メモしておきました。これはメモしておいてよかった。

TDDをやり始めたばかりだとクラスやメソッドがしょっちゅう変わるので、テストを直すのが苦になってくる。結局面倒になって辞めてしまうって事があると思いますが、やっぱり最初はちょっと辛い感じです。これを乗り越えてメリットが見いだせると、次のプロジェクトからも初期の苦労は耐えられる感じですかね。

テストをREDになるつもりで書いたらGREENになった。というのは実装かテストに問題がある可能性が高いので注意すべき。

これは良い質問だった。テストを書く粒度は自分の自信により異なる。アクセルとブレーキで緩急付ける。これに関連する質問で次のQ&Aもあった。

Q: Getter の三角測量を行っているが、そこまで必要か?
A: 
1.(テストの)重複をなくす目的。三角測量自体は2個行えば証明が成り立つので3つも4つも必要は無いかもしれない。
2. ケントベック自身も三角測量については奇妙だと言っている。(Tobe)どうなったらいいかわかるが、(How)どうやっていいかはわからない。必ずしも正しい方法ではない。ローギアな方法。

TDDは個人でも出来る。では組織では?

懇親会でも話合ったQ&A。こちらも興味深かった。

Q: 自信という話が出たが、個人では無く組織の場合はどうするべきか?標準化とか?

A: 
・TDDは一人でも出来る。でもそれは組織では…
・属人性の低い指標みたいな
・空手の型みたいなルールを決める
(example for アジャイルサムライ, jenkins通さないとリリース出来ない)
 ・Yahoo!なら黒帯みたいな段位とか

・実際にやってみて苦労したところ
 ・自信じゃなくて組織の場合、
  ・データとして見れる?
   ・Excelじゃないと通用しない
    ・元々そうだったけど、それを壊すために稟議を通して変えるようにした。
    ・アジャイルサムライ11というチームを作った
   ・ムリだと諦めてドロップアウト
   ・TDDの効果はすごいけど、今までとの指標と変わりすぎると組織にフィットしない
   ・防波堤になるマネージャー
    ・腹くくる
    ・LOCあたりの発生バグ数の指標とか
    ・プログラマー以外にもわかる定量的な指標を作る
     ・ねつ造…
  ・お客さんとの契約を準委任でアジャイルな開発

僕は組織に時間を使うなら、自分でやろうと辞めてしまった人間ですが、ちゃんと会社に稟議を通して出来るようにしたというメンバーズさんはすごいなぁと思った。

みんなクラス名に複数形使う?

Q&Aじゃないけど興味深かったクラス名の付け方。ちなみに私はクラス名に複数形使います。

ちなみに複数形使わない派は和田さん。使う派は井上さん。マッパーにクラス名が引きずられるのがおかしいという指摘は増田さん。だったと思います。テストだけじゃなく、オブジェクト指向やDDDの知識が見えて面白かった。皆さんそれぞれ同じ本を読んでいるんですけど、それぞれが昇華してて考え方は異なる点もあるんだなぁと感じた。

ふりかえりはKPTで

懇親会もメンバーズさんの和室で

なんと会場のすぐ隣には和室があり、すっかり居酒屋気分で行いました。

@a_suenami さんの糖質制限の話で盛り上がる。TDD is 糖質駆動ダイエット

なお、買い出しでセブンイレブンのお総菜を「これ全部」と大人買いしましたwf:id:nnasaki:20151114201653j:plain

仙台名物その1 主催者のコスプレ

主催者の @135yshr は毎回コスプレしており、今回は 5 と Go をかけて、go のマスコットである gopher 君をコスプレしてた。

ちなみに本物の gopher 君。ちょっと厳しい…

https://camo.githubusercontent.com/98ed65187a84ecf897273d9fa18118ce45845057/68747470733a2f2f7261772e6769746875622e636f6d2f676f6c616e672d73616d706c65732f676f706865722d766563746f722f6d61737465722f676f706865722e706e67

仙台名物その2 @i_takehiro のマサカリ

仙台では Mr.TDD & DDD こと @i_takehiro によるコードレビューに対する素晴らしい指摘がいただけます。我々はこれをマサカリと呼んでいます。

言葉で書くより10秒のイメージ動画をご覧ください。すぐにわかります。

それでは、@i_takehiro のマサカリに対する反応をご覧ください。

まとめ

冒頭の2ツイートの通り。もう一度貼っておきます。

次のステップ

我々は毎週木曜日に19時ごろから21時ごろまで、ソシラボ | 仙台市青葉区のコワーキング・イベントスペース さんにて勉強会をやっています。TDD 以外にも DDD や Go言語 の勉強会をやっていますのでお気軽にご参加ください。

たまにやっていない場合があるので、 TDD勉強会in仙台 - connpass のメンバーに登録していただくか、主催3名をフォローしてチェックください。

対象レベルは初心者からです。そのとき集まった人のレベルに合わせて行いますので、是非気軽にご参加ください。

参考リンク

申込サイト

tddbc.doorkeeper.jp

参加者のblog

a-suenami.hatenablog.com

togetter(Tweet のまとめ)

togetter.com