天の月

ソフトウェア開発をしていく上での悩み, 考えたこと, 学びを書いてきます(たまに関係ない雑記も)

アジャイルザムライ矢田のペアプロ100人斬り【aki.mさんとTDD対決】のふりかえり

creationline.connpass.com

こちらのイベントでコードを書いてきたので、そのふりかえりです。

イベント前

一度だけ簡単に打ち合わせをしましたが、何もしていませんでした笑

今回は、「ライブ感をすごく大切にしたい」「その場でお題に向かって対決形式でコードをペアプロして欲しい」というオーダーをいただいていたので、事前にこんな風にやるとうまくいきそうとかはまるで考えないようにしてほしいという話もあったので、本当に何もしていませんでした。

イベント中

開始直後

会が始まってTDDというコンセプトの説明があったとき、「あれ、そういえばそうなんだっけ?」と思いました。
また、勝敗の観点説明があったときにドライバー/ナビゲーターの観点があって、「普段ペアプロしているときの様子を見せるイベントなんだっけ?」となり、どういう風にやればいいんだっけ?と混乱しだしました。

そこで、矢田さんとどういう風にやるのかのイメージがズレていると嫌だな、イベントのゴールみたいなものを設定したほうが良さそうだな、と思いとりあえずUIやコンソールなどで動くようなものを作るところを目指しましょう、と提案したのを覚えています。

いよいよ始まるんだな、ということでワクワクしていました。

1サイクル目

矢田さんが「先攻で」といったとき、個人的に先攻はナビゲーターのイメージがあったのですが、ドライバーを選択されていて、少しだけ驚きました。
その後、ドライバーの矢田さんが結構がんがん主導して実装されていたので、もともとのコンセプト通り対決を意識してガンガン実装しているのかな?という気持ちと、「先攻で」の発言で少し驚いたことをトリガーに、もしかしてドライバーとナビゲーターを逆にイメージしている?でもそんなことを声に出したらもし違った場合失礼だよな...?*1と思って、コードにはあんまり集中できず、どんな感じで振る舞うといいのかを悩んでいました。

2サイクル目

1サイクル目で自分がイメージしていたところの半分くらいの進捗だったので、時間的にガンガンいかないとまずいよなーという思いが出ていました。
また、自分がドライバーになって久しぶりにコードを人前で書くのでかなり緊張していたのと、Javaを全然書いていなかったこともあってIDEのショートカットを全然覚えていなかったので矢田さんに比べると操作が大分遅くなってしまいそうな気がして心配していました。

ただ、実際コードをIDEに入力してみると、なんともいえない幸せな感覚があったのと自分が初めて触った言語がJavaでそれを久しぶりに書いていることがすごく楽しくなって、イベントであることを忘れるくらい没頭した感覚がありました。

時間も一番あっという間に過ぎました。

3サイクル目

時間を見て、これはもともとイメージしていた動くものに行くまでには距離がありそうだと思ったのと、このまま行くと普通に負けそうだとなんとなく思ったのと、どうも目の前の実装と自分が頭に描いていた実装の乖離が激しそうだと思ったのとで、ガンガン実装をしていきました。

自分の中では割と変更の仕方に自信があったのですが、目の前の実装と自分が頭に描いていた実装の乖離が激しかったこともあってうまくナビゲートができず、矢田さんに申し訳なかったなあと思いました。

4サイクル目

3サイクル目の反省を踏まえたのと、時間的にUIやコンソールで動くものを作るのは無理だなあという想いが出たのとで、歩幅を狭めました。
一番教科書的にまともなサイクルだったのかな、とは思った一方で、もし業務で同じ状況だったらもっと歩幅を広げるなあと思ったこともあって、ちょっとイベント感を出しすぎたな、とは思っていました。

イベント後

現地参加者とふりかえり

みんなコメントを見て面白がっていたそうで、コメント欄を盛り上げてくださった皆さんには感謝しかないです。
また、あのまま実装するとどうなったか?もっといいモデルがあるんじゃないか?というのをみんなで議論していました。

その後は懇親会に行って、色々感想を聞きました。以下、出ていた印象的な感想を挙げていきます。

  • イベントのコンセプト通り本当の意味でのライブ感がすごかった
  • TDDをしたかったんだっけ?というのがあった。実際TDDしていなかった
  • コードを書くイベントは本当に尊いと思った。それもリアルに書いているからすごいよかった
  • 自分ならどうするんだろう?と考えながら見れて面白かった
  • よくあるお題とかではないのに、ぶっつけ本番で当事者としてコードを書いていたのがよかった
  • 対決する必要ないのでは?と思った。ペアプロなのに対決って変な感じでは?
  • お題が1時間にしてはあまりにも難しすぎたように感じた
  • もうちょいモデリングとかしてから望んだほうが良かったのでは?と思った

帰宅

久しぶりにコードを緊張感が適度にある場面でかけて良かったなあと思いましたし、帰りの電車の中でも改めて最初から自分一人ならどういうコードを書くかな?と考えながら実際にコードを書いたりしていました。

もっと良いコードを書きたいな、もっと上手にプログラミングとか設計をしたいな、あの人ならどうしていたんだろう?とかがすごい頭を巡っていて、すごい久々に心に火がついたような感覚がありました。
最近は実はもうエンジニアとしての仕事は無理なのかなあとか思う場面があったり、コードを毎日書く習慣がやや惰性気味になっていて、技術的な自習はコンフォートゾーンに閉じこもった学習が増えていたのですが、エンジニアとして仕事をしていたときの感覚がすごい思い出されたし、大変なことはたくさんあったけれどあのときは楽しかったな、という記憶もすごい鮮明に蘇ってきたので、個人的には一番このイベントで収穫が得られたポイントでした。

*1:実際勘違いはしていなくて、普段業務でやっている、守破離の離によっているペアプロスタイルを実践されていたそうです