サイボウズさんの新人研修公開資料(https://blog.cybozu.io/entry/2022/06/23/170000)を最近拝見しているのですが、今回はモブプログラミングについての動画を見ました。
OJT、、とはまたちょっと違うのですが、知識の共有という意味ではプログラミング以外の業務でも使えるのではないかと思いました。ルーティンワークも数人でやんや言いながら見直しやアイデアを出し合うことで、より洗練されたフローにブラッシュアップできるかもしれません。
以下自分用の備忘録です。
モブプログラミングとは
「3人以上の人々が1台のコンピューターの前に座って協力しながら問題を解決していくこと」
だそうです。とはいえ、ただ漠然とやるのは効率が悪そう。ある程度使い所を考える必要がありそうです。
・モブをやる(やりたい)業務箇所を選ぶ
・モブを始める前に、前提や内容を共有する
このくらいは決めておかないとダラっとぐちゃっとしそうです。(当たり前か、、)
事例として、サイボウズさんのソフトウェア開発のすべてのプロセスで、モブは活躍しているそうです。仕事のプロセスを区切って、ここをやる!という風に使えれば良さそうです。
モブプロの目的・効果
・高品質な成果物の生成
・チームメンバーのレベル向上
・達成感
・知識の共有による属人性の解消
この4つ目の属人性の解消がとても良いなぁと思いました。僕の今までの職場環境では、仕事を囲う人がそこそこ多くて、、能力あるんだからできる業務は誰かに任せて他のことをすればいいのにとずっとモヤモヤしていたので、モブプロの導入で、「おお、やっぱすげー」とか尊敬の言葉がちゃんと伝わって、かつ秘められていた業務内容の知識も共有されれば、職場環境は良くなりそう。良くなって欲しいw
モブプロのやり方(サイボウズ式)
・3〜5名のチーム
・ドライバー1名、ナビゲータ1名
ドライバー:直接コードを触る人
ナビゲータ:ドライバーをサポートする人
・マルチタスクをしない
・リモート開発
1.まずドライバーの呟きから全ては始まります。
呟くことで、行動や意図を伝達する効果があります
2.ナビゲータはつぶやきに対して、とにかく反応(フィードバック)をします。
反応のメインは、相槌と質問です。
相槌には、モチベーションを保つ効果があります。自信に繋がり、どんどん先に進んでいけます(促進ループ)
質問は、自分の理解を確認する効果があります。(言い換えるとこうですか?など)
質問して会話をすることは、コードレビューコメント欄などの言い切り型のやり取りより学びが多く、早く理解も深まるため、内容がどんどん改善していきます(改善ループ)
3.促進ループ、改善ループが加速していく
フィードバックにより、促進ループ、改善ループが加速していき、メンバー全員がどんどん自信をつけて、知識をつけていくことで、結果、コードやドキュメントの品質も向上していきます。
よくある問題点
”話について行けない”
新人によくある挫折ポイントだそうです。
・何がわからないのか分からなくて、質問もできない、、
・質問しても理解ができない、、
とても身に染みるというかグサグサ刺さる言葉というか共感できすぎるのですが、このように感じる時は、「チームに貢献できていない」「役立っていない」「学習ができていない」と焦り、「一人でやる時間が必要」と必要以上に落ち込んだりすることが多いそうです。
しかしながら、このような悩みは、早い人で2週間、遅くても半年あれば、スパッと解決して、急に面白くなってくるらしいです。
その理由としては、理解に足りていなかった知識というのが「仕事についての知識」であることが多いからだそうです。「学習で得る知識」ではなく、この「仕事についての知識」というのは、モブの方が圧倒的に獲得しやすいため、詰まるところ、頑張ってモブに参加する!のが最短の解決方法となるようです。。頑張ろう、、、(早い人、早すぎん?、、
うまく運用するコツ
ドライバー
・まず呟くこと!とにかく声に出すこと!
・分からなかったらナビゲータに聞く!(次どうしたらいいですか?)
ドライバーであっても、質問することで質問力が磨かれます。その際、パラフレーズ(言い換え文)を使うとより深く学習できます。
ナビゲータ
・相槌めっちゃ大事!(ドライバーを安心させる効果があります)
・分からなかったらドライバーに聞く!(もう少し説明してもらえますか?)
・追いつかなくなっても遠慮なく質問する!
説明してもらうことで、ドライバーも学べます。もしベテランドライバーさんだったとしても、より深く理解が進むことになります。意外な学びに出会うこともあり、ベテランのメンタリティが謙虚になる効果もあるらしいです。めちゃくちゃいいですねそれ。
共通して大事な点
・会話が大事。会話がないと意味がない。
・休憩も大事。集中するのでかなり疲れます。ポモドーロ法などを活用しましょう!
・質問することは、チームにとって最大の貢献!!
敬意、謙虚、信頼、好奇心、受け入れる を大事に。
モブプロの苦手分野
モブは多様性により効果をあげています。(シナジー効果)
ただこのシナジー(相乗効果)がネガティブ側に効果が出ると、辛いことがあります。
また、複雑な問題については得意分野ですが、単純作業のようなことは不得意としている点に注意してください。
まとめ
結局、信頼関係が一番大事になってきます。
ここのレジュメはちょっと泣きそうになりました
めちゃくちゃ大事だと思ったし、刺さったので文字に起こします。
対人関係を繋ごうとする時のリスク:主に恥じること
・自分が無知であると思われる
・自分が無能であると思われる
・自分がチームに邪魔をしている:足手まとい
・自分がネガティブであると思われる
もし、リスクを取らないなら => 何も発言も質問もしなくなる
コミュニケーションがない = フィードバックが起こらない
気づきも学習もない = 信頼も育まれず、創造もできない
そのようなモブプログラミングは、時間の無駄どころか、苦痛になる
そんなことも分からないの?なんて態度をされて、辛い経験をしたことは誰しもあるかもしれませんが、ほんとあの態度は害しかないと思います。立場や関係にもよるかもしれませんが、良い効果がある場合があるとは到底思えません。自分は絶対にそんな人間にはなりたくないですね。
友人関係でもたまに悩ましい時がありますが、リスペクトがないと嫌な言葉になってしまったりするんだと思います。
で、話がそれましたが、新人もベテランもリスペクトが大事ということです!
サイボウズめっちゃいいですね。って思っちゃいます(まぁ実際は色々あるんでしょうけども、、