Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
モブプログラミングの方法 / JavaDO #16
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Hiroto YAMAKAWA
October 19, 2019
Programming
500
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
モブプログラミングの方法 / JavaDO #16
Kotlin入門:Kotlinらしい書き方をモブプログラミングで学ぼう!
https://javado.connpass.com/event/147516/
Hiroto YAMAKAWA
October 19, 2019
More Decks by Hiroto YAMAKAWA
See All by Hiroto YAMAKAWA
新しいJavaを学んで・使っていこう! / osd26do
gishi_yama
0
180
Hokkaido JUGのJCP Annual Awards授賞式 / JJUG CCC 2026 Spring LT
gishi_yama
0
74
カンファレンスのCFPを 試しに書いてみよう! / JavaDo32
gishi_yama
0
210
開発環境構築の共通要素:必要なものを手元に持ってきて使えるようにする/JavaDo28
gishi_yama
0
190
ドメイン層×日本語プログラミング/seb_sapporo_04
gishi_yama
1
220
Javaへの新たなHello, World / yuruchitose-04
gishi_yama
0
120
JSR381、知っていますか?Javaの画像認識APIのはなし / SC4Y23-05
gishi_yama
0
340
jPeekでのクラスの凝集度計測の試行 / mild-web-sapporo#24
gishi_yama
0
500
Github CopilotとChatGPTを使って感じた使い分けの糸口 / JavaDo #22
gishi_yama
1
1.8k
Other Decks in Programming
See All in Programming
PHP初心者セッション2026 〜生成AIでは見えない裏側を知る:今だからLAMPを通して仕組みを学ぶ〜
kashioka
0
410
自作OSでスライド発表する
uyuki234
1
3.8k
【SRE NEXT 2026 Lunch Session】一人目専任SREの立ち上げを加速する ― AIと進めたオンボーディングで2分を0.04秒にした話
pkshadeck
PRO
0
2.6k
そのテスト、説明できますか?~LWテスト戦略FW~のご紹介
nakahara
0
200
【やさしく解説 設計編 #1】「ドメイン駆動」と「実装駆動」ってなに? 〜設計の考え方を、たとえ話で学ぼう〜
panda728
PRO
1
120
Apache Hive: Toward a Cloud Native Lakehouse
okumin
0
120
Welcome to the "Parametricity" 🏙️ − Generic だけど Specific な世界 −
guvalif
PRO
1
170
ランチタイムLT会3周年!ランチタイムLT会を3年間続けられたお話
y0hgi
1
140
AI がコードを書く時代における新卒エンジニアの仕事風景 (2026) / New Graduate Engineers in the Era of AI Coding (2026)
sushichan044
0
220
吝嗇家のためのAI活用 / AI development for miser - ChatGPT + Issue Driven Development
tooppoo
0
190
分散システム、なんですぐ死んでしまうん?耐障害性を高めたいあなたのためのレジリエンスパターン入門
mshibuya
7
6.1k
AIエージェントで 変わるAndroid開発環境
takahirom
2
650
Featured
See All Featured
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
630
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
270
Design in an AI World
tapps
1
260
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
490
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.3k
Darren the Foodie - Storyboard
khoart
PRO
3
3.4k
A Soul's Torment
seathinner
6
3.1k
Optimizing for Happiness
mojombo
378
71k
Building an army of robots
kneath
306
46k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
290
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
870
Transcript
ハッシュタグ:#javado Kotlin練習編: モブプログラミングの方法 山川広人 (@gishi_yama) 公立千歳科学技術大学 情報システム工学科 Javaエンジニアグループ北海道 Java Do 1
ハッシュタグ:#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
ハッシュタグ:#javado 大学の研究開発やIT勉強会でモブプログラミングを取りいれています! 3
ハッシュタグ:#javado What is "Mob Programming"? 4
ハッシュタグ:#javado A day Of Mob Programming 5 https://youtu.be/p_pvslS4gEI https://youtu.be/dVqUcNKVbYg スクラムの中にとりこんでもよい
⇒カイゼン・ジャーニー等を参考
ハッシュタグ:#javado モブプログラミング(モビング) 6 3人以上でグループを組み、 同じ場所・同じ機材で同じプログラミングを行うチームワーク手法 (≒ペアプログラミングの多人数化) 2012年頃にアメリカのHunter社が本格的に取り入れ、 日本では楽天などの開発現場で実利用されていることが有名。 日本でも書籍や実践事例が増えてきている。 モビング(Mobbing),
モブワーク(MobWork)とも。 図引用:TAKAKING22, Mob Programming Startup Manual(https://takaking22.com/2018/mobpro_manual/) ↑の本では、 ドライバーとナビゲーターではなく タイピストとモブ と呼んでおり、 この資料もそれに倣う
ハッシュタグ:#javado モブプログラミングに期待される効果 7 ? ! モブプログラミング: 複数人の質疑や議論の結果で進む ◦ 難しい課題に複数人の知識・スキルで取り組める ◦ 相互に異なる知識・スキルを共有・継承できる
◦ 開発とレビュー、を兼ねられる ◦ コーチ、マネージャ、レビュアー、プロダクトオーナー もモブの一員とし、フィードバックなども ペアプログラミング: 二人の質疑や議論の結果で進む ◦ 難しい課題に二人の知識・スキルで取り組む ◦ 知識・スキルを継承できる × 技術継承の方向性が一方向になりがち × ドライバーとナビゲーターの関係性やスキルの違いが パフォーマンスに影響しがち
ハッシュタグ:#javado モブプログラミングに期待される効果 8 分業によるアウトプット量よりもモブによるアウトカムの向上を重視する 図引用:TAKAKING22, Mob Programming Startup Manual (https://takaking22.com/2018/mobpro_manual/)
https://twitter.com/t_wada/status/1155691342560808965
ハッシュタグ:#javado モブプログラミングに期待される効果 9 技術・経験が深いメンバーによるモビング 技術・経験が浅いメンバーを含むモビング プロダクトマネージャー or オーナー、 上司などを含むモビング 新入社員研修、
新規配属時のスタートアップ、 コードレビュー時など ・情報、知識、技術、文化の 共有・継承・学習 ・モビング手法の会得 難度や重要度の高の部分、 (開発全体に適用してもよい) レトロスペクティブ時など ・知識・技術の一局集中 ・ボトルネックの解消 ・知識、技術の向上と浸透 ・キーパーソンに変わる チームの組織性の向上 スプリントレビュー 成果物レビュー、デモ時など ・認識の共有、軌道修正 ・オーナーシップの育成 ・チームやプロジェクトの改善
ハッシュタグ:#javado How to try "Mob Programming"? 10
ハッシュタグ:#javado • 全員がタイピストによる操作・コーディングを確認できる大きなディスプレイ(プロジェクター) 1 or 2基 ※コーディングと調査用 • モブが考えをまとめるためのホワイトボード、ふせん(KJ法) •
いくつかのアプリ(モブタイマー、IDE) ※私は Mobster というツールをよく使ってます モブプログラミングに推奨される環境 11 図引用: マーク・パール (著)、長尾高弘(訳)、 及部敬雄(解説):モブプログラミング・ベストプラクティス 使い慣れてないキーボードや マウスだと、若干手こずるが、 個人差があって難しい....
ハッシュタグ:#javado 1. 3名以上で集まる 2. モブを行う時間と、時間内に到達を目指すゴール、役割交代のタイミング(10〜15分ごと)を決める 〈モブ〉 ・ 解決すべきプログラム上の課題や問題点に集中し、問題解決のための方法を考え・推測・提案する ・ 新たな問題が発生していないかを探す ・ わからないことはわかるまで質問して、学ぶ 〈タイピスト〉
・モブの合意がとれた提案を、操作やコードの形にして入力する 3. 役割を交代しながら、一週したら休憩などを取る 4. ゴールが達成できたら、みんなで喜ぶ(ハイタッチ!) 5. モブ終了の時間がきたら、次回のモブにむけてふりかえりを行う (KPT: Keep, Problem, Try 、量的評価など) モブプログラミングの流れ 12 ※モブ側に、コーチやマネージャー、 レビュアーやプロダクトオーナーが参加してもよい モブ タイピスト モブ モブ モブ モブ
ハッシュタグ:#javado 1. 〈全員〉内職禁止! ノートPCやデバイスが手元にあっても良いが、メモや簡易の検索に限る (なんなら閉じておく) 割り込み仕事、時間がかかる調査はルールを定めて別に行う (例:短い感覚でこまめに休憩を取る or 席を外す、サイクルを一旦止めて調査専用の時間を作る) 2. 〈全員〉
分からないこと・確認しておきたいことを残してはいけない 分からない事や不安・不明な点が出てくるのは当然であり、そのままにしておくことを恥じる どんな質問・確認であっても、容認し、受け止め、全員の不明点を解消する 質問・確認を言い出しやすい雰囲気や工夫をする(心理的安全を作り出す) 3. 〈タイピスト〉 モブ全体の合意がない操作やコード化をしてはいけない 特定の誰かの意見や指示だけに従ってPCの操作やコード化をしてはいけない モブ全体が合意していることだけに沿って、PCの操作やコード化をする(合意がとれているか確認する) 〈特に初期〉モビングをうまく進めるためのすべからず6箇条(案) 13
ハッシュタグ:#javado 4. 〈タイピスト〉 自分の想像や知識だけでコードを書いてはいけない モブの指示を勝手に解釈し、自らの知識だけで操作やコードを書かない どのようなPCの操作やコードが必要か、モブにつぶさに確認をして、PC操作やコードに反映する 指示に納得できない点がある場合は、タイピストを交代し、モブとして自分の考えを合意に反映する 5. 〈モブ〉 攻撃や差別、ハラスメントをしない
いうまでもないことですが...どんな場合も相手を傾聴し、チームの力になることが大事 意見の衝突や感情的になりそうな時は、誰かが休憩を促す 6. 〈全員〉 時間や順番を守らずに進めてはいけない 役割の交代や全体の時間の厳守、やらなくてはいけない事柄を厳守する 役割は操作の途中でも交代。全体の時間オーバーの場合は潔く中断し、「ふりかえり」を犠牲にせず行う 〈特に初期〉モビングをうまく進めるためのすべからず6箇条(案) 14 べからず集は堅く見えますが、最初はしっかりと守り、アレンジをした方がモビングの効果が高まります
ハッシュタグ:#javado Kotlin Practice with "Mob Programming" 15
ハッシュタグ:#javado 1. TechFulで、プログラミングの演習問題をKotlinで解く https://techful-programming.com/ 2. 渡部さんの「年賀状の宛名をKotlinで出力するプログラム」をKotlinで改良する https://github.com/susan335/Javado-NewYearCard > src/main/kotlin/Main.kt 3.
フリー課題(グループごとに作るものを決める) 前回(Java回)の例 : じゃんけんゲーム 今日の練習内容 どれか一つをグループで選んでください 16
ハッシュタグ:#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