XP祭りX に参加した

XP祭りの存在を知ったのは去年だけど、去年は忙しくていけなかった悔しさもあり、例のアジャイル同人誌を会場で販売するよという情報もあったので佐賀在住だけど気合で参加した。
※このエントリには色々とXP祭りに関係ないことも書いてあります

前日編

前回のtddbcにおいて

という事件があったのでいくつか調達してから出発。

当日移動中の話

行きは道に迷うだろうなーと思って30分早めに出発したら、案の定道に迷いました。
正確には、バスに乗り間違えて早稲田の別キャンパスに行ってしまった・・・ので気合で歩きました。
幸いにも早めに出発したおかげでぎりぎり間に合いました。ドジだな私。

オープニング「私の1冊」

セッション中に「エクセルより若い人が居るかもしれない(25歳)」という話が出ていたのですが、私は現在にぃにぃなのでエクセルより若いです。なので昔話っぽい話(?)は全然わからなかった・・・ちなみにトヨタ生産方式の本は現状読みかけ放置中。アジャイル系の本が軒並み積読状態なのはなんとかしないとなぁ。

社長パネル

印象に残ったものとしては、

Q. 社内・社外勉強会について何かアドバイスがあれば教えてください。

に対する懸田さんの回答

今愛媛に住んでますが全然人が集まらない。
人数少ないなら少ないで深い話しも出来る。
2人でも熱い話を。

これは地方勉強会に参加する一人として、そういう考え方もありだなとちょっと考えを改めるきっかけになりそうです。そしてもう一つは、

Q.10年前は2001/09/03、その時のあなたに何を言ってあげたいと思いますか?

に対する和田さんの回答

大学5年生だった。『卒論は書いてた方が良いよ。』
既にコミュニティに参加していた。
外の世界を見ていた。
無駄にはなってない。

・・・はい、書くことにします。


あと、その場で「社長の皆さんにとっての『私の1冊』はありますか?」という質問をしました。
オープニングセッションで『私の一冊』を題材にしていたので質問してみたかったのもありますが、どちらかというとどういうジャンルの本を挙げるのかなという興味本位でした。
全体的に、アジャイル関係なものそうでないもの含め面白い話が聞けてよかったです。
月1で寿司とか食べたいでござる。

TDDミニ

見学の人も参加という話になったのですが、人数が奇数だったため私は予定通り見学っぽいことをやっていました。うろちょろしてごめんなさいね。
コンテンツの時間配分が90分程度だったので講演自体は短め(LTっぽい)。話に出てきたのはテストの分類、4象限、TDDサイクル、黄金の回転だったかな。
お題はFizzBuzz。最初のちょっとだけ和田さんがやる・・・と思いきや、「俺だけ一人は寂しい」というのを受けて私もデモに参加しました。まぁ、今回は急いでデモだったので私は対話メインでほとんどキーボード触ってないですが。
参加者の方々は「1-100までのテスト」に悩んでいた様子。量に対するテストは、メソッド内でAssertを連打すれば確かにできるけど、仕様変更にもろいよねという。
これに対処するには

  1. 量に対するメソッドの仕様を決めて実装側に書く
    (もちろんTDDなので、一歩ずつ、テストコードから)
  2. 同値分割,境界値分析などのテスト手法を用いる

かなと個人的には考えています。
今回和田さんが仰っていたのは前者ですね。FizzBuzzであれば最小値と最大値を渡してリストを返すメソッドを実装し、中では先に作ったfizzbuzzをloopで順次呼び出せば複数個に対応できますし、単体整数用fizzbuzzメソッドやそのテストコードを変更せずに済みます。ちなみに大元の話の発端は「テストのほうにforを書くのはいいのか?」という話で、forを使うとその部分はロジックなのに、テストコードに書かれているためそのテスト内ではできない状況が発生するので、できれば実装側に書いたほうが良いという話でした(で、あってる?)。ちなみにifなどの条件分岐はテストコードに書いてはいけないですね。
で、後者ですが、ざっくり書くとテスト手法を使って(例えば)ある値をテストすれば他の同性質なデータも結果は保証できるだろうし境界値や無効値を網羅しておけば動作は保証できるよね、という感じ(ざっくりすぎで怒られそうなので後で加筆修正しまする)。こっちは実装側にメソッドを追加したくない(面倒くさい)ときに使ったりしてます。
privateなメソッドのテストは・・・そもそもテストしたいならprivateにしないタイプの人間なのでなんともいえません。最初にpublicで書いておいて出来上がったらprivateに変更してテストは消す、とかなのかな。リフレクションは個人的に好きくない。

