Gaiax Engineers' Blog

Gaiaxのエンジニアブログです。 社内の様子をありのままに発信していきます。

楽天クリムゾンハウスでモブプログラミングを体験してきました!

こんにちは、技術開発部の菊池です。 TRUST DOCKチームで最近までスクラムマスターをしていましたが、最近はプロダクトオーナーをしています。 スクラムで開発を続けているチームですが、機会があり楽天の新規事業チームで行われているモブプログラミングを体験させていただけるということで行ってきました。

クリムゾンハウス

楽天株式会社は、みなさんご存知の企業だと思いますが、今回はあのクリムゾンハウスにお邪魔してきました。休日には、たまに二子玉川riseへ買い物には行きますが、その奥にあるクリムゾンハウスには入ったことがありません。機会があれば入って見たいと思っていましたのでとてもラッキーです!

入り口の写真は撮り忘れてしまいました。大失敗。

いよいよオフィスにはいっていきます。とても緊張します。なかに入ると広い空間ととても大きなディスプレイ、多くの外国人メンバーが目に付きました。中の写真はNGということでお見せできませんが、高層階の景色とあわさってとても開放的なのと、とても多国籍なのが印象的でした。

いよいよ体験!

今回、体験の対応をしてくださったのが、及部さん、佐藤さん、川口さんでした。お忙しい中対応してくださり感謝しかありません。

さて、体験の前に今回モブプログラミングするお題の説明です。
実際に新規事業で開発しているプロダクトで人事やHRをターゲットとしたものでした。いくつかの機能があるのですが、自分たちが今回取り組んだのはスキルマップツールです。開発チーム内の役割がいくつかのロールとして定義され、そのロールにはレベルがあり、そのレベルごとの定義を導入する企業やチーム自らが設定していくというものです。RPGゲームを摸してありました。
現在、このスキルマップツールには保存されているデータを表示する機能はあるのですが、新規作成や変更した際の登録機能がなく、その機能を実装しましょうというものでした。

f:id:sohismyson:20170619142306j:plain 実装前の説明を熱心に聞いています。

f:id:sohismyson:20170619142600j:plain まずはプロダクトを理解するために、レベル毎にできることをみんなで定義していきます。 モブ定義です!

f:id:sohismyson:20170619142737j:plain 実際にモブプログラミングでコードを書いて行きます。普段利用していないPHPと初見のコードでしたが、わいわいしながら書いています。

f:id:sohismyson:20170619142935j:plain 途中、pinoの差し入れも頂きました。体験させていただいているのにさらに感謝です。

f:id:sohismyson:20170619143034j:plain f:id:sohismyson:20170619143102j:plain さらに全員がドライバーを体験していきます。普段、絡みのないメンバーでも遠慮なくワイワイしながら書いていきます。

f:id:sohismyson:20170619143348j:plain 全員の体験も終わり、楽天の新規事業チームでモブプログラミングを取り入れた経緯や取り入れ方、良いとこや注意することなどをお聞きすることができました。Gaiaxのメンバーも興味深々で質問や、いろいろな意見交換がなされました。

まとめ

モブプログラミングいい!!!!前々から取り入れたいと考えていましたが、一層取り入れたくなりました。
もちろんプロダクトの内容やフェーズによって向き不向きはあると思いますが、「動くプロダクト」が中心に置かれ、関係者全員がそのプロダクトに向かって話されているのが何よりもよいです。ペアプロなどと同じでナレッジの共有、ペア間の学習、トラックナンバーの増加などの効果がありますが、何よりも「動くプロダクト」が中心の開発が真骨頂だと感じました。 反面、人数の多さやいろいろな意見を理解して、コンセンサスをとっていくところなど、とても疲れます。「まあいっか」「とりあえずやってみよう」がとても重要だとも感じました。

楽天の及部、さんは、「スクラムなどのアジャイルな開発をしてきたけれども、モブプログラミングはどのアジャイルな開発よりもアジャイル」とおっしゃってましたが、今回の体験を通して自分もそれを感じることができました。手法はあくまで手法なので、本質を見据えながらより良い開発ができるよう柔軟に行動していきたいと考えました。

最後になりましたが、お忙しい中体験の機会を提供してくださった楽天のみなさま、本当にありがとうございました。

その後

TRUST DOCKチームでモブプログラミングにトライしています。メンバーのコメントをいくつか紹介して終わりにしたいと思います!

  • 初めて見るコード、知らない言語でもほとんど詰まらないのがすごい
  • 常にチームの誰かの知恵の輪の最大(?)が活きる良さを再認識した
  • 楽天さんのチームでは、常にモブ前提にすることで共有やタスク分担のコミュニケーションの悩みを一掃しているのが画期的に思えた
  • その一方で、毎日振り返りすることで改善のループを早く回しているのも良かった
  • 朝会をなくして毎日振り返りを実践してみていて、良い感じ
  • 常に3人一緒なので、短い時間で、その時点での最も良い仕事が出来ている気がします。