ミッションたぶんPossible

どこにでもいるシステムエンジニアのなんでもない日記です。たぶん。

モブプロでTDDしながら酒を飲む「テスト駆動飲み会」というイベントを開催しました。

はじめに

 この記事は「モブプログラミング Advent Calendar 2018」の7日目の記事になります。ポッカリ7日が空いてたからなんとなくエントリしてみました。(これで少なくとも11までは繋がるはず)
qiita.com



「テスト駆動飲み会」とは?

 本記事のタイトルのまんまです。お酒を飲みながらピザ食べながらテスト駆動開発(TDD)で遊ぶイベントをやっていまして、TDDを参加者みんなで楽しむ手段としてモブプロを取り入れています。
 メインナビゲーターは、アジャイルコーチとして活躍されている@yattomさんと、TDD Bootcampでスタッフとかもやってる@terahide27のお二人にお願いしています。
 会場は「駅すぱあと」でおなじみ、東京:高円寺のヴァル研究所さんにご提供いただいています。ポンデ先生、いつもありがとう!



きっかけ

 オレの記憶が確かならば、このイベントに参加したのがイベント開催のきっかけだったはずなんですよねぇ。

connpass.com

 オレが開催時刻までちょっと余裕を持って会場に着いたら、なぜかステージとは全然違うところに人だかりが出来ていたんです。なんだなんだとかき分けてみると、その人混みの真ん中で@yattomさんと若い男性が2人で1つのノートPCを叩いてる。「まだイベントも始まってないのに何やってんすか?wwwww」と聞くと、@yattomさんから「彼からTDDについて聞きたいと声かけてもらったので、じゃあ今からやりましょう!となったんです。」とシレッと返ってきまして。その時は正直感心したというか呆れたというかだったんですけど、周りで見てる人も含めて楽しそうだなぁというのはオレにも伝わってきました。


 イベント後の懇親会で再びこの話になりまして、@yattomさんから、「ああいうのをメインにしたイベントをやってみたいですよねぇ。ユルい感じで、お酒飲みながら、とか。」という希望が聞けました。ただ、@yattomさんは多忙で、イベントの企画や告知といったイベント開催のための諸々をなかなかやれないとのこと。じゃあその辺の雑用は引き受けるんで、一回やってみますか、とオレから言い出して、やっぱりたまたまイベントに参加していたポンデ先生に会場提供とか押し付けお願いして、それじゃあいっちょやってみるかと言う話でまとまりました。発案から開催決定まで10分くらいだったかしら。こういうのはやっぱり勢いですね。


開催

 というわけで、とりあえず一回やってみよう、と言い出したところから、なんのかんのと3回開催しました。大体隔月くらい(8月とか12月とかは忙しかったからスキップ)でボチボチやっています。
最初は飲食は参加者に持ち込んでもらうようにしていたんですが、2回目から主催側で用意したりとちょっとずつ改善してたりします。
tddrinking.connpass.com
tddrinking.connpass.com
tddrinking.connpass.com



モブプロ&TDDの進め方

 肝心のモブプロとTDDなんですが、基本的にも応用的にもメインナビゲーターの2人に任せちゃっています。もちろん、イベント開催中はオレも一参加者としてドライバーになったりナビゲーターと称しつつ酒飲んだりしてます。
 オレはモブプロをあまりやったことがないので、他との違いについてはなんとも言えないのですが、少なくともテスト駆動飲み会ではこんな感じでやってます。

  • ドライバーの持ち時間は1回あたり7分
  • タイマー(7分)が鳴るとドライバーは次の人に交代
  • 書くコードについて意見を言っていいのは基本的にはナビゲーターだけ
    • ナビゲーターから意見が出なかったり、ナビゲーター同士で意見がまとまらない時は、例外的にドライバーが主導権を持つ
  • ドライバーもナビゲーターも燃料(≒酒)は適時各個判断で投入する
  • モブプロで書くお題は参加者全員で話し合って決める
    • 今のところ、エディタやお題元はhttp://cyber-dojo.org/を用いている
    • TDD Bootcampで用いたお題を借りてきたことも
  • どの言語を選択するかも話し合いで決める
    • 今のところ「参加者の多くが一度も書いたこと無い言語」を選ぶことが多い


 個人的な感想ですが、モブプロのこのルールでやってるときは、全く知らない言語の方が気楽にコード書ける気がしました。Go言語とか参加者の誰も全くやったことなかったけど、意外になんとか動くものができたもんなぁ。あれにはビックリ。



