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
モブプロって??
Search
Katsuya
November 07, 2022
Programming
180
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
モブプロって??
Katsuya
November 07, 2022
More Decks by Katsuya
See All by Katsuya
カンファレンスでリフレッシュ!無理なく楽しむカンファレンス参加術 / How to enjoy conferences without stress
kattsuuya
1
9.8k
会社の先輩とアプリ開発始めてみた!『Fearless Change』のパターンで振り返るサブプロジェクトの始め方 / How to start a subproject
kattsuuya
0
510
enPiT修了生の日常の仮説検証 / "Hypothesis Verification in Daily Life by an enPiT Graduate"
kattsuuya
0
460
Other Decks in Programming
See All in Programming
気圧・高度・GPSを記録&可視化するアプリ「Koudo」を作った話
hjmkth
1
270
メソッドのジェネリクスでGoの夢は広がるか? / Kyoto.go #65
utgwkk
3
800
TAKTでAI駆動開発の品質を設計する
j5ik2o
7
1.3k
ユニットテストの先へ:テスト技法で要求・仕様を整理するJava開発実践 / Beyond_Unit_Testing_Practical_Java_Development_Techniques_for_Organizing_Requirements_and_Specifications
shimashima35
0
410
正しくソフトウェアを作る、前提を疑うための認知の視点 / doubt-premise
minodriven
21
6.7k
Vite+ Unified Toolchain for the Web
naokihaba
0
320
Spring Security 実践 ─ GraphQL APIで実務に役立つ 認証・認可 を学ぶ
wagyu
0
240
脅威をエンジニアリングの糧にして――現場編 / Turning Threats into Engineering Fuel — Field Edition
nrslib
0
280
Oxlintのカスタムルールの現況
syumai
6
1.1k
決定論的オーケストレーションの設計と実装 / Design and Implementation of Deterministic Orchestration
nrslib
4
1.4k
軽量Java基盤の設計 DIコンテナに頼らない、長期保守と1秒起動の実現 JJUG CCC 2026 Spring
macha64
0
540
ふつうのFeature Flag実践入門
irof
7
4k
Featured
See All Featured
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
270
WENDY [Excerpt]
tessaabrams
11
38k
Practical Orchestrator
shlominoach
191
11k
SEO for Brand Visibility & Recognition
aleyda
0
4.6k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
210
Fireside Chat
paigeccino
42
4k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Being A Developer After 40
akosma
91
590k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
310
Technical Leadership for Architectural Decision Making
baasie
3
410
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
Transcript
モブプロの ここがすごい!! 2022.02.15
• モブプロとは • モブプロの効果 • どんなときにモブプロで作業するか おしながき
モブプロを理解し 開発手法の選択肢の1つに入れる 本日のゴール
モブプロとは
モブプロ ◦ 同じことを ◦ 同じ時間に ◦ 同じ場所で ◦ 同じPCで 全員で
行うこと
None
役割 ドライバ 1人 • ナビゲータの指示通りにコードを書く • 指示されていないことはやらない ナビゲータ
n人 (n ≧ 1) • ドライバに具体的な記述内容を伝える • モブ(全員)で相談して解決策を見出す
それぞれの役割で意識すること ドライバ • 書いている・書こうとしていることを口に出す • わからないことは質問する • 理解してないけど言われたとおりに書くは✕ • 自分1人で黙々ゴリゴリ実装しない
ナビゲータ • 構造化した指示を出す ◦ 「hogeをする関数を実装したいので、 まずfunction hogeと書いて、、、」 • ドライバの理解度がどの程度か意識する •
(特に熟練者じゃない人は)わからないこと があったらその場で言う それぞれの役割で意識すること
モブプロのイメージ 作業してる様子を全員で見る 全員で考えたことをドライバが書く
モブプロの効果
• 進捗や情報の共有のための時間的コストが下がる ◦ 後で共有すると同期に時間がかかる • 考え方、プログラミングテクニックなど ◦ まず先に手書きのメモでイメージをまとめるのか ◦ この場合の変数名は、、、
◦ そんな書き方あったんだ! ◦ こういうショートカットキーがあってね、、、 その場でのナレッジ共有
• 複数人の目で見れる ◦ バグに気づきやすくなる ◦ 他のモジュールの設計思想を持ち寄れる • その場で良い設計・記述について議論 ◦ 可読性
◦ 適度に関数やコンポーネントに切り出しているか ◦ 良い命名か 即座にコードレビュー
• 認知的徒弟制 ◦ 1. 熟練者がまずやってみせる ◦ 2. 熟練者が学習者に課題を与え、ヒントやアドバイスを与えながら解か せる ◦
3. 2. と同様の形式で大きい課題を与える ◦ 4. 学習者が一人で取り組む • 段階的な新人教育 ◦ 認知的徒弟制と似たような手順で • モジュール理解の初速を上げる ◦ 1からコードリーディングさせるよりも遥かに速い 新人教育などに有効
• 1人に責任がのしかかることがない ◦ 解決方法がうまく浮かばないときとか ◦ うまく行かないときの罪悪感 ◦ みんなで問題を倒す意識 • トラックナンバーを上げる(属人化を防ぐ)
◦ 大学が忙しかったり急な予定が入っても対応できる組織に 心理的安全性の確保
• モブプロをやったことがある人の感想 ◦ 普段他の人が開発時に考えている事がわかって良い! ◦ チーム内の技術力の差が埋まって良かった ◦ 何より楽しい! ◦ 作業効率が落ちるなぁ
• ネット上の実践記事より ◦ 意思決定のスピード感、ハマる時間が減るのが良い ◦ 初心者が置いていかれない モブプロ実践者の声
いつモブプロで作業するの?
モブで作業するタスク・そうでないタスク 種類 特徴 例 モブ向き • 不確実性が高い • フロー効率を上げたい •
属人化を防ぎたい • 解決方法が不明瞭で 探り探り実装するIssue • マニュアルの英語化作業 • モジュール引き継ぎや 新人教育 分担作業向き • やることが決まっている • リソース効率を上げたい • 動画データの整理分類 • 目的の決まっている 文献調査 • 熟知している人による バグ修正など
• モブプロとは ◦ 1人のドライバ+複数人のナビゲータでプログラムを書く • モブプロの効果 ◦ 即時的なナレッジ共有 ◦ 認知的徒弟制
◦ 心理的安全性の確保 • どんなときにモブプロで作業するか ◦ 不確実性が高い、属人化を防ぎたいタスク まとめ
モブプロを理解し 開発手法の選択肢の1つに入れる 本日のゴール(再掲)