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
880
ペアプロという選択肢
ペアプロのメリット・デメリットをまとめました
nerusan
February 08, 2023
Tweet
Share
More Decks by nerusan
See All by nerusan
Git・Git-Flowについて
nerusan_main
0
1k
Other Decks in Programming
See All in Programming
一人でAIプロダクトを作るための工夫 〜技術選定・開発プロセス編〜 / I want AI to work harder
rkaga
13
2.9k
Portapad紹介プレゼンテーション
gotoumakakeru
1
130
詳解!defer panic recover のしくみ / Understanding defer, panic, and recover
convto
0
110
Azure SRE Agentで運用は楽になるのか?
kkamegawa
0
320
WebAssemblyインタプリタを書く ~Component Modelを添えて~
ruccho
1
920
KessokuでDIでもgoroutineを活用する / Go Connect #6
mazrean
0
120
学習を成果に繋げるための個人開発の考え方 〜 「学習のための個人開発」のすすめ / personal project for leaning
panda_program
1
110
未来を拓くAI技術〜エージェント開発とAI駆動開発〜
leveragestech
2
180
個人軟體時代
ethanhuang13
0
110
The State of Fluid (2025)
s2b
0
200
go test -json そして testing.T.Attr / Kyoto.go #63
utgwkk
1
120
デザインシステムが必須の時代に
yosuke_furukawa
PRO
2
120
Featured
See All Featured
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
30
9.6k
Agile that works and the tools we love
rasmusluckow
329
21k
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.5k
Fireside Chat
paigeccino
39
3.6k
The Straight Up "How To Draw Better" Workshop
denniskardys
236
140k
The Invisible Side of Design
smashingmag
301
51k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
31
2.2k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
9
780
Embracing the Ebb and Flow
colly
87
4.8k
Become a Pro
speakerdeck
PRO
29
5.5k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.4k
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