Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
XP祭り2019 実践!モブプログラミング!!~躍進編~/Mob Programming in...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Ikuo Suyama
September 21, 2019
Technology
6.6k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
XP祭り2019 実践!モブプログラミング!!~躍進編~/Mob Programming in Practice
XP祭り2019、「実践!モブプログラミング!!成功も失敗も、全部見せます僕らのモブプロジャーニー!」
後編です。
Ikuo Suyama
September 21, 2019
More Decks by Ikuo Suyama
See All by Ikuo Suyama
A Journey as Staff Engineer at SmartNews! 〜一年間の経験から語る、ICキャリアの今とこれから〜
martin_lover
1
1.3k
[zh-TW] DevOpsDays Taipei 2025 -- Creating Awesome Change in SmartNews!(machine translation)
martin_lover
1
1.5k
DevOpsDays Taipei 2025 -- Creating Awesome Change in SmartNews!
martin_lover
1
930
Creating Awesome Change in SmartNews! En
martin_lover
0
220
Creating Awesome Change in SmartNews
martin_lover
2
1.2k
Dive into JVM JIT Compiler
martin_lover
2
340
InvokeDynamic完全に理解した / Completely Understand InvokeDynamic
martin_lover
0
1.1k
10分で完全に理解するInvokeDynamic / 10min To Understand InvokeDynamic
martin_lover
0
920
High Performance FastAPI EN
martin_lover
0
1.2k
Other Decks in Technology
See All in Technology
re:Invent2026 事前勉強会 歴史と愉しみ方10分LT編
toshi_atsumi
0
110
(swiftc) NonCopyableとライフタイム修飾子
teamhimeh
0
170
Active Directory と Entra ID のむむむな関係
murachiakira
PRO
0
350
"計画的無茶振り"を通してAIネイティブ世代の新人を育てる
subroh0508
1
150
Consistency for mere mortals - A gentle guide to consistency
ufried
0
120
レガシーコードに対する loop engineering的なAI開発プロセス導入について
kubell_hr
0
150
In-Context Learning再入門。ICLの勾配降下的解釈の研究動向を追ってみる。
dai08srhg
0
120
cdkd (CDK Direct)
gotok365
2
150
これだけは抑えておきたい!後悔しない re:Invent の過ごし方 / AWS re:Invent 2026 prestudy
kinunori
2
680
アクセラレーターで実現するServiceNow活用の高速化 / ServiceNow World Forum 2026
visional_engineering_and_design
0
130
渡米前の準備を制す!re:Invent 2026徹底準備術 / The Ultimate Preparation Guide for re:Invent 2026
yuj1osm
1
530
AI Search (Foundry IQ) におけるRAGデータの準備と配置
ryomaru0825
1
140
Featured
See All Featured
Reality Check: Gamification 10 Years Later
codingconduct
0
2.4k
A designer walks into a library…
pauljervisheath
211
25k
Heart Work Chapter 1 - Part 1
lfama
PRO
10
37k
Evolving SEO for Evolving Search Engines
ryanjones
0
350
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
650
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
1k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
3
3.9k
Rails Girls Zürich Keynote
gr2m
96
14k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
920
Typedesign – Prime Four
hannesfritz
42
3.2k
Documentation Writing (for coders)
carmenintech
77
5.6k
How to Ace a Technical Interview
jacobian
280
24k
Transcript
成功も失敗も、 全部見せます僕らのモブプロジャーニー!! 〜躍進編〜 実践! モブプログラミング!!
陶山 育男 Ikuo Suyama @martin_lover_se 見習い “Agile Developer” モブプロ大好き! CyberAgent,
AI Tech Studio LODEO モブプロは ええぞ!!
Agile2019でLTしてきました Running Mob Programming モブプロ好きすぎて... Mob Mentality Show に出ました!! Mob
Programming in Japan Mob Mentality Show みてね!
モブプログラミング / モブプロ 同じことを... 同時に... 同じ場所で... 同じコンピューターで... “On the same
thing... At the same time... In the same place... On the same computer… --Woody Zuill "Mob Programming A Whole Team Approach" Agile 2014
僕らのモブプロ 毎日フルタイムでモブプロしてます! ドライバ ナビゲータ ナビゲータ ナビゲータ コード書く人 “Smart Input Operator”
5~15分で交代 指示する人
僕らのモブプロ 毎日フルタイムでモブプロしてます! ドライバ ナビゲータ ナビゲータ ナビゲータ アレ 開いて [変数名] がよくな
い? テスト 書いて コード書く人 “Smart Input Operator” 5~15分で交代 指示する人
形成~混乱期 モブプロがデフォルト になるまで 今日お話すること モブプロ実践記! 統一期 開発チームにおけ る課題 機能期 組織における課題
形成~混乱期 モブプロがデフォルト になるまで モブプロが デフォルトになってから ”導入編” 見てね 統一期 開発チームにおけ る課題
今日お話すること モブプロ実践記! 機能期 組織における課題
開発チームの課題 モブがデフォルトになってから
「効率悪くない…?」 シチュエーション1
➔「効率悪そう」 ➔「あいつら遊んでるの? 」 ➔「モブプロってずっとやるものなの?」 「効率悪そう」問題 チーム内外から… チームの意思を統一するには? 説明責任を果たし、 チームを雑音から守るには?
効率 より 効果 に価値をおいています。 伝えていること
効率(Efficiency) より 効果(Effectiveness) ➔「効率」 ◆ 単位時間あたりのアウトプットの多寡 ➔「効果」 ◆ 得られた成果 大切なのはどちらですか?
もし、一緒に働くべきひとたちが バラバラに座っていたとしたら、 どうやって効果的に働けるの? “How can we be effective if we
separate the people who should be working together? ” --Woody Zuill
リソース効率 より フロー効率 伝えていること に価値をおいています。
リソース効率 より フロー効率 大切なのはどちらですか? ➔リソース効率 … リソースの稼働率 ◆ => アウトプット量の最大化
◆ つくるものが決まっているときにだいじ ➔フロー効率 … 作業時間 / (待ち時間 + 作業時間) ◆ => リードタイムの最小化 ◆ つくるものに正解がないときにだいじ
➔ キュー時間の排除 ➔ 依存の低減 ➔ WIP(仕掛り)制限 モブプロとフロー効率 質問 結合 QA
作業 etc... 作業! ムダ! ”普通にモブでやるだけで倍早くなる” -- Ikuo Suyama ※効果には個人差があります ソロ モブ VS
「何もわからねぇ...」 シチュエーション2
➔分かる人だけがずーっとしゃべる ◆ エキスパート=ドメイン知識/言語/ライブラリ/etc... ➔進むことが優先され、中断できない空気 ◆ 「自分の問題なんで、後でやっときます」 ➔悪気なく、意図せず進んでしまっている 「エキスパート vs 初学者」問題
何が起こるか? モブのメリットがまるで無い
None
None
誰も押さねぇ... ぼくの1,166円ェ... なんでも質問!ボタン
「全員がいま起こっていること すべてを知る権利がある」 「いつでも止めて良い権利がある」 ワーキングアグリーメント 意識するだけでは変えられないことも...
➔1 セッション 45分 、5minくらい休憩 ◆ いろいろ試したが今のところこれ ◆ 90minでは長すぎる、30min以下では短すぎる ➔ 1セッション内で、全員がドライバーに
◆ 交代時間を調整(5~15min) ◆ MobStarを使う ➔休憩は必ず取る ◆ 休憩でクールダウンできる … 進みすぎ対策 ◆ 休憩中の雑談のほうが聞きやすい Session / 時間を守る
「一人でできる...?」 シチュエーション3
「個人の学びと成長」問題 新しく始めた技術、「自分一人で」できる? エンジニアとしてのスキル/キャリアの不安 ➔ スキルが身についているか?という不安 ◆ 「モブでしか働けなくなりそう...」 ➔ 「一人で考える/やってみる」時間がない ➔
学びは広く速いが、浅い?
Learning Session 業務時間で、新しい技術や考え方を試す 発表者の個人の学びと、チームへの還元 元ネタは Learning to Experiment by @christophlucian
Lodeoでの Learning Session ➔これまで扱ったテーマ ◆ TDD / Haskell / FP,
Monad / Rust / eml / etc… ◆ 実務でカバーできない深いトピックや、新しい技術にトラ イ ➔ LearningSessionから生まれた機能も 週1回、3H 決まりは一つだけ ... 「手を動かす」
ゴールドカード ➔ 一日モブに参加しない宣言 ◆ 朝イチで宣言する ◆ 自分とチームに必要だと思うことを自分で選ぶ ➔ 月2〜3回使える
「チームで起こっていることに おいてかれる気がする...」 ゴールドカード
不安と向き合っている段階。 試行錯誤中!
組織としての課題 チームが機能してきたら
「人が足りない?」 シチュエーション 4.
モブチームにおける採用事情 ➔ 完全な職能横断チーム ➔ 各領域のエキスパートがチームに1人いれば成り 立つ 採用は必要なのか?
こういうシチュエーション ➔ 純粋にスループットを上げたい ◆ 3 ~ 4人では安定的なスループットを出すには心もとな い ◆ 誰かが休んだ時や、MTGで抜けた時にモブが成立しな
くなる ➔ モブを増やしたい ➔ 足りない専門性を補いたい
「バスに誰を乗せるか」問題 ➔ モブが合わない人はもちろんいる ◆ 「特定の技術/言語だけがやりたい」 ◆ 「自分がやったという感触がほしい」 スキルマッチ <<< 越えられない壁
<<< モブ適正 ◆ 最低限のスキルは要求(チームと歩速を揃えられる)
モブ採用 候補者にモブに実際に入ってもらう ➔ だいたい一時間もやれば感じはつかめる ◆ 面接的なことはなし、お互いリラックスして ◆ お互いチームの雰囲気とマッチするか? ➔ 「スキルスカウター」
◆ 百聞は一行にしかず、一緒にコード書くのが一番 ◆ 操作の手付き/指示の理解度で図る バスに乗せる人はチームが決めるのがだいじ
コンピテンシー マトリクス チームの状況と 対策を共通認識に ➔ チームに足りないコンピテンシー (能力)を可視化する ➔ どう補うか?をチームで議論する ◆
誰かがエキスパートをめざす ◆ よそから探す
「人が増えたぞ!」 シチュエーション 5.
チームの人数が増えてくると、 同じやり方でできなくなってくる... 「スケール」問題
「人が増えたねー。 モブ2つに分けようか」
_人人人人人人_ > つらい <  ̄Y^Y^Y^Y^Y ̄
無策のスケールアウトは死 ➔ 練度が低いチームを2つに分けると、 どちらも機能しなくなる ➔ 文化は多数派で決まる 「楽しくない」 「進まない」 「だれも喋らない」 etc...
「人が増えたけど... このままやろうか」
_人人人人人人_ > つらい <  ̄Y^Y^Y^Y^Y ̄
無策のスケールアップも死 ➔ ひとりあたまの貢献度が薄れる ➔ 集中が下がる ➔ リソース効率が悪すぎる
どうすれば...
None
同期モブ / Synced Mob 練度の高いチームを2つに分ける ➔ 半数以上が練度が高い状態を保つ ➔ 地理的に近くに配置する ➔
モブ間のコミュニケーションを自由にとる ➔ 同じフィーチャーをやる 物理的な距離の近さは正義!!
Q. 5人のときはどうする?
こんなかんじ?
ペアがめちゃきつい! 楽しい!! キッツ...
こう!
接続モブ / Double-Linked Mob 1人のナビゲーターが2つのモブを”つなぐ” ➔ 1人が2つのモブでナビゲータをやる ◆ モブ同士を "つなぐ"
Linking-Navigator ➔ Linking Navigator が一番ツライので時間交代 物理的な距離の近さは正義!!
まとめ ➔ たくさんの課題に直面 ◆ チーム:効率、エキスパート、学び ◆ 組織:採用、スケール ◆ 他にも... •
評価、コミュニケーション、リモート、受け入れ、貢献感、etc… ◆ モブプロ好きな方、情報共有しましょう! ➔ まだまだ毎日適応中! 大変だけど...
モブがデフォルトになった後、 「モブプロやめよう」とはならなかった。 何か本質的なものを見つけたように感じている!
Thank you for your kind attention!