この記事を読む人
モブプロよく聞くけど、どうやるんだろうと悩んでる人
※モブプロとは、複数人でコミュニケーションを取りながら実装する手法
きっかけ
DevOpsDays Tokyoというイベントに参加してきまして、兼ねてからやろうかなと思ってたモブプロが紹介されたのと、
たまたまエンジニアが集まる機会があったのでサクッとやってみた報告です。
モブプロの様子(30min)
準備(10min)
当日集まったエンジニアは私除いて6人で、"実装に関して"ビギナーが2人、ジュニア~ミドルが3人、シニアが1人という内訳でした。
で、お題はleetcodeの回文判定(※1)をチョイスし、初めての人もいたのでleetcodeの使い方や問題文を解説しました。
その後、ジュニアのうち一人Driver(彼の画面を共有)、他をNavigatorに設定してヨーイドンでやってみました(※2)。
ちなみにリモート・オンサイトの割合は半々でした。
※1:回文とは「しんぶんし」のように前から読んでも後ろから読んでも同じ文のこと。もっと知りたい人は「こたつたこ」でググるとよし!
※2:ざっくり説明すると、Driverが書く人、Navigatorが指示・提案する人
↓ログインが必要かもです。
モブプロ開始!(10min)
言語はなるべく共通で会話しやすいJavascriptを選択しました。
まずは、「for文回して順番に先頭と末尾を比較する案」で議論が進んでました。リモートからもコードの提案が送られてきます。
Navigatorの指示がDriverになかなか伝わらず(どうfor文を書くか etc.)、苦労してたように見えます。
そんな中、なんとシニアエンジニアから「わかったかも」と一声...ドラスティックな解答が提示されました。
動かしてみると、「Accepted」...完了ですね!
クロージング(10min)
結果を解説してもらって皆に納得してもらいました。
その後、「モブプロ初めてだったけどにいい感触でした!」とまとめ感想言ってもらってクロージングしました。
まとめ・反省
流れの概要と反省を書いてこの記事を結ぼうと思います。
詳しくは後述しますが、やってよかったと思います。この記事を読んでくださった方に実践してもらうため、アジェンダおいておきます。
- お題/前提条件の共有
- Driver/Navigatorの割り振り(Driver:ジュニア、Navigator:ミドル以上がいい)
- 議論/実装
- 結果の共有←これ重要!!(全体の認識レベルを合わせるため)
気づき・よかったこと
- Driver/Navigatorの分担はやはり必要
- ミドル~シニアエンジニアは言語使用での、ジュニアは自然言語(日本語)でのコミュニケーションが多いことがわかった
- シニアエンジニアの実力を再認識できた
- ジュニア~ミドルエンジニアの底上げ...になったかどうかは別として盛り上がったしきっかけになるかな
- かなり短い時間、リモート環境下でもできる
改善点
- ビギナー向けにするにはお題やフィールドが少し雑すぎたかな...
- さすがに6人は多かったw(2-3人がいいです)
- やはり効果測定はしてみたい