Slide 1

Slide 1 text

ハッシュタグ:#javado #mobprogramming モブプログラミングはいいぞ! 方法と実践 山川広人 (@gishi_yama)
 公立千歳科学技術大学 情報システム工学科 Javaエンジニアグループ北海道 Java Do 1

Slide 2

Slide 2 text

ハッシュタグ:#javado #mobprogramming 公立千歳科学技術大学 情報システム工学科 専任講師 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

Slide 3

Slide 3 text

ハッシュタグ:#javado #mobprogramming 大学の研究開発にモブプログラミングを取りいれています! 3

Slide 4

Slide 4 text

ハッシュタグ:#javado #mobprogramming モブプログラミング(モビング) 4 3人以上でグループを組み、
 同じ場所・同じ機材で同じプログラミングを行うチームワーク手法
 (≒ペアプログラミングの多人数化) 2012年頃にアメリカのHunter社が本格的に取り入れ、
 日本では楽天などの開発現場で実利用されていることが有名。
 日本でも書籍や実践事例が増えてきている。
 モビング(Mobbing)とも呼ぶが、あんまりよい印象の言葉ではないような...? 図引用:TAKAKING22, Mob Programming Startup Manual(https://takaking22.com/2018/mobpro_manual/) ↑の本では、
 ドライバーとナビゲーターではなく
 タイピストとモブ
 と呼んでおり、
 この資料もそれに倣う

Slide 5

Slide 5 text

ハッシュタグ:#javado #mobprogramming モブプログラミングに期待される効果 5 ? ! モブプログラミング: 複数人の質疑や議論の結果で進む ○ 難しい課題に複数人の知識・スキルで取り組める
 ○ 相互に異なる知識・スキルを継承できる
 ○ 開発とレビュー、その情報共有を兼ねられる
 ○ コーチ、マネージャ、レビュアー、プロダクトオーナー
 といった役割の人もモブの一員として参加できる ペアプログラミング: 二人の質疑や議論の結果で進む ○ 難しい課題に二人の知識・スキルで取り組む
 ○ 知識・スキルを継承できる
 × 技術継承の方向性が一方向になりがち
 × ドライバーとナビゲーターの関係性やスキルの違いが
 パフォーマンスに影響しがち

Slide 6

Slide 6 text

ハッシュタグ:#javado #mobprogramming モブプログラミングに期待される効果 6 分業によるアウトプット量よりもモブによるアウトカムの向上を重視する 図引用:TAKAKING22, Mob Programming Startup Manual (https://takaking22.com/2018/mobpro_manual/) https://twitter.com/t_wada/status/1155691342560808965

Slide 7

Slide 7 text

ハッシュタグ:#javado #mobprogramming 1. 3名以上で集まる 2. モブを行う時間と、時間内に到達を目指すゴール、役割交代のタイミング(10〜15分ごと)を決める
 〈モブ〉
 ・ 解決すべきプログラム上の課題や問題点に集中し、問題解決のための方法を考え・推測・提案する
 ・ 新たな問題が発生していないかを探す
 ・ わからないことはわかるまで質問して、学ぶ
 〈タイピスト〉
 ・モブの合意がとれた提案を、コードの形にして入力する 3. モブを開始する。役割を交代しながら、一週したら休憩などを取る 4. ゴールが達成できたら、みんなで喜ぶ(ハイタッチ!) 5. モブ終了の時間がきたら、次回のモブにむけてふりかえりを行う
 (KPT: Keep, Problem, Try など) モブプログラミングの流れ 7 ※モブ側に、コーチやマネージャー、
   レビュアーやプロダクトオーナーが参加してもよい モブ タイピスト モブ モブ モブ モブ

Slide 8

Slide 8 text

ハッシュタグ:#javado #mobprogramming • 全員がタイピストによる操作・コーディングを確認できる大きなディスプレイ(プロジェクター) 
 1 or 2基 ※コーディングと調査用 • モブが考えをまとめるためのホワイトボード、ふせん(KJ法) • いくつかのアプリ(モブタイマー、IDE) ※私は Mobster というツールをよく使ってます モブプログラミングに推奨される環境 8 図引用: マーク・パール (著)、長尾高弘(訳)、 及部敬雄(解説):モブプログラミング・ベストプラクティス 使い慣れてないキーボードや
 マウスだと、若干手こずるが、
 個人差があって難しい....

Slide 9

Slide 9 text

ハッシュタグ:#javado #mobprogramming A day Of Mob Programming 9 https://youtu.be/p_pvslS4gEI https://youtu.be/dVqUcNKVbYg スクラムの中にとりこんでもよい
 ⇒カイゼン・ジャーニー等を参考

Slide 10

Slide 10 text

ハッシュタグ:#javado #mobprogramming 事前の準備を行っておく (モブプログラミングの対象に対する)基礎的な知識の準備や理解を持って望む
  問題解決につながりそうなスキル・情報の収集、 "Kata"、 対象の背景 モブプログラミングに全員が集中して取り組む 内職はしない・(一人でも)わからない or 納得してないまま進めない・タイピストは勝手に動かない・
 検索や調べ物は足並みをそろえて皆で・資料や経過は共有する・休憩は沢山とる いきなり全てをモブプログラミングでやろうとしない プロジェクトの立ち上げ時、難易度が高い課題、チームのニュービーが軌道に乗るまで...
 など、積極的に知識・スキル・経過の共有や、知恵を出し合う部分に効果がある 自然と「ここはモブでやろう」「モブでやりたい」という声が出てくる形が最初に目指す理想形 うまくモブプログラミングをすすめるためには? 10

Slide 11

Slide 11 text

ハッシュタグ:#javado #mobprogramming 「みんなで考える・作る」を体験してきた・あたりまえの次世代は
 「みんなで考えられる・作れる」が乏しい環境に満足して取り組めるか? 未来のエンジニアにとっては、モブプログラミングは当たり前かも? 11 ※個人の感想です

Slide 12

Slide 12 text

ハッシュタグ:#javado #mobprogramming やってみよう!モブプログラミング! 12