Blog

リモートモブプロ支援ツール「mob」を使ってモブプロしてみた

この記事は、ニフティグループ Advent Calendar 2022 14日目の記事です。


今回は、モブプロ支援ツールの「mob」について紹介していきたいと思います!

モブプロとは?

モブプログラミング(モブプロ)とは、複数人の開発メンバー(モブ)がコミュニケーションを取りながら実装を進め、実際にコードを書く「タイピスト(ドライバー)」と、「その他のモブ(ナビゲーター)」に分かれて行うソフトウェア開発手法です。また、タイピストは一定時間で交代することが良いとされています。

モブプロのメリットとしては以下のようなものが挙げられます。

  • 一人で考え込まず、参加者と知識を共有し合うことで、素早く問題を解決できる
  • 複数人で確認し合いながら作業を進めるため、レビューの時間を短縮できる
  • 個人でそれぞれ持つ知見を他の参加者に共有でき、全員が共通認識を持って作業することができる。誰か一人がプロジェクトを抜けてしまっても、他の人がカバーすることができる
  • コミュニケーションが促進される

反対に、デメリットは以下です。

  • 大勢でのモブプロの場合、発言する回数が少なくなり集中が続かない
  • 全員で一つのタスクについて作業をするため、リソース効率は落ちる
  • 全員の予定を合わせるのが難しい

モブプロの概要やメリット・デメリットを踏まえた上で、モブプロ支援ツールである「mob」について触れていきたいと思います。

mobとは?

リポジトリ → https://github.com/remotemobprogramming/mob
mobとはモブプロをリモートで実施する上で便利に使えるツールです。
実装されているコマンド群を使って、以下のようなことができます!

  • タイマーを使った時間管理
  • Git経由で次の人へソースコードを渡すことができる(Git Handover)
  • モブプロ用にブランチを作成し、そこにcommitしていくので、ブランチをクリーンに保つことができる

なお、mobはGitHub上でOSSになっており、Go言語で実装されているようです。

インストール

基本的には以下のコマンドを使うことでインストールできます。

macOSの場合はHomebrewを使ってもインストールできます。

実際に使ってみる

必要なコマンドはmob startmob nextmob doneのみです!

mob start

まず、mob startでモブプログラミングを開始します。
mob-programming-testというリポジトリのmainブランチでモブプロすることを想定します。

git branchコマンドを見てみます。すると、mainブランチからmob/mainというブランチが新たに作成され、checkoutしていることがわかります。モブプロ中はこちらで作業していきます。

 

ちなみに、mob startはタイマーを設定することができます。以下のコマンドでは10と設定しました。現在時刻が19:57なので、20:07までの10分間のタイマーが設定されました。

10分経過すると、Macの場合はAppleScript (osascript)を使って通知されるようになっています。さらにsayコマンドを使って mob nextと読み上げてくれます。

mob next

mob nextは、タイピストが実施した全ての作業をコミットにまとめてリモートブランチにpushし、次のタイピストへGitを経由してソースコードを渡します。
作業の例としてsample.txtを生成します。

その後mob nextでタイピストを交代します。

次の人はモブプロが始まったブランチ(この場合はmainブランチ)でmob startを実行します。
mob/mainブランチにcheckoutし、前のタイピストが実施したところまでのコミットをローカルに反映します。

mob done

何度かmob startmob nextを駆使し、モブプロで実装する機能が完成したとします。
mob doneコマンドを実行し、派生元のブランチにマージしていきます!
ここではmainブランチへマージします。

あとはgit commitし、リモートブランチへpushするだけです!

まとめ

  • mobコマンドはリモートでモブプロをするときに便利!
  • それぞれのコマンドはGit Handoverで実現されているのでソースコードの受け渡しが簡単にできる!
    • mob start: モブプロを開始する
    • mob next: タイピストの交代
    • mob done: モブプロを終了する

リモートでモブプロを実施するときに使ってみてください!

 

明日は、@spicy_laichiさんの記事です。お楽しみに!

ニフティでは、
さまざまなプロダクトへ挑戦する
エンジニアを絶賛募集中です!
ご興味のある方は以下の採用サイトより
お気軽にご連絡ください!

ニフティに興味をお持ちの方は
キャリア登録をぜひお願いいたします!

connpassでニフティグループに
参加いただくと
イベントの
お知らせが届きます!