Skip to content

Instantly share code, notes, and snippets.

@gishi-yama
Last active August 3, 2019 04:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gishi-yama/eb78a6c9acad3236c77c3d305d5e85c5 to your computer and use it in GitHub Desktop.
Save gishi-yama/eb78a6c9acad3236c77c3d305d5e85c5 to your computer and use it in GitHub Desktop.
JavaDo #14

モブプログラミングをうまくまわす、実践ノウハウ!

内職はやめよう!

モビングに注力しないまま進むと、メンバーの孤立化や脱落が進み、モビングの効果が薄まります!

でもどうしても緊急のメールが、 ということもありますよね。そういう状況になったら...

  • 休み時間にやりましょう!
  • 机を離れて(一旦モビングから抜けて)片付けてから戻ってきましょう!

実は内職じゃなくて、モブで分かったことのメモ なんだ、というときは...

  • 短い時間でさっとすませましょう!(例えばタイピストのタイプ中、タイピスト交代のタイミング)
  • 間に合わなそうなら「ちょっとメモさせてください」と宣言しましょう!

分からない人が一人でもいたら知識の共有をはかろう!

ひとりでも分からないまま進むと、メンバーの孤立化や脱落が進み、モビングの効果が薄まります!

一人でもわからないまま進んでいたら、それは「モブ役全員のせい」 ぐらいのスタンスでもよいです!

分からないこと・不安なこと・懸念があったら...

  • とりあえず片手を挙げて「挙手」しましょう!
  • 分からない・正直不安・NG、とにかく自分の状況はモビングの場に出しましょう!
  • 質問する人はエラい! (c) @tacck さん at ゆるWeb勉強会
  • タイピストは誰か一人ではなく、モブ役の全員がOKを出してから動きましょう!
  • モブ役も相互に「大丈夫?」「これでOKです?」と確認しましょう!

タイピストは「タイピング」に専念しよう!

タイピストが勝手に操作をすすめてしまうと、モブ役が居てくれる効果が薄れ、モビングの効果が薄まります!

  • タイピストは、モブ役のオーサライズを得た指示に従ってコードをタイプしましょう!

でも、いいアイデアがあるんだ! というときもありますよね。そういうときは...

  • タイピストから行動を提案して、モブ全員のオーサライズを得ましょう!
  • いっそ、「ちょっとアイデアあるから変わって!」とタイピストを次の人に交代しましょう!

課題に対して知識が十分にあるメンバー(トレーナー)がいるなら、その人はずっとモブ役になっててもよいです。

個別の調べ物は(慣れるまで)極力やめよう!

バラバラに調べ物をすると、他のモブ役がオーサライズをとりずらかったり、先に進んでしまったり、とモビングの効果が薄まります!

でも、全員ノーアイディアなんだ... というときもありますよね。そういうときは...

  • タイピストに指示して全員で同じ画面で調べましょう!
  • モブの時間を一旦止めし、調査時間を決めて一斉に各自で調べてから、モブを再開しましょう!

分からないところをどうやって・どんなサイトで調べているかもノウハウです!

  • 誰かが「わからない!」「教えて!」と言うときは、タイピストに解説サイトを表示してもらいましょう!
  • なんならサンプルコードをオンザフライで書きましょう!
    このときは特例で、分かってる人の指示だけでタイピストが動いてもよいです
  • ホワイトボードやふせんを使って情報共有しましょう!(無ければノートやスライドに即興で描くのもアリ)

ドキュメントや資料は共有しよう!

プロジェクト内で出てきたノウハウや経過は、個別に記録するとちぐはぐになり、モビングの効果が薄まります!

  • 全員がすぐに確認できる場所(練習ではHackMDなどが楽です)に、全体のノウハウや経過の中で重要な点を記録しましょう!
    (個別のメモを禁止するのではなく、全体のメモを作ろう!)
  • 全体の経過記録は、タイピストが記録する形がベターです!

休憩は沢山取ろう!

「タイピストが1週したけど、進捗が悪いから...」「大きなゴールを達成できたけど、タイピストの順が残ってるから...」というときは、そのまま続けても能率が下がり、モビングの効果が薄まります!

  • タイピストが1週したら休憩 をとりましょう!
  • 大きなゴールを達成できたら休憩 をとりましょう!

タイピストが1週したらみんなそこそこの疲労感を感じる、ぐらいが充実しているモビングのバロメーターの様な気がします。

ゴールを迎えたらみんなで喜ぼう!

みんなで喜ぶと、勢いもついて、自然とモブが回りやすくなり、モビングの効果が高まります!

  • ゴールを達成できたら、みんなで盛り上がりましょう!
  • ハイタッチでも、両手をあげるだけでも気分はかわります!
  • すぐに盛り上がれるように、ゴールは細かく、けれども大きなゴールに向かって分解しましょう!

モブの終わり(や新しいはじまり)には振り返り:レトロスペクティブを行おう!

モブをやった気になってしまったり、わだかまりが残ると、次回以降のモブに良くないイメージ(継続しずらい雰囲気)が残ります!

  • モブの終了前に、振り返りの時間を必ずとりましょう!
  • KPT(Keep, Problem, Try) や、達成できたゴールの数、解決できた問題数などで、次回のモブへの改善点を考えましょう!
  • モブの開始前に、前回はどこで終わっていたか、今回はどこから始めるか、をふり返りましょう!

モブプログラミング&Java開発体験 テーマ例

テーマ例1 コードの練習問題を解いてみる
(未経験者Lv〜)

プログラミング言語(今回であればJava)の学習サイトの演習問題をといてみる。

例えば TechFul の練習問題などをワイワイやってみるのもオススメです。

テーマ例2 最近のJavaのアップデートを追ってみる
(Javaは書いたことがあるLv〜)

ひしだまさんのサイトに、Javaの新機能一覧がある。

https://www.ne.jp/asahi/hishidama/home/tech/java/uptodate.html

この中で、

  • まだ知らない
  • 知ってるけど書いたことない
  • これもっとうまく書いてみたい

といったものをグループの中で選んで、サンプルプログラムをみんなで書いてみる。

例えば、

  • var (Java 10〜)
  • Stream API (Java 8〜)
  • Date and Time API(Java 8〜)
  • Optional(Java 8〜)
  • switch式(Java12〜)
  • Map.of(Java 9〜)

などは、Javaの中でも大きな変化があった部分であり、おすすめです。

テーマ例3 興味のある技術・ツールのチュートリアルをやってみる
(Javaは書いたことがあるLv〜)

何か興味のある技術(プロダクト)、ライブラリ、ツール、SDKなどのチュートリアルをやってみる。

そのほか、興味のあるものの Quick Start, Getting Started, Tutorial などをやってみる形です。

Java(Spring)の範囲であれば、

などは0からの構築手順を用意しています。

テーマ例4 既存のアプリなどに機能を追加してみる
(Javaはたまに使ってるLv〜)

Javaで簡単なアプリを作ってみたり、機能を追加してみる。

  • テーマ例3の続き
  • グループの中で誰かが作っている既存のアプリ
  • オープンソースのプロダクト

などが候補としてあげられます。

Java(Spring)のアプリということであれば、

などはスケルトンとして利用できると思います。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment