モブプログラミングの方法 / JavaDO #16

モブプログラミングの方法 / JavaDO #16

Kotlin入門:Kotlinらしい書き方をモブプログラミングで学ぼう!
https://javado.connpass.com/event/147516/

8c6c1f0c4c41d0640ade76bd71e9e475?s=128

Hiroto YAMAKAWA

October 19, 2019
Tweet

Transcript

  1. 2.

    ハッシュタグ:#javado 公立千歳科学技術大学 情報システム工学科 専任講師 R&D: Experimental Development of ICT (ex:City-Bus Tacking

    System) 
 Computer in Education, Programming and Programmer's Learning 
 
 Community: Hiroto Yamakawa, @gishi_yama 2
  2. 7.

    ハッシュタグ:#javado モブプログラミングに期待される効果 7 ? ! モブプログラミング: 複数人の質疑や議論の結果で進む ◦ 難しい課題に複数人の知識・スキルで取り組める
 ◦ 相互に異なる知識・スキルを共有・継承できる


    ◦ 開発とレビュー、を兼ねられる
 ◦ コーチ、マネージャ、レビュアー、プロダクトオーナー
 もモブの一員とし、フィードバックなども ペアプログラミング: 二人の質疑や議論の結果で進む ◦ 難しい課題に二人の知識・スキルで取り組む
 ◦ 知識・スキルを継承できる
 × 技術継承の方向性が一方向になりがち
 × ドライバーとナビゲーターの関係性やスキルの違いが
 パフォーマンスに影響しがち
  3. 9.

    ハッシュタグ:#javado モブプログラミングに期待される効果 9 技術・経験が深いメンバーによるモビング 技術・経験が浅いメンバーを含むモビング プロダクトマネージャー or オーナー、
 上司などを含むモビング 新入社員研修、


    新規配属時のスタートアップ、
 コードレビュー時など
  ・情報、知識、技術、文化の
   共有・継承・学習
  ・モビング手法の会得 難度や重要度の高の部分、
 (開発全体に適用してもよい)
 レトロスペクティブ時など
  ・知識・技術の一局集中
   ・ボトルネックの解消
   ・知識、技術の向上と浸透
  ・キーパーソンに変わる
    チームの組織性の向上 スプリントレビュー
 成果物レビュー、デモ時など
  ・認識の共有、軌道修正
  ・オーナーシップの育成
  ・チームやプロジェクトの改善
  4. 11.

    ハッシュタグ:#javado • 全員がタイピストによる操作・コーディングを確認できる大きなディスプレイ(プロジェクター) 
 1 or 2基 ※コーディングと調査用 • モブが考えをまとめるためのホワイトボード、ふせん(KJ法) •

    いくつかのアプリ(モブタイマー、IDE) ※私は Mobster というツールをよく使ってます モブプログラミングに推奨される環境 11 図引用: マーク・パール (著)、長尾高弘(訳)、 及部敬雄(解説):モブプログラミング・ベストプラクティス 使い慣れてないキーボードや
 マウスだと、若干手こずるが、
 個人差があって難しい....
  5. 12.

    ハッシュタグ:#javado 1. 3名以上で集まる 2. モブを行う時間と、時間内に到達を目指すゴール、役割交代のタイミング(10〜15分ごと)を決める
 〈モブ〉
 ・ 解決すべきプログラム上の課題や問題点に集中し、問題解決のための方法を考え・推測・提案する
 ・ 新たな問題が発生していないかを探す
 ・ わからないことはわかるまで質問して、学ぶ
 〈タイピスト〉


    ・モブの合意がとれた提案を、操作やコードの形にして入力する 3. 役割を交代しながら、一週したら休憩などを取る 4. ゴールが達成できたら、みんなで喜ぶ(ハイタッチ!) 5. モブ終了の時間がきたら、次回のモブにむけてふりかえりを行う
 (KPT: Keep, Problem, Try 、量的評価など) モブプログラミングの流れ 12 ※モブ側に、コーチやマネージャー、
   レビュアーやプロダクトオーナーが参加してもよい モブ タイピスト モブ モブ モブ モブ
  6. 13.

    ハッシュタグ:#javado 1. 〈全員〉内職禁止!
 ノートPCやデバイスが手元にあっても良いが、メモや簡易の検索に限る (なんなら閉じておく)
 割り込み仕事、時間がかかる調査はルールを定めて別に行う
 (例:短い感覚でこまめに休憩を取る or 席を外す、サイクルを一旦止めて調査専用の時間を作る) 2. 〈全員〉

    分からないこと・確認しておきたいことを残してはいけない
 分からない事や不安・不明な点が出てくるのは当然であり、そのままにしておくことを恥じる
 どんな質問・確認であっても、容認し、受け止め、全員の不明点を解消する
 質問・確認を言い出しやすい雰囲気や工夫をする(心理的安全を作り出す) 3. 〈タイピスト〉 モブ全体の合意がない操作やコード化をしてはいけない
 特定の誰かの意見や指示だけに従ってPCの操作やコード化をしてはいけない
 モブ全体が合意していることだけに沿って、PCの操作やコード化をする(合意がとれているか確認する) 〈特に初期〉モビングをうまく進めるためのすべからず6箇条(案) 13
  7. 14.

    ハッシュタグ:#javado 4. 〈タイピスト〉 自分の想像や知識だけでコードを書いてはいけない
 モブの指示を勝手に解釈し、自らの知識だけで操作やコードを書かない
 どのようなPCの操作やコードが必要か、モブにつぶさに確認をして、PC操作やコードに反映する
 指示に納得できない点がある場合は、タイピストを交代し、モブとして自分の考えを合意に反映する 5. 〈モブ〉 攻撃や差別、ハラスメントをしない


    いうまでもないことですが...どんな場合も相手を傾聴し、チームの力になることが大事
 意見の衝突や感情的になりそうな時は、誰かが休憩を促す 6. 〈全員〉 時間や順番を守らずに進めてはいけない
 役割の交代や全体の時間の厳守、やらなくてはいけない事柄を厳守する
 役割は操作の途中でも交代。全体の時間オーバーの場合は潔く中断し、「ふりかえり」を犠牲にせず行う 〈特に初期〉モビングをうまく進めるためのすべからず6箇条(案) 14 べからず集は堅く見えますが、最初はしっかりと守り、アレンジをした方がモビングの効果が高まります
  8. 17.

    ハッシュタグ:#javado • モブプログラミング・ベストプラクティス
 https://www.amazon.co.jp/dp/B07NW2S2XV/ • Mob Programming Startup Manual
 https://takaking22.com/2018/mobpro_manual/

    • モブプログラミング 60分間1本勝負
 https://fukabori.fm/episode/6 • モブプログラミング Advent Calendar 2018
 https://qiita.com/advent-calendar/2018/mobprogramming 参考資料 17