新入社員のモブプロ体験記

f:id:val-fukui:20211220185648p:plain

ヴァル研究所 Advent Calendar 2021 22日目の記事です。

はじめまして。
MaaS事業部 mixway Teamの小形です。
今年の4月に入社し、7月に現在のチームに配属となりました。

普段は、複合経路探索サービス「mixway API」の開発や保守などを担当しています。
この記事では、所属チームで行っているモブプロについて私が実際に経験したことを共有したいと思います。

モブプロとは

モブプロとは、「モブプログラミング」の省略表現で、3人以上のエンジニアで1つのプログラムを書くことです。
実際にプログラムのコードを書くドライバーと、コードを見ながら指示を出すナビゲーターという2つの役割に分かれて作業します。ドライバーは常に1人で、ナビゲーターは複数人で行います。

初めてのモブプロ

モブプロをするきっかけは、チームの方針でモブプロでプロダクト開発を行っていこうとなったからです。
自分はこれまで、複数人でプログラミングをしたことがなかったので、不安と期待を持ちながらモブプロに参加しました。

モブプロをする開発メンバーは

  • 入社2年目の先輩社員
  • 入社1年未満の社員
  • 新入社員 (自分)

です。

この3人でドライバーとナビゲーターに分かれて、プロダクト開発をモブプロでやってみました。
初めてモブプロをする中で、難しいなと感じることが多々ありました。

難しいなと感じたこと

  • ドライバーとナビゲータの交代タイミングがわからない
    • キリがいいところまでという切り方で交代タイミングを設けていましたが、キリが悪いのでもう少しだけ、となることが多く、気がつけば1時間くらい同じ人がドライバーをやっていた、というようなことがありました
  • メンバーの発言量が偏ってしまう
    • プロダクトの知識量を1番持っている人の発言がどうしても多くなってしまうことが多々ありました
  • 質問するタイミングが難しい
    • プログラミングをしている最中にわからないことがあっても、流れを止めてしまうのではないかという心配から質問できないことがありました
  • チームメンバーの理解度がバラバラ
    • 前述のことから、質問ができず、理解できていないまま開発が進んでしまうことがありました

ルールを作成

このままでは良くないということで、モブプロのルールを作成することにしました。
チームメンバーとプロダクトオーナーでモブプロに関するルールを作成する時間を設けました。

作成した主なルール

  • ドライバーは10分で区切って回す
    • ルールを決めるまでは「区切りがいいところで交代」とざっくり決めていました。しかし、区切りがいいところはこないため、時間で区切ることにしました
    • 実際にドライバーになって手を動かすと、ナビゲーターの時よりも理解が深まりました
    • コミットだけできなかった、などのケースも発生するので、アディショナルタイムとして5分設けました
  • ドライバーが変わったタイミングで、次にナビゲーターをする人が「やったこと」「これからやること」を共有する (1分くらい)
    • この作業をやることで、「10分間で何をしたか」「今から何をするのか」の整理ができ、チーム全体で共通認識を持つことができました
    • 次に何をしないといけないのかが明確になるため、作業がスムーズに行えました。また、この時間を設けることで、モブプロをしている10分間の中で理解できないことがある場合は、時間をとって、理解するまで、この時間で質問しました
    • 短いスパンで整理する時間を設けることで、自分自身の理解度も上がりました

そのほかにも

  • モブプロは4時間まで
  • ドライバーはナビゲーターの要望を理解できない時にわかるまで質問する

などのルールを取り決めました。

回り始めた感覚

上記で決めたルールで改めてモブプロをすると、自分自身の理解度も増え、積極的に発言できるようになりました。また、チーム全体としても自然と発言が増え、チーム全体で1つの問題に立ち向かっている感じが出ました。

はじめに挙げた「難しいなと感じたこと」を解決できたと感じるとともに、何事にもルールが必要だなと再認識しました。

モブプロをやってみた感想

個人的には、1人でやるよりも、モブプロで作業する方が好きだなと感じました。チームで問題を解決している感じが良いなと思います。
さて、最後に、自分がモブプロを通して感じたメリット・デメリットを書いていきます。

モブプロのメリット

  • レビューの手間が省ける
    • チーム全体で確認しながらプログラミングをしていくため、メソッドの挙動や細かい文法などのレビューを簡略することができました。そのため、開発から製品リリースまでの時間が早くなりました
  • 知識が増える
    • モブプロでは、自分が知らないプロダクトの知識や、プロダクト以外の細かい知識 (ショートカットキーなど) をチームメンバーから教えていただくことが非常に多かったです。そのため、1人で学習するよりも、知識が増えた感覚がありました

モブプロのデメリット

  • むちゃくちゃ疲れる
    • モブプロをしている間は、喋っている時間の方が多いため、1人で黙々とコードを書く時よりも疲れます。終わった後は、脳みそが働かないくらい疲れます

最後に

初めてモブプロを経験した感想を書きました。
現在もチームでは、モブプロでいろいろな開発を進めています。何か新しい発見などがあれば、また共有できたらと思います。

最後まで読みいただきありがとうございました。

明日、23日目は製品開発部の遠島による「ゼロから始めるAndroid開発入門」です。お楽しみに!

vallaboratory.hatenablog.jp