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
Hiroto YAMAKAWA
October 19, 2019
Programming
0
460
モブプログラミングの方法 / JavaDO #16
Kotlin入門:Kotlinらしい書き方をモブプログラミングで学ぼう!
https://javado.connpass.com/event/147516/
Hiroto YAMAKAWA
October 19, 2019
Tweet
Share
More Decks by Hiroto YAMAKAWA
See All by Hiroto YAMAKAWA
開発環境構築の共通要素:必要なものを手元に持ってきて使えるようにする/JavaDo28
gishi_yama
0
110
ドメイン層×日本語プログラミング/seb_sapporo_04
gishi_yama
1
140
Javaへの新たなHello, World / yuruchitose-04
gishi_yama
0
54
JSR381、知っていますか?Javaの画像認識APIのはなし / SC4Y23-05
gishi_yama
0
240
jPeekでのクラスの凝集度計測の試行 / mild-web-sapporo#24
gishi_yama
0
390
Github CopilotとChatGPTを使って感じた使い分けの糸口 / JavaDo #22
gishi_yama
1
1.7k
子ども向けプログラミング体験教室でのHololens2利用事例 / IoTLT#97
gishi_yama
0
110
AWS Serverless Java Container, Spring Bootで試してみた / javado22
gishi_yama
1
770
Hololens2と 小中高プログラミング教育の利用にむけた試行 / XRMTG 2023-1-18
gishi_yama
0
320
Other Decks in Programming
See All in Programming
AI時代のソフトウェア開発を考える(2025/07版) / Agentic Software Engineering Findy 2025-07 Edition
twada
PRO
25
2.9k
20250704_教育事業におけるアジャイルなデータ基盤構築
hanon52_
4
280
ニーリーにおけるプロダクトエンジニア
nealle
0
720
既存デザインを変更せずにタップ領域を広げる方法
tahia910
1
270
技術同人誌をMCP Serverにしてみた
74th
1
550
WebViewの現在地 - SwiftUI時代のWebKit - / The Current State Of WebView
marcy731
0
110
AWS CDKの推しポイント 〜CloudFormationと比較してみた〜
akihisaikeda
3
320
Railsアプリケーションと パフォーマンスチューニング ー 秒間5万リクエストの モバイルオーダーシステムを支える事例 ー Rubyセミナー 大阪
falcon8823
4
1k
Benchmark
sysong
0
280
PHPで始める振る舞い駆動開発(Behaviour-Driven Development)
ohmori_yusuke
2
240
アンドパッドの Go 勉強会「 gopher 会」とその内容の紹介
andpad
0
290
生成AIコーディングとの向き合い方、AIと共創するという考え方 / How to deal with generative AI coding and the concept of co-creating with AI
seike460
PRO
1
350
Featured
See All Featured
Designing for humans not robots
tammielis
253
25k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
46
9.6k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.7k
Embracing the Ebb and Flow
colly
86
4.7k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.5k
Testing 201, or: Great Expectations
jmmastey
42
7.6k
Making Projects Easy
brettharned
116
6.3k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
124
52k
Making the Leap to Tech Lead
cromwellryan
134
9.4k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Visualization
eitanlees
146
16k
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