ペアプロで得られるもの
2017/08/27 Symfony meetup #17
- 日本Symfonyユーザー会
- Symfony歴6年
今日お話すること
- ペアプロで得られるもの(メリット)
- ペアプロの難しいところ(デメリット)
今日お話したいこと
- ペアプロで得られるもの(メリット)
- ペアプロの難しいところ(デメリット)
※ よって、Symfony関係ありません
今日お話しないこと
ペアプロのやり方は話しません
ペアプロにおける開発環境
ペアプロで得られるもの
月並みですが
- 成果物の品質向上が期待できる
- コードの共有所有のが進む
- 新メンバー(中途採用や別チームの人)の立ち上がりが早い
- ジュニアの教育として有効
- 開発tipsの共有(環境、ツール)
成果物の品質向上が期待できる
相談しながら開発するので良いものが生まれやすい
- 機能やUI
- システムの設計
- ネーミング
コードの共有所有のが進む
- 一緒にコードを書くので単にレビューするだけよりも深く理解することができる
- エンジニアの冗長化
- 1人が休んだとしても安心(ビジネス目線)
新メンバーの立ち上がりが早い
- システム構成が分かる
- コードだけでは読み取れないビジネス背景が分かる
ジュニアの教育として有効
- 直接教えられるのは得られるものが大きい
- PRベースで「直してください」とやり取りしたらコメントだらけ・・・
実際やってみて分かったこと
実際やってみて分かったこと
意外と開発効率は落ちない
- 開発はコーディングそのものより考えている時間の方がほとんど
- タイピング中は手元に集中しがちで考えることが難しいが、ナビゲーターはその間も考え続けることができるので次にやるべきことにスムーズに着手できる
- ナビゲーターはミスにもすぐ気が付いてくれる
やってみて感じた最大のメリット
やってみて感じた最大のメリット
PRにおける心理的ストレスからの開放(主観です)
レビュアー、レビュイーどちらの立場でもストレスから開放されます。
レビュアーの立場
レビュアーの立場として辛いこと1
たくさんのレビューをしないといけない
- 特定の人にレビューが集中する(レビュー地獄で開発できない)
- 変更内容の保証まではできない
- 本当にこれでよいのか判断がつかない
- どこまで考えられて作られたのか、コードだけで汲み取るのは難しい
- 下手すると変更の背景自体が良く分からない
レビュアーの立場として辛いこと2
github上のやり取りが辛い
(コミュニケーションコスト)
- コードは直して欲しいけど、それを伝えるのが大変
- PRが巨大化する前に設計相談して欲しかった
- できれば全部書き直して欲しい(でも今更そこまで言えない)
ペアプロはレビュアーの負担が軽くなる
ペアプロしたものに関しては変更背景が分かっている = レビユー時間が短縮できる
- 実装方針にズレが出ない
- どこまで考えて作て作ったのか、妥協点はどこだったのか
- 特に効果が大きいのはリファクタリング
- コードのdiffだけで読み解くのは辛い
- 思考過程が追えるので変更漏れがないか確認も簡単
ペアプロはレビュアーの負担が軽くなる
- 複雑なものほどレビューコストが下げられるし安心
- 書き終わったコードに対して、「こうして欲しい」と後から言う必要がない
- なにより一緒に開発することで、自分の開発時間も確保できている
⇒ 心の健康
レビュイーの立場
レビュイーとして辛いこと1
何度も手戻りが発生してしまう(特にジュニア)
- レビューで何度も差し戻しされて一向にリリースできない
レビュイーとして辛いこと2
動くものはできたけどこれで良いか自信が持てない
- クラス設計、ディレクトリ設計
- URLやネーミング等の簡単なことも含む
- 言語やフレームワークなどのお作法
ペアプロはレビュイーの心理的負担も軽くなる
これから書くコードに自信が持てる = 安心して開発できる
e.g.
- 今回実装すべきこと
- 実装方針
- ネーミング
- テスト
ペアプロはレビュイーの心理的負担も軽くなる
書き終わった時が完成 = 即リリースできる
その一方で
ペアプロの難しいところ
ペアプロの難しいところ1
達成感は得づらい
- 自分で1人でやり遂げたわけではない
ペアでやると窮屈に感じる時もある
- もちろん1人で書きたい時もある
- いいアイデアを思いついたときは一気に書き上げたい
ペアプロは苦手という人はどうしてもいる
ペアプロの難しいところ2
人事評価
- 誰の成果なのか?
- 目標もチームのエンジニア皆同じになりがち・・・
まとめ
まとめ
- ペアプロで得られるメリットは総じて大きい
- 特に心理的ストレスからの開放は計り知れないほど大きい
- 一方デメリットもあるので組織にアジャストする必要性はある