こんにちは、新井です。 子供と並んでアゲサゲコンボするのが愉快な今日この頃です。
チームでリモート環境を前提としたモブワークを始めて約1年が経ちました。 当初部分的に始めたモブプロが、プログラミング以外に領域を広げてモブワークになり、モブをベースとして仕事をするようになり……という変遷がありました。この経験で得られた知見を共有したいと思います。
リモート環境で"1つのことを考える"ことの重要さ、困難さ
モブワークを始めた当時「モブプログラミング・ベストプラクティス」*1を読みました。 かなり詳細かつ具体的にモブプロのプラクティスが紹介されていましたが、 物理的に同じ場所にいることが前提になっていて、そのまま自分たちに適用できないなーと思ったのを覚えています。
私が思うに、モブプロ、モブワークをする上で最も重要なポイントは「1つのことを考える」です。
モブワークには知識の共有・同期をはじめとした様々なメリットがありますが、 それは漫然と作業をしていては得られません。
参加しているメンバーがその時の作業対象に集中し、同じものについて考えている必要があります。 対象に集中して、出てくる疑問・アイディア・自分の理解を会話しながら作業を進めることで、メンバーは知識を深めることができます。 つまり「メンバー全員が1つのことについて考えている」状態です。
しかし物理的な場所にある強制力がリモート環境にはありません。 そもそも各自がPCを使っているわけで、簡単に気を散らすことができます。 気の乗らないミーティングでこっそりチャット読んだり無関係な作業をする、 いわゆる内職の経験は多くの人があると思います(私もそうです)。 経験的にはモブワークで内職が始まるとあっという間に効率が落ちますし、 モブという形式で仕事をやる意味も揺らいできます。
「やることリスト」メソッド
そこで、参加者の集中を維持し高効率なモブワークをするために 実践とふりかえりを繰り返して見つけたのが「やることリスト」です。
必要なもの
- 共同編集可能なドキュメントツール
リアルタイムで同時編集できるドキュメントツールを使います。 弊社ではConfluenceを使っていますが、個人的なことを言えばScrapboxが好きです。 Googleドキュメントでも可能だとおもいます。
この他には、Chatwork LiveやGoogle Meetのようなビデオ通話システムなど、リモートワークの環境が整っていれば十分です。
やり方
- モブの開始時に、参加者全員で同じドキュメントを開きます。
- 次のような見出しを作ります。
- 気になること
- やること
- ソロ
- モブ
- まず全員で「気になること」をざっと書き出します。
- フリーワード、チケットやPull RequestのURL、チャットの発言へのリンクなどでも良いです。
- 書き出し終えたら、話しながら「気になること」リストを「やること」に移していきます。
- モブワークでやるものは「モブ」の下に時間順に並べ、モブとは別に個人でやることは「ソロ」にします。
- やらないことにしたら消しても良いでしょう。
- 移し終えたらワーク開始です。「モブ」のリストの一番上のものについて、どう進めるかの作業過程をまたリストにします。
- 「これはAをやって、Bをやって、Cをやれば終わりだね」という会話をしたなら、その作業の下に「A」「B」「C」をリストにしましょう。
- どう進めるかの認識が違えば確認しましょう。「Bって何やるの?」「これは本当に必要?」のような会話があるはずです。
- 実際の作業を行います。
- 適宜休憩を入れながらこれ(5.〜6.)を繰り返します。
- 終わった作業には✅をつけると達成感があっておもしろいです。
- 1日のモブの終わり、またはメンバーが抜けるタイミングで情報を整理します。
- これを クロージング と言います。
- 次のことを話します。15分程度あると良いでしょう。
- そのモブセッションでやったことの振り返り
- 次のモブでやることのおさらい
- 次のモブまでの間、ソロで活動する作業内容
- モブで仕掛かり中の作業について、ソロで独自に進める部分と、モブで合わせて進める部分
- ソロで作業するために必要な情報(設計方針や資料のありかなど)
その他のルール
やることリスト以外のルール/運用はこんな感じです。
- 1日の最長時間は5時間とする。MAXで午前2時間+午後3時間。
- 1モブ単位で30分〜1時間を目安にして休憩を入れる。
- 1休憩単位は10分〜15分。
- ドライバーの交代目安は1モブ単位。疲れるのでドライバーはずっと続けない。
効果・効能
- 人間は「聞いてるだけ」だと気が散るものです。「書ける」ところを用意することで、集中を促す効果があります。
- 集中が切れるとカーソルが動かなくなるのが分かります。休憩など声かけの契機になります。
- 作業中に白熱して方向を見失うことがあります。「今何やってるんだっけ?」「次何やるんだっけ?」となった時に、やることリストに戻ってくると軌道修正できます。
- 休んだメンバーや、ちょっとモブを抜けて戻ってきたメンバーとの情報共有・知識同期が楽になります。「こんなことをやった」「今これやってる」がリストを見ればわかるようになります。
- 書いたリストがそのまんま作業日報になります。
- 作業自体ではなく、その進め方や考え方を作業過程として書くのでメタ的な思考を知ることができます。対象領域に詳しい人の知識を吸収する時に特に効果的です。
実例
先週のやることリストはこんな感じでした。
- 1週間のスプリント期間につき1つのドキュメントにしています。前後の文脈が追いやすいためです。
- 「ソロ」のリストは個人ごと、「モブ」のリストは午前と午後に分けてるのもポイントです。
- ミーティングの予定も入れて議事録へのリンクを貼っておくと完璧です。
- 開発タスクでは、Pull Requestの概要により細かいレベルで「やることリスト」を作ったりもします。
まとめ
チームで実践している「やることリスト」メソッドを紹介しました。 リモート環境下でモブワークをされる方の参考になれば幸いです。