◻️

Intellijのプラグインを使用して、モブプログラミングを試してみた

2023/06/19に公開

はじめに

最近、私たちのチームではモブプログラミングを導入してみました。
その際に、モブプログラミングとIntellijのプラグインを使用してみたので、使用方法などを簡単にまとめました。

モブプログラミングの概要

モブプログラミングは、チームメンバーが同じコンピュータを共有しながら行うプログラミング手法です。
一人がドライバーとしてキーボードを操作し、他のメンバーがナビゲーターとして協力しながらコードを共同で開発します。
モブプログラミングを採用すると「全員で同じタスクに取り組む 」ため,複雑な Git ブランチ戦略は必要なくなります。
プラグインを活用したり、mobコマンドを使ったりすると、ドライバーの交代が容易になり、
リモートワーク環境でも、モブプログラミンを円滑に進めることが可能です。

チーム開発でのモブプログラミングの利点

モブプログラミングは、チーム開発においていくつかの重要な利点をもたらします。
第一に、知識共有と協力が促進されます。
チームメンバーが一緒に作業することで、アイデアやスキルがリアルタイムで共有され、全体のプログラミング能力が向上します。
また、バグの早期発見や品質向上にも寄与します。ナビゲーターがドライバーのコードをリアルタイムでレビューし、潜在的な問題を素早く特定することができます。

プラグイン

Intellijにはモブプログラミングをサポートするプラグインがあります。
このプラグインには、ドライバーとナビゲーターの役割切り替え、
タイマーによるターンの制御、コード変更の履歴管理、コミットメッセージの作成など、さまざまな便利な機能があります。
これにより、チームメンバーはスムーズに役割を切り替えながら開発を進めることができます。

https://plugins.jetbrains.com/plugin/14266-mob

mob コマンド

上記のプラグインは下記のコマンドのサポートツールとなります。
実際に今回画面上で紹介する説明は、下記の操作と同様になります。

mob start 開始する時に使用(ドライバー交代時に最初に使用)
mob next -m "commit message" コミットする時に使用
mob done モブセッションを終了する時

https://github.com/remotemobprogramming/mob

設定

WIP Branch Name を変更すれば、mob-session 以外のブランチ名も使えます。
Base Branch Name は、チームで適切なブランチに変更できます。

開始する時(ドライバー交代時に最初に実行)

  1. Git > Mob > Start Mob Programming as Typost… を選択します
  2. 設定を確認し、OK を選択します

コミット

開発を進めて,コミットする時に、下記を実行します。
コミットメッセージはデフォルトだと mob next [ci-skip] となります。
挙動としては、git addgit commitgit pushをしてくれます。

  1. Git > Mob > Next: Handover to Next Typist… を選択します
  2. 設定を確認し、OK を選択します

終了時

開発を終了するときに、下記を実行します。
挙動としては mob-sessionブランチをgit pushをして,さらに Base Branch に git mergeするようです。
チームでは、プルリクエストを作る運用にしていたため、こちらは使用しませんでした。

まとめ

私は、プラグインを利用する前に、mobコマンドを使っていたので、
そちらと比較しても、遜色なく使えました。

コマンドを打ったりするのが苦手な方だったり、
GUIで操作したい方などは、プラグインを利用するのもいいと思いました。
(VSCode用もあるようです)

https://github.com/remotemobprogramming/mob-vscode-gui

レスキューナウテックブログ

Discussion