裏コンテンツ「TDDBCBCミニ」

TDDミニ後に@さんとその場にいた@さんにお願いしてTDDBCについて議論してました、おつきあい頂きありがとうございます。お二人とお話したかった人、独り占め(?)してごめんなさい。
お二人ともお昼をあまり食べていないとのことだったので会場はビッグボーイに(私は事情によりお昼=ドリンク)。
内容は一部MLにあがってますがメモ書き程度にここにも載せておきます(勝手に載せてしまってもいいのかな・・・?)。

  • 私が研究用データを集めたい
    • 「ノウハウ共有の為に集まりませんか」とMLに投げたのも、時間があればデータ集めもでるかなという考えが少し入っていた
    • もしくは、そのためにイベントを開催したいなー
      • できれば2日間コース(人数集めたいので関東か名古屋かなぁ)
      • レガシーコード改善Boot Camp
      • TDDBCBC
      • リファクタリング特化気味なTDDBC
    • もちろんイベント優先なので、イベントに支障がでそうならあきらめる
    • 皆さんの日程次第なので無理そうなら以下略。やれそうなら11月か2月あたり希望。
  • 東京の参加者多い、最近開催頻度が多かった
    • 今後の開催予定が不透明なので「とりあえず来る」という人もいる
      • 定期的にやれるなら殺到することもなくキャンセル問題も若干解消される?
    • 人気がありすぎて避ける人もいる
      • なので小規模開催もやって来やすいようにするのはあり
    • 参加経験者はご遠慮願うとか
      • TDDBC参加未経験者の方が優先なので
      • だって「Boot」Campだもの
      • どうしても参加したいなら地方遠征という手もある(と後で思った)
    • スタッフとして参加願うとか
  • 首都圏と地方とは文脈をわけて考えた方がいい
    • 地方は開催ノウハウ共有と集客が課題
    • 地方開催サポートのためのノウハウ共有
      • 議論のためには具体性はほしい
      • 横浜開催で地方枠やスタッフ枠?
      • 参加経験は重要、地方枠のアイデアはよさそう
    • 地方でのニーズ
      • 実はそれほど多いわけではない
      • やりたい(参加したい)人が点在している状態
  • TDDBCで大事なのはTDDペアプロとレビュー
    • この二つがないとTDDBCじゃない!
    • 最初の講演を全部削ってでもこの二つはやるべき
      • 「いっそのこと俺の講演もLTにしてしまえばいいのか」
    • 言語リスペクトもあるが、小規模では限定してもいいかもしれない
  • 他に講演できる人ができたらよい
    • 東京は1.5に続き1.6もt-wadaさんにお願いしたことで「なら次もt-wadaで」という流れを作ってしまった感がある
    • 一度やれば後はどんどん講演者があらわれるかも?
  • 学生枠が欲しい
  • TDDBCで収益は考えていない
    • 地方格差と学生枠のためであれば事業化はなくはない

というわけで、LT祭り前の時間はすべてこの議論に使ったのでした。
ちなみに「俺は存在がpublicみたいなものだから」という名言(?)が飛び出したことも明記しておく。

LT祭り

楽しんで聞いて&見てました。同じLTでも発表方法が色々あって面白いですね。次XP祭りにいけそうなときは参加してみたいな。
あと、基調LTでも地方勉強会について言及があった。人数はたいして重要じゃなく、継続することが大事だよって。

頂きました

スポンサー提供の本を頂きました。該当項目は「関東以外からの参加」だったかな、ありがとうございます!

パターン、Wiki、XP ~時を超えた創造の原則 (WEB+DB PRESS plusシリーズ)

パターン、Wiki、XP ~時を超えた創造の原則 (WEB+DB PRESS plusシリーズ)

この本はずっと読んでみたいと思いつつ、でも購入の優先順位がなかなかあがらないのでどうしようと思っていたので、頂いた記念に一気に読んでしまうつもりです。

買いました

UltimateAgileStoriesを購入しました。師匠の分とあわせて2冊。

懇親会

たくさんお話したり聞いたりしました。
中には「そういう考え方・やり方もあるのか!」という内容もありとても面白かったです。

まとめ

祭りは楽しいですね!
関係者の方、参加者の方、ありがとうございました。来年も参加できるといいな。