👨‍👩‍👦

「関係の質を高める」という観点でモブプロを推す

2021/08/19に公開

概要

私は学生の仲間と集まってFlutterでアプリ開発をしています。チーム開発をするとは言ってもいかんせん初心者の集まりなので、「壁にぶつかったときにいつでも複数人で対処できるようにしよう」ということで、つい先日チームの開発方式にモブプロ(ペアプロ)を採用しました。

最初は「なんか流行ってる感じもするしやってみるか」くらいの感覚だったのですが、モブプロを繰り返すうちに「メンバー同士の関係の質を高める」という点においてモブプロが優れていると感じるようになりました。今回はそのことについて深堀りしていきます。

関係の質を高めるとはどういうことか

この記事を書こうと思ったきっかけは、次の記事を読んだことでした。
https://3naoshi.com/t/project-management/16465

この記事は「関係の質を高めることで結果(成果物)の質も高めることができる」ということを、その因果関係を次の図で説明しています。私はこの図を初めて見たとき「まさにそのとおりだ」と思いました。

お互いを理解し合い、尊重し、信頼関係が築けるようになれば、メンバーの思考の質、行動の質は自然と高まっていき、自ずと成果はついてくるものだと考えています。

上の引用文の通り、この記事において「関係の質を高める」とは「お互いを理解し合い、尊重し、信頼関係が築ける」ようなことだと考えてください。

モブプロはどのように関係の質を高めるか

同記事では、関係の質を高める要素の一般論的な説明として次の4項目が紹介されています。ここでは、特に最初の3項目においてモブプロが秀でていることを説明します。

①単純接触効果

当然ですが、モブプロでは常に作業を共にするのでメンバーとの接触時間が増えます。接触時間が増えることで自然とお互いの理解が深まり、信頼関係を築きやすくなっていきます。単純ですが、侮れない効果です。

エンジニアの仕事は何かと個人作業が多くなりがちです。個人作業を中心として業務を設計すると、「関係性を作る」ということ自体が「業務とは別のタスク」となってしまい、取り組むのがなんだか億劫になります。しかし共同作業を前提とすることで、業務そのものを「関係性を作るための自然な仕組み」とすることができます。

②自己開示の返報性

モブプロによってお互いの作業内容を完全に開示しているので、信頼関係を築きやすくなります。

GitHub上で作業の結果を共有し、言葉で過程を説明することは難しくありません。しかし、過程そのものを共有していると「開示度」が段違いになります。メンバーの言語化能力があまり高くない場合、「相手の説明があまり理解できず、相手自体に不信感を抱いてしまう」なんてことがよく起きますが、モブプロならその心配はいりません。

③類似性の法則

モブプロ中は頻繁にお互いのベストプラクティスを共有・議論するので、モブプロを繰り返すうちに参加者の作業がひとつのベストプラクティスに収束していく傾向があります。例えばコードの書き方はもちろん、エディタの細かな設定やショートカットキーの操作などが(やはり個々人で好みは別れるものの)、徐々に似通ってくるのです。

相手の作業の仕方が自分のと似ていると、ふしぎと安心感をおぼえて仲間意識を育てやすくなります。また、ベストプラクティスを共有することで意思疎通がしやすくなったり単純に作業効率が上がったりするので、結果の質の向上にも直結します。

気をつけるべき点

モブプロを導入しさえすればいいのかと言われると、決してそうではありません。今までの経験で「今、モブプロうまくいっていないな」という感じる瞬間もいくつかありましたので紹介します。

ナビゲーターが指示しすぎてしまう

モブプロにおいてナビゲーターとは、ドライバー(コードを書く人)以外の人のことです。特に経験の浅い人がドライバーになると、ナビゲーターが過剰に指示をするあまり「ナビゲーターが脳、ドライバーが手」のような役割分担になってしまい、ドライバーが「脳死状態」になることがあります。

もちろん、経験者が指示をリアルタイムに出せるというのはアイドリング・タイムを減らすという観点でモブプロの大きな利点ですが、一方的な指示関係を築いてしまうと「関係の質を高める」という観点では良くないでしょう。

どうしてもエラーが解決できず、みんな黙ってしまう

これは初心者の集まりである私たちによく起こることなのですが、モブプロ参加者の誰も解決策を思いつかず、(各々が調べるなどしている間に)長時間黙ってしまうことがあります。

黙る時間が長いと雰囲気が良くなりにくい上、複数人で取り組んでいる分時間の損失も大きいです。チケットを複数用意しておいて、「10分詰まったら一度コミットして次のチケットに行く」などと決めておくと良いと思いました。

冷たい言葉遣いが続いてしまう

ずっと一緒に作業している分、言葉の蓄積の進み具合が早くなります。ドライバーの仕事の粗を指摘するような場面もちょくちょくあり、それが続くと辛くなってしまいます。

より気持ちの良い言葉を蓄積するために、うまくいったときには多少大げさでもポジティブな言葉を使うようにしましょう。また、オフラインでモブプロしているときはグータッチのような楽しいスキンシップも取り入れると良いと思います。

やってみてよかったと実感しています

共にひとつのプロダクトを作っていく上で一緒に悩む・一緒に喜ぶということがどんなに大事か、モブプロを実践してみて再認識しました。

自分はもともと個人作業志向で、「単独作業で最高速度を出して、一段落したら次に渡す」というリレー走のようなモデルを業務の理想としていました。1つタスクに対し同時に複数人で取り組むと、ムカデ競争のようになりスピードが著しく落ちると考えていたのです。

しかしモブプロでは、タンデム自転車のようなイメージで作業に取り組めています。ハンドルを握るのはドライバーだけですが、後ろの人は周囲を確認しつつ操縦者にない視点を提供するというドライバーにはできない仕事ができます。

また、漕ぐ力を分散しているので体力の減りを遅らせることもできます。実は、「1日の疲れが減った」というのが自分の中でモブプロの最大の利点です。

タンデム自転車

また、モブプロによって経験の浅い同僚にも心象の変化が見られました。以前の彼は自信なさげでどこかプレッシャーを感じているような雰囲気でしたが、モブプロを始めてからは楽しそうに作業をしており、「この細かい所自分やっとくわ!」のような前向きな提案も出てくるようになりました。彼自身も「何をすればいいかわからない時間が減ったからプログラミングが楽になった」と話してくれます。もしかしたらモブプロは、チーム内で相対的に経験の浅い人に特に効果があるのかもしれません。

一緒に仕事をしている人が楽しそうなだけで自分も楽しくなってくるので、導入してとても良かったなと感じています。

最後に

チームにモブプロを導入する際には、以下の資料を参考になりました。これからモブプロを導入しようという方、ぜひご覧になってください。
https://speakerdeck.com/cybozuinsideout/a-guide-of-mob-programing-in-cybozu
https://techblog.yahoo.co.jp/entry/2020052730002064/

また、再掲にはなりますが、本記事ではこちらの記事からたくさん引用させていていただきました。ありがとうございました。
https://3naoshi.com/t/project-management/16465

Discussion