DeNA Testing Blog

Make Testing Fun, Smart, and Delighting End-Users

モブプログラミングワークショップを開催した話

この記事は、モブプログラミング Advent Calendar 2019の20日目の記事です。

SWETグループの長谷川(@nowsprinting)です。

先日、AGILE MONSTERの及部さん(@TAKAKING22)をファシリテーターにお招きし、SWETでモブプログラミング(以下モブプロ)のワークショップを開催しました。

SWETの取り組みの中には、DeNA内の多様なプロダクト開発チームに対してテスト技術を伝える・サポートすることも含まれています。 その活動においてモブプロは有効な手段ではないかと考え、より効果的なセッションを運用するためのノウハウを得たいというのが目的です。

この記事では、ワークショップを通して感じたことなどをまとめて紹介します。

ワークショップ

ワークショップ内容は、及部さんの『Head First モブプログラミング』をカスタマイズした資料でのイントロダクション、モブセッション、発表会、振り返り、『小さなチーム、大きな仕事を実装するモブプログラミング』+αの講義、という構成でした。

+αの部分では、我々SWETが今後モブセッションをファシリテートしていくための知見を話していただけるようリクエストしていましたが、そのアンサーは

  • ファシリテートしない
  • カオスを受け入れる

の2点でした。 言葉だけ見ると突き放すようなインパクトがありますが、実際にワークショップを通して聞くと納得感を得られるものでした。

この2点のアンサーを含め、ワークショップ開催にあたって及部さんが整理されたであろう内容がアドベントカレンダー1日目の記事『モブプログラミングを導入するときに考えていること』に書かれていますので、ご興味ある方はあわせて参照をおすすめします。

モブセッション

モブセッションでは、3〜4人ごとのチーム(モブ)に別れ、それぞれ1台のPCで「自動販売機の機能を実装する」という課題に取り組みました。

f:id:swet-blog:20191220220405j:plain

以下、私のいたモブの話をします。

課題の「自動販売機」に対し、MVP(Minimum Viable Product)だけ定義してあとはTDD(Test Driven Development:テスト駆動開発)でやりましょう! と、一番早くホワイトボードから離れ作業に入りました。 しかし進めるうち、ストーリーでなく機能に目が行ってしまったり(例えば「品切れ」などの考慮をしはじめたり)、コレクションをどこに持つかのコンセンサスが取れていなくてホワイトボードに戻ったりと迷走し、最初のテストが通ったところで前半セッションを終了。

休憩後の後半から、ようやくTDDが回りだしたものの、最後にテストを壊したところでタイムアップ。成果物としては悔いの残る結果に終わりました。

タイピスト(ドライバー)交代にはMobsterを使いましたが、要所要所でコミットをちゃんと残すことに意識が行かず(結局はじめにgit initしただけでノーコミット)、実際の業務でモブプロする場合には別の交代契機を検討したほうが良さそうという学びを得ました。

個人の感想とまとめ

これまでは、モブプロの業務効率についてはあまり意識していませんでした。 しかしワークショップを通じて、通常の分担作業前後のミーティングがモブプロに包括される効果やフロー効率の良さを感じられ、普段からモブプロで業務を進めるという選択も現実的ではないかと思うようになりました。

特に、SWETとしては普段から自動テストの効用として、不具合を早期に発見にすることの価値を伝えていますが、モブプロによる細かい軌道修正は同様の効果がありそうです。

ほかに印象に残ったのは、同じSWETとはいえ普段同じプロジェクトで仕事をしているわけではないので、お互いのテストの書き方の違いを見られる・教え合えるのは新鮮で楽しい体験でした。 Pull Requestレビューでは経緯や細かい点までわざわざ書かないものなので、ペアプロ/モブプロをしないとわからなかったことでしょう。

今後の取り組み

テストなどのノウハウの共有を目的とするモブプロは、ペアプロに誘うより心理的障壁も低く、セッション中の負荷も軽いため、積極的に使っていこうと試行をはじめています。 そのために、(普段のチーム開発ではなく)アドホックに実施するモブプロに最適なテンプレート的なものの整備も進めています。

またモブプロでは、エンジニア経験が少ない人や他の職種の人であっても、まわりがナビゲートすることでタイピストが務まります。

ゲーム開発ではエンジニア以外の様々なロール1と連携して開発を進めていきますが、ところどころでモブプロに参加してもらうことでお互いの考えを知り、暗黙知を共有できるのではないかと考えています。 当初想定していた「テスト技術を伝える」ためだけではなく、モブプロそのものの良さを伝え、社内各所で試してもらえるように活動していきたいです。

以上のような試みに共感していただけた方、興味を持たれた方、一緒に働いてみようと思ってくれた方。 下記職種で採用しておりますので、ぜひご応募ください。お待ちしております。

テスト自動化エンジニア(Unity Test)

テストエンジニア (ゲームアーキテクチャ)

また、その他の分野へのご応募もお待ちしております。 募集職種に関してましては、本ブログサイドバーの「採用情報」の項目をご覧ください。


  1. プロデューサー、ディレクター、プランナー、サウンドディレクター、UIデザイナー、エフェクトデザイナー、グラフィックスプログラマー、QAなど