それ以外で気をつけていること

 前述の通り、モブプロとTDDについてはメインナビゲーターの2人に任せているので、オレとポンデ先生はどちらかと言うと幹事というかイベンターとしての立ち回りを気をつけるようにしています。告知とか買出しとかは他のイベントでもやってることでしょうから割愛して、特にこのイベントで気をつけていることを2点だけ列挙しておきます。

メインナビゲーターがTDDとモブプロに集中できるようにする

 要はその他の雑用はまるっとこちらで引き受けるってことです。TDDやモブプロの進行はオレでは力不足ですので、その分彼らがそちらに注力してもらえるように準備して動くことには気をつけています。とはいえ、2人ともとても気配りをしてくれるので、あんまり苦労したおぼえはありませんが。ちなみに、オレの@terahide27くんの扱いは基本的にも応用的にも雑です。同郷だし同い年だし、まぁそんなモンだよな。

 社外勉強会の常で、ドタキャンや無断欠席への対策ってのがあるんですが、テスト駆動飲み会に関しては一切苦労しなくて良いようにしています。最悪、参加者ゼロでもオレとメインナビゲーターで酒飲みながらTDDやればいいかな、って思ってますし。(……あれ、それが一番贅沢じゃね?)
 食事や飲料の事前準備も、直前まで参加者状況を見極めた上で少なめに購入→足りなかったら途中で追加購入、みたいなやり方を取っているので、買いすぎて廃棄した、みたいなリスクが皆無です。まぁ、参加者の方がとても美味しい日本酒を差し入れしてくれて、のんべえ共が割とへべれけになった、なんて話はあったりなかったりしましたが。
 そもそもとして、これまでにドタキャンはともかく、無断欠席は一度も無いので、その辺は参加者の皆さんに凄く助けてもらっています。小規模のイベントならではのメリットを最大限に生かしている感はありますかね。

参加者の中にある心理的ハードルを徹底的に下げられるように立ち回る

 そういえばこの辺の話は@yattomさんともちゃんとしたことが無いんですが、そもそもイベントの立て付けが「平日夜の短時間に」「お酒を飲みながら」「ユルく」が前提なので、プログラムが完成するとか、TDDのやり方をしっかり学べる、とかを目指すのはどだい無理だと思っています。

 それよりは参加者のみなさんに「あれ、TDDって、意外と簡単に始められるんだ!」って思ってもらえることの方を重要だと思っています。
そのために、イベント中の雰囲気は終始ユルくなるようにかなり配慮しています(実は)。初っ端のドライバーはみんな手が挙げづらいので積極的にオレがやるようにつとめますし、参加者が来場するたびに乾杯しますし、なんだったらお酒も自分が率先して飲むようにしています。幹事だからあんまり飲んじゃダメだけど、雰囲気作りのためだからしょうがない!やむをえない!

 イベント自体は開催が浅いので、参加者同士の知り合いというのもあまりいない状態です。ですが、この辺はモブプロの強みなんですかね、みんなで画面見て同じコードについてなんとなく意見出したり、それを聞きながら書いたりしてると、なんとなく参加者同士で会話したような気になるんですよねぇ。積極的に参加者同士のコミュニケーションを促進する、なんてことは無理にはしないで、その辺もユルくやっていって、結果仲良くなっていければそれでいいかなと思っています。勉強の為に!なんて肩肘張らずに、楽しかったからまた行きたいなぁって思ってもらえたら個人的には凄く嬉しいです。


今後について

 特に何も考えてませんが、オレ個人としては、運営サイドのほかの3人に負担にならない範囲で、ユルく細々と続けていければいいかなと思っています。お酒飲めない方向けにちゃんとソフトドリンクも用意してますので、気が向いたら参加してみてください。

テスト駆動飲み会:Facebookグループ

テスト駆動Python

テスト駆動Python


f:id:takigawa401:20181207104230p:plain
※写真はポンデ先生からお借りしました。