モブプログラミング
定義
チーム全員が同じ場所、同じ時間、同じPCで仕事する
2012年頃にHunter Industies社で取り組みが始まりました。そこで得た知見をWoody Zuillさん達がカンファレンス等で紹介することで広まっていきました。
みんなで画面をみながらわいわいプログラミング(またはそれに準じた作業)をすることです。基本的な進め方・コツ・現場で出てきそうな問題点は、ペアプログラミングと似ている
コロナ渦ではオンラインミーティングルームに集まる形式が主流らしい
やっぱりそうだよなぁと
o リアルタイムで相談できる
x 実力に開きがあると一方通行
x 自分のペースで勉強できない
作家の執筆みたいなもので、皆で同時編集って本質的に不快でしょ
「ちょっとだるいから30min休も」とかもできない
いつ何やるかの配分を自分通りにできない
その場で教えられても覚えられないので意味ない
全員がゼネラリストになるイメージ
25分間1人がドライバーして5分休憩して次の人にドライバーをバトンタッチ、という形でやりました。
ポモドーロ
また、kintoneにはスレッドという機能がありここにモブプロ中の気づきやメモをしっかり文字で残しておきます。
ただの見学ではなくメモするの良いな
実況文化によるものらしい
サイボウズさんには、開発を進めていく時、1日の振り返りをする時などにkintoneのスレッドという場所に気づきやメモ、感想を文字で残しておく実況文化
他の人がコード書いているところを見ていると、自分の知らないgitコマンドとかデバッガの賢い使い方とか、色々なことに気づけます。
そうか、コードだけじゃないんだな
何をやっているかわからなくなるということが多発していたので、「〜〜〜っていう認識であってますか」「今やっていることの目的は〜〜〜であってますか」って何度も質問してました。認識があってたらそれを確認できて安心だし、あってなかったらそれを指摘してもらって認識を改めることができてハッピーになれた
一人でやるよりも答えがわかりやすいから精神衛生に良いらしい
サイボウズの2022年新人研修資料
1タスクずつ消化する
25やる→5休憩→交代か、15やる→交代→5休憩
with zoom
お悩み相談
q1: ついていけない
q2: チームに貢献できてない
q3: 勉強できてる気がしない
q4: モブ中にわからないことをその場で質問できない圧
ドライバーのつぶやきから駆動する
https://gyazo.com/dd3d89e4827859c2b5568401ed5a8d5d
ナビゲーターは頷いて承認を満たしてあげるか、質問して学びの場にしてあげる
ナビゲーターに多いのは説明 > 相槌、提案、返答 > 質問、言い換え
ペアコンビネーション
table:t
ドライバー ナビゲーター
新人 メンバー ナビゲーターに質問しまくれ。「えーと、次どうすればいいでしょ?」
メンバー 新人 ドライバーに質問しまくれ。「そこ、どういう意味ですか?」
モブプロはルーチンには向いてない
https://gyazo.com/166ab312435181fe2a79008e0b298276
モブプロは毎日朝会とかでやるかどうか決めればいい
なるほどなsta.icon
これも使い分け大事言うてる
分担作業(誰がやってもだいたい同じになる「作業」)は分担する
初期の試行錯誤など皆に知ってもらいたいことはモブる
ハマったときも一時的に変える例
たとえばモブプログラミングをしている中で問題にハマったときは、自然とそれぞれ手元の環境で検索して、解決策を試して、誰かが解決策を見つけるとまたモブプログラミングに戻る、といった具合です。
その場で学べない奴は別途時間を確保しなさい
モブプログラミングに参加することで、体験を通して学習できる人もいます。一方で、モブプログラミングで体験したことを、個人の時間で復習することで学習できる人もいます。参加者それぞれが学習しやすいように、モブプログラミング内外の時間の使い方を設計できるとよいでしょう。
参加意思は尊重する
また、モブプログラミングに参加したくないメンバーがいるかもしれません。すべてのメンバーにモブプログラミングへの参加を強制することは避けるべきです。すべてのメンバーを招待しますが、モブプログラミングに参加するかどうかを決めるのは個人だと考えるといいでしょう。
事実上これも要るやろね
ログを残しておくことで、振り返りや過去の作業の思い出す際に便利ですし、モブプログラミングに参加できなかったメンバーにも作業の進捗が伝えやすくなります。
モブプログラミングはチームのリトマス試験紙である
チームの現状が可視化される
モブって上手く行かない場合、それは元々チームが持っていた問題が顕在化した可能性が高い
スキルばらつきありすぎとか、コミュしづらい不健全なチームとか
なるほど、顕在化のためにってのは考えたことなかったなsta.icon
チームワークに課題があるチームは、分担作業をしていてもなにかがうまくいかず、どこかで問題に向き合わねばならないのです。
スクラムにおける一イベントに位置づける
ここでは毎週月曜13-17
誰がやるかはランダムに決める
25分やって5分休憩のサイクル、2時間やったら15分休憩
最後の30分で振り返り
モブプログラミングはとてもハードなプラクティスです。一日4時間もやるととてもヘトヘトになります。それでもチームのモチベーションを維持のためにも緩急をつけて、たまには雑談を挟むことで機械的な開催になることを避けるように心がけています。
書かずに仕事する人たちでもハード
sta.icon
俺はやっぱり無理だなぁ
快適が第一