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
1
160
モブプロって??
Katsuya
November 07, 2022
Tweet
Share
More Decks by Katsuya
See All by Katsuya
カンファレンスでリフレッシュ!無理なく楽しむカンファレンス参加術 / How to enjoy conferences without stress
kattsuuya
1
9.2k
会社の先輩とアプリ開発始めてみた!『Fearless Change』のパターンで振り返るサブプロジェクトの始め方 / How to start a subproject
kattsuuya
0
450
enPiT修了生の日常の仮説検証 / "Hypothesis Verification in Daily Life by an enPiT Graduate"
kattsuuya
0
400
Other Decks in Programming
See All in Programming
All(?) About Point Sets
hole
0
220
Querying Design System デザインシステムの意思決定を支える構造検索
ikumatadokoro
1
1.2k
手軽に積ん読を増やすには?/読みたい本と付き合うには?
o0h
PRO
1
110
251126 TestState APIってなんだっけ?Step Functionsテストどう変わる?
east_takumi
0
230
Flutterチームから作る組織の越境文化
findy_eventslides
0
600
Micro Frontendsで築いた 共通基盤と運用の試行錯誤 / Building a Shared Platform with Micro Frontends: Operational Learnings
kyntk
0
1.6k
How Software Deployment tools have changed in the past 20 years
geshan
0
11k
AIと協働し、イベントソーシングとアクターモデルで作る後悔しないアーキテクチャ Regret-Free Architecture with AI, Event Sourcing, and Actors
tomohisa
2
9.5k
AI駆動開発ライフサイクル(AI-DLC)のホワイトペーパーを解説
swxhariu5
0
1.5k
CloudflareのSandbox SDKを試してみた
syumai
0
180
[堅牢.py #1] テストを書かない研究者に送る、最初にテストを書く実験コード入門 / Let's start your ML project by writing tests
shunk031
11
6k
Flutterアプリ運用の現場で役立った監視Tips 5選
ostk0069
1
520
Featured
See All Featured
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Embracing the Ebb and Flow
colly
88
4.9k
Faster Mobile Websites
deanohume
310
31k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Rebuilding a faster, lazier Slack
samanthasiow
84
9.3k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.1k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
We Have a Design System, Now What?
morganepeng
54
7.9k
Building Adaptive Systems
keathley
44
2.8k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
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つに入れる 本日のゴール(再掲)