テレワークでの働き方はモブワークがいいと思う

本記事は [NECソリューションイノベータ　Advent Calendar 2021](https://qiita.com/advent-calendar/2021/nec_solution_innovators)の12/19の記事です。

## はじめに

私のチームは、2020年のコロナ禍で立ち上がったチームであることや、チームメンバが日本全国に分散しているということがあり、ほぼ全員テレワークでリモートで業務を行っています。

テレワーク（リモートワーク）前提だからこそ効果を発揮できるような働き方をチームメンバと模索した結果、モブワークがいい感じに効果を発揮したので、本記事ではテレワークにおけるモブワークの利点を紹介します。

## モブワークとは

ペアプログラミングという言葉は聞いたことあるかと思います。エクストリームプログラミング（XP）の中のあるプラクティスの１つのアレです。
ペアプログラミングは2人1組でプログラミングを行うことで、モブプログラミングはそれを2人と決めずに複数人で行うことらしいです。

このモブプログラミングを、プログラミングに限らず、色々な作業（資料作成、プログラミング、事務作業など）でやってしまうことを`モブワーク` とこの記事では呼んでいます。

### モブ用語

- モブ
  - 集団という意味
- ドライバー
  - キーボードやマウスなどを操作し、実際にアウトプットをしていく人
  - 車の運転のドライバーと同じく、ハンドルを持って自分の意思を持って進むべき道を最終的には決めていく人
- ナビゲーター
  - ドライバー以外の残りのメンバー
  - ドライバーがわからないことを調べたり「こうしたらどう？」とフォローしたりする人
  - 車の助手席に座るナビゲーターと同じく、実際にハンドルを握らないけど「こっちは渋滞してなさそう」「次の十字路を右に行くといいよ」みたいにドライバーのフォローをしていく人

## テレワークにおけるモブワークのよい点

私が思う、テレワークでモブワークを採用するよい点を挙げてみます。（もちろんデメリットもあると思いますが、私としてはメリットが多かったのでこの記事ではいい点だけ挙げてみます）

### 寂しくない

1人でテレワークでずっと作業していると、寂しいですよね？
特に１人暮らしの人でテレワークをしていると「今日１日誰とも話さなかったな」みたいな人もいるんじゃないかと思います。

モブワークをしていれば寂しくありません！

また、新たにチームメンバに入った人がいきなりテレワークだと、なかなかメンバと仲良くなるまで時間がかかってしまいますが、なぜかモブワークをしていると一気に仲良くなれます。

### 仕事を後回しにしなくなる

予定を決めて、周りのメンバがいる状態で作業を進めるので、作業が後回しになったり、ダラダラ作業をすることがなくなります。

テレワーク中心になると、セルフマネジメントの割合が増えて、作業順番など自分の裁量で決めていくことが多くなると思いますが、つい面倒くさい仕事は後回しになりがちですが、モブワークで実施することを宣言しておくと後回しになりにくいという点もいい点かなと思います。

また、1人で作業していると数時間作業ぶっ通しとか普通にあるのですが、みんなでやると、ちゃんと休憩時間を取るということも意識するようになるので、その点もいい点です！

### 意外と効率的

「モブワークって、工数が参加人数分かかるから非効率そう」
って思う方もいるかもですが、意外と以下のような作業が削減されるため効率的になったりします。

- **レビューという時間がほぼ不要になる**
  - 作成→レビュー→再修正というプロセスがなくなる
- **作成と調査を並行してできる**
  - ドライバーが作りながら、ナビゲータが調べて解決策を見つけるというように、同時進行で作成と調査ができる
- **他の人に情報共有や説明しなければいけない内容も一緒に作業するので省略できる**
  - 例えば、自分が休暇のために代理で他の人にお願いするなどのときに、モブでやってれば共有や説明が不要になる
- **必要性が低い作業を捨てられる**
  - 自分１人では「これいらないかも」という作業があってもなかなか捨てるという選択肢が選べない場合があるが、みんなの意見を聞きながら進めるので「いらないね〜」って必要性が低い作業を捨てる（やらないという選択をする）ことがやりやすい

テレワークで行うことで、特にナビゲーターの人が、通常の出社して１つの画面を複数人で見ながらモブワークするよりも手元の画面で作業しているところを見ながら別のウィンドウで調査したり、調べた画面をすぐに画面共有したりできるので、集合して行うよりも効率的・効果的なんじゃないかなーと私は思ってます。

### 暗黙知を共同化でき、表出化も一緒にできる

モブワークを行うことで、その場の全員で暗黙知を共有（共同化）できるので、１人だけの暗黙知でなくなります。
なのでいざという時にチームメンバに頼れたり、自分の作業でもつい忘れてしまったりしたことを、みんなで思い出せたりします。

また、その暗黙知を他PJ・他組織への共有を行うために言語化・図解化などを行う際もモブワークで行うことで以下のような利点もあると考えています。

- 個人が「あたりまえ」と思っていた内容もアウトプットされるようになる
- 日本人は自分のスゴイ部分をなかなかストレートに表現しないところがあるが、他の人に「それスゴイから書こうよ」と言ってもらえるとアウトプットできる

というようなことをチームメンバと工夫しながら手探りで進めていたのですが、後から知ったのですが、このプロセスに名前が付いてました。
`SECIモデル`というらしいです。

![SECIモデル](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2277521/9f936b1c-cf81-f719-f1b1-f58a86a55d3b.png)

## モブワークの始め方

私のチームでやっているモブワークの始め方は以下３種類です。

### 1. メンバ全員に任意参加で予定発信をする

Outlookの予定に、任意参加でメンバ宛にモブワークをする旨を発信します。
すると、なんだかんだみんな優しいので、1〜2人は必ず参加してくれます！

### 2. チャットツール（SlackやTeams)で呼びかける

SlackやTeamsで、メンバ向け（場合によっては組織全体向け）に「今からこういう作業をモブでやりまーす」って全員メンションで投げます。

そうすると都合の合う人・作業内容に興味がある人（特にプログラミングのモブだと興味ある人が参加してくれることが多い）が参加してくれます。

### 3. モブワーク用のボイスチャットチャネルを作って、気付いたら入る

メンバ全員が自由に出入りできる、モブワーク専用のボイスチャットチャネル（私のチームでは後述のSlackのハドルミーティングを使ってます）を作成し、誰かが入ってモブワークやってたら、自由に出入りします。

この方法のいい点は、とりあえずボイスチャットチャネルに１人で入って作業を開始しておいて、誰かが気付いてくれたら自然にモブワークが始まるという点です。

例えばモブワークに誘いづらい（別に誘ってもいいのですが）出張精算とかの事務作業とかをやっているときに、ふと誰かにモブに入ってもらってやり方を教えてもらうとかができます。

## モブワークで使うツール

### 画面・音声共有
- Zoom
  - 言わずと知れたZoomです
  - 画面共有しながら話しながら、ときにはチャットで参考URLを送ったりしながらモブします
- Slack（ハドルミーティング）
  - 前述したモブワーク用ボイスチャットチャネルを作成し、[ハドルミーティング](https://slack.com/intl/ja-jp/resources/using-slack/solve-problems-aloud-with-slack-huddles)の機能を使ってモブします
  - こんな感じで誰が入っているのかが、会話に入っていなくてもわかります（モザイクかけちゃってますが）

![slack.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2277521/4ddfd140-061c-bb7f-268a-09cda6b090a2.png)



### ドキュメント作成
- Notion
    - 主にチームメンバとの表出化作業に使用しています
    - ブラウザ上でサクサクと動くのと、Markdownで書けること、リアルタイムで複数人が書き込んでも遅延がないことがあり、私は好んで使ってます
    - こんな感じで同時に誰がどこを閲覧しているのか、編集しているのかがわかります
![notion.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2277521/076ce77c-7dc6-0082-854a-c4ebf7f1cd90.png)


- Box/SharePoint
    - Officeドキュメントなどは、BoxやSharePointなどを使って共有しながら作成しています
    - PJによってBoxとSharePointは使い分けています

### アプリケーション開発
- Visual Studio Code（Live Share）
    - ネイティブアプリの開発など、ローカルでビルドして動作確認等を行いたい開発で利用しています
    - 誰がどの行を見ているのかがわかるので、ナビゲーターからコメントもらうときにも「ここの内容が〜」という会話で理解できます
- Cloud9
    - Webアプリの開発など、ライトな開発を行うときに利用しています
    - みんなで同じ環境を使うので開発環境差異が発生しないという利点もあります

## まとめ

テレワークでモブワークをやるといいよ！
寂しさも解消できるし、効率的だしいいよ！
ツールを使いこなすと更にいいよ！

## 参考

- [Slackハドルミーティングで話して問題を解決する](https://slack.com/intl/ja-jp/resources/using-slack/solve-problems-aloud-with-slack-huddles)
- [Notion](https://www.notion.so/ja-jp/product)
- [Visual Studio Live Share](https://visualstudio.microsoft.com/ja/services/live-share/)
- [AWS Cloud9](https://aws.amazon.com/jp/cloud9/)