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
nerusan
February 08, 2023
Programming
0
860
ペアプロという選択肢
ペアプロのメリット・デメリットをまとめました
nerusan
February 08, 2023
Tweet
Share
More Decks by nerusan
See All by nerusan
Git・Git-Flowについて
nerusan_main
0
950
Other Decks in Programming
See All in Programming
CTFのWebにおける⾼難易度問題について
hamayanhamayan
1
890
フロントエンドテストの育て方
quramy
3
330
Devinのメモリ活用の学びを自社サービスにどう組み込むか?
itarutomy
0
700
AI Agentを利用したAndroid開発について
yuchan2215
0
190
プログラミング教育のコスパの話
superkinoko
0
110
コードジェネレーターで 効率的な開発をする / Efficient development with code generators
linyows
0
180
Windows版PHPのビルド手順とPHP 8.4における変更点
matsuo_atsushi
0
350
読もう! Android build ドキュメント
andpad
1
190
技術好きなエンジニアが "リーダーへの進化" によって得たものと失ったもの
pospome
5
1.3k
もう一人で悩まない! 個の知見をチームの知見にする3つの習慣と工夫 / Into team knowledge.
honyanya
3
500
研究開発と実装OSSと プロダクトの好循環 / A virtuous cycle of research and development implementation OSS and products
linyows
1
180
20250326_生成AIによる_レビュー承認システムの実現.pdf
takahiromatsui
13
2.9k
Featured
See All Featured
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
For a Future-Friendly Web
brad_frost
176
9.6k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
8
690
Navigating Team Friction
lara
183
15k
Stop Working from a Prison Cell
hatefulcrawdad
268
20k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
120k
Git: the NoSQL Database
bkeepers
PRO
429
65k
Fireside Chat
paigeccino
37
3.3k
How to Think Like a Performance Engineer
csswizardry
22
1.4k
Being A Developer After 40
akosma
89
590k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
12k
Fashionably flexible responsive web design (full day workshop)
malarkey
406
66k
Transcript
ペアプロという選択肢 @nerusan
目次 1. 背景 2. 提案 3. 効果 2
目次 1. 背景 2. 提案 3. 効果 3
背景:現状の開発課題 • 作った人が退職しており修正に時間がかかる • ドキュメントがない、間違っている、古い • コードが複雑で何か書いているかわからない • 誰かが休むと仕事が止まる •
キャリアチェンジしにくい(フロントからバックなど) 4 属人化により運用が大変
背景:ありたい姿 人の移動を前提とした開発体制 • 急な人の入れ替わりが発生しても 問題なく開発可能 ◦ キャリアチェンジ ◦ 転職 ◦
休暇 5 フロントエンド React/CSS/TS バックエンド Go/SQL/REST
背景:課題 とりあえず動くものを早くお客様に届けることが評価される文化を変え ることが大事 • 運用をあまり考えていない個人任せの開発スタイル • とりあえず動くものを早くお客様に届けることが評価される文化 • シンプルより多機能(一部顧客しか利用しない機能)が良いとされる 6
技術力に対して月のリリースが多 くて作るので手一杯... 人が足りず、スケジュールも間に 合わない... 企画 開発
目次 1. 背景 2. 提案 3. 効果 7
提案:アジャイル開発の登場 短いサイクルで繰り返し開発することで素早く開発する手法 • XP(エクストリームプログラミング) ◦ 変更への対応力を高めた手法 ◦ テスト駆動開発 ◦ ペアプログラミング/モブプログラミング
• スクラム ◦ スケジューリングや進捗を重視する手法 ◦ デイリースクラム ◦ スプリントプランニング 8
提案:アジャイルが解決すること 長期運用を見据えた開発が可能 9 https://udemy.benesse.co.jp/development/system/agile.html
提案:ペアプログラミングの提案 1つのエディターを共有して2人でコードを実装する アジャイル開発とともに採用されることが多い 2人以上で行うことはモブプログラミングともいう 10 ドライバー コードを書く人 ナビゲーター ドライバーを補佐
提案:具体的なやり方:設計 設計とテスト作成もペアで行い、抜け漏れを防ぐ ペアの組み合わせ • バックエンド1名、フロント1名 ←人員不足も解消できる • バック2名 • フロント2名
11
提案:具体的なやり方:実装 • ドライバー ◦ 主導的にコードを書く • ナビゲーター ◦ ドライバーの補佐 ◦
ドライバー行き詰まったら一緒に考える ◦ リファクタの指示 ◦ 仕様書確認・更新 • 1時間おきまたはキリの良いタイミングで交代 12
提案:具体的なやり方:フロント1名バック1名の場合 13 設計 バック実装 フロント実装 テスト ペアで詳細設計 Swagger作成 DB設計 画面設計
ペアプロ Swagger・仕様書 をもとに実装 ペアプロ Swagger・仕様書 を元に実装
目次 1. 背景 2. 提案 3. 効果 14
効果:メリット • キャリアチェンジしやすい ◦ フロント、バックどちらもチャレンジしやすい環境 ◦ 一方の人員不足を解消できる • 人の出入り容易 ◦
新しい人は入りやすいし、転職しやすい ◦ 採用に繋がる • 相互確認でミスを防止 ◦ コード及びサービス品質向上 • リモートによるコミュニケーション不足の解消 ◦ 相談しやすいので効率にも繋がる • エディターの使い方、コマンド操作も学べる 15
効果:デメリット • 工数が増える ◦ 毎月のリリースを少し調整する必要がある • 対立が起きると効率が下がる ◦ 実装方法の違いで争う可能性がある •
自身のペースでできない ◦ 一人でやる方が効率的な人にとって不向き 16
効果:デメリットに対する考え • 工数が増える →トラブル対応が全員可能 →技術的ナレッジ形成 →長期的にみて効率化につながる • 毎月のリリースを調整(減らす)する必要がある →代わりに品質活動に時間を当てているので今後の拡張性、品質が良くなる →スウォーミングを導入するなどで改善
17
効果:工数 Laurie Williamsのペアプロ効果に対する研究[1]によると、ペアプロによって 工数が2倍になるのではなく 15%増、バグの数は15%減 プログラムの正確性は15%向上し、最終的な成果としては、 15%から 60%の効率向上があるとされている [1] https://collaboration.csc.ncsu.edu/laurie/Papers/XPSardinia.PDF
18
提案:採用している会社 メルカリ https://engineering.mercari.com/blog/entry/2018-06-27-100628/ サイボウズ https://blog.cybozu.io/entry/2022/06/08/141944 https://blog.cybozu.io/entry/2022/04/14/170000 LayerX https://tech.layerx.co.jp/entry/2021/04/09/090000 Yahoo https://about.yahoo.co.jp/hr/linotice/20180925.html
19
提案:採用している会社 ZOZO https://techblog.zozo.com/entry/remote-pairprogramming グロービス https://note.com/globis_engineers/n/n739a36da3893 クラスメソッド https://dev.classmethod.jp/articles/try-remote-pair-programming/ ホワイトプラス https://style.wh-plus.co.jp/enginners-development-style-b/ 20
提案:サイボウズの事例1 • 基本モブプロ • 参加人数2~4人 • ドライバー ◦ ナビゲーターに説明しつつ自主的 にどんどん記述
◦ 行き詰まったらナビゲータと解決 に向けて調査 • ナビゲーター ◦ ドライバーの意図を読み取り、リ ファクタの指示などしたりする ◦ つまづいた点、参考になった点な どメモに残す(ナレッジ形成) 21 https://blog.cybozu.io/entry/2022/04/14/170000
提案:サイボウズの事例2 ソロプロとモブプロを両立したスウォーミング 22 https://blog.cybozu.io/entry/2022/06/08/141944
提案:サイボウズでの事例2 23 優先度の高いタス ク担当者をキャプ テン 優先度 高
提案:サイボウズの事例2 キャプテンから招集がかかれば、メンバーは作業を止めて、 モブプログラミングを行い早急解決に努める 24