この記事はClassi Advent Calendar 201811日目の記事です。
ClassiのCSチームでRailsエンジニアをしている@SoarTec-labです。
CSチームのRailsエンジニアは2人なので毎日ペアプロで開発を行なっています。
この記事では私がこれまでペアプロをしていて感じた良いところ5つ、問題点3つを紹介します。
良い所
1. Pull Requestのレビュー待ちで放置がなくなる
チーム開発の中で以下の様な問題は少なからずあると思います。
- 優先度の低いPull Requestはレビュー放置され続け、最悪風化してしまう
- 開発が完了しているのにPull Requestのレビュー待ちでリリースできない
- キチンとレビューする時間が無く、レビューの確度が低いままリリースしてしまう
ペアプロではレビューをしながら進めて開発を進めるのでレビューの時間がほとんど無くなります。
1人で開発した部分もペアプロ開始時に共有を兼ねて、対面レビューするので同様です。
その際、現状のコードになっている経緯までを共有するので確度の高い意味のあるレビューができます。
2. 記憶の引き出しが増える
複数プロジェクトを対応していると、記憶が分散され対応の初速が落ちてしまいがちですが、
ペアで対応している場合、どちらかが覚えていることで切り替えがスムーズになり、
タスク着手の初速が上がります。
3. ボーイスカウトパワーが上がる
技術的負債の返済は基本的にボーイスカウトルールで対応しています。
1人で対応する場合と比べペアの時の方が、負債初見時のダメージが圧倒的に少ないです。
その為、ダメージが小さい=モチベーションを高く維持できる為、より多くの技術的返済ができています。
4. 情報量が多くなる
社内の情報、良かった書籍、ネット上の記事など共有が活性化され得る情報が多い為
共通の認識が確立すると共に、属人化している知識を引き出す事ができます。
5. なぜそのコードにするかが明確になる
なぜこのコードにするかを会話しながら進めるので、"なんとなく"・”経験から"・"とりあえずコピペ"が無くなります。
自然とコード、アルゴリズムレベルでの品質が上がります。
困ったところ
1. 違和感の解消に時間を使いすぎてしまう
違和感を感じても直ぐに答えが見つからない場面もあります。
タスクの完了を第1と考え、違和感を感じた箇所はメモに残し全体が完成した後にもう1度するというルールにしています。
完成後に確認する事で違和感の正体が分かったり、全体で見たら悪くないなど気づきがあります。
2. 休憩を忘れてしまう
コードリーディング、設計、開発、テスト、リファクタリング、レビューを会話しながら繰り返していくので、非常に集中します。
特に慣れるまでは没頭してしまうので、意識的に休憩を取る様にしました。
現在は、ポモドーロテクニックを実践していて、1時間を以下の様に区切り休憩を意識的に取っています。
ペアプロ: 25分
休憩: 5分
-- 交換 --
ペアプロ: 25分
休憩: 5分
3.フローに状態入れない
1人で開発する時のフロー状態に入る事はできませんが、ペアプロも集中力をとても使います。
集中力を上げ開発パフォーマンスを上げる為、前述のポモドーロテクニックを実践していたりと工夫をしています。