Uzabase Advent Calendar 2025 の6日目を担当する @hayatohanaoka です。
よろしくお願いいたします!
はじめに
私の所属する会社 Uzabase では、開発手法としてXPを採用しており、SWEはほぼ全ての作業をペアプログラミングで行なっております。
どのようにペアプログラミングを行っているかは、
弊社のCTOが策定した ペアプログラミングのガイドライン というドキュメントがあるので、
興味のある方は是非ご一読ください。
(Uzabaseでは、上記ガイドラインを入社したて人と必ず読み合わせています。)
そして、今回の記事は、ペアプロをする環境の話を書いていきます。
内容はズバリ、 最近復活し始めたペアプロPC を使ってみた感想です!
2人1組で1台のPCを使って開発を行う環境は、日本において数少ない事例だと思うので、
この記事を通じて読者の皆様にはリアルな感想をお伝えできればと思います。
拙い文章で恐縮ですが、最後までよろしくお願いします!
ペアプロPCが復活した背景
XPのプラクティスの一つであるペア・プログラミングに則るなら、そもそもペアプロは1台のPCで行うものだったはずです。
かの有名な白本にも、以下のような記述があります。
「同じマシンを前にした2人で、本番用の全てのプログラムを書くこと。」
引用: エクストリームプログラミング, 2015, オーム社, P.40
実際、Uzabaseでも過去はそのようにペアプロを実施していました。
(社歴長い人にそう聞いた)
しかし、2020年の某ウイルスの流行によって出社が制限され、
リモートでのペアプロ環境が整備されたことで、ペアプロPCは使用されなくなっていきました。
それから5年以上の年月が経ち、某ウイルスの脅威も落ち着いてきました。
世間も以前のような出社頻度に戻りつつあります。
その流れはUzabaseも例外ではなく、私が所属するチームの中でも週5出社のチームが増え始めました。
結果、
出社してペアプロを行うのなら、ペアプロPCを使うのが良いだろう!
ということで、ペアプロPCが復活しました 👏👏👏
使ってみた感想
さて、本題です。
結論、
開発体験はとても良くなった!しかし、伸び代もある!
となります。
それぞれ箇条書きしてくと、
良い点
- 開発環境が統一され、変なハマりが減った
- 作業の中断に強くなった
- Diffの運用がなくなった
伸び代な点
- slackで来た個人連絡や、個人の予定に気づきにくくなる
- キー配列(USやJIS)やキーバインドが乱れる
- 最後に作業していた人やPCが分からなくなる
上記のように思いました。
それぞれの詳細を、以下に書いていきます。
良い点について
開発環境が統一され、変なハマりが減った
これはUzabaseの個人貸与PCのOSが mac OS と ubuntu の2つあることに起因します。
「環境構築で ubuntu だと不要な特殊な設定が mac OS だと必要で手間がかかる」
等のことがよく起こっていました。
ペアプロPCではこういったことが無くなり、
ストレスフリーで開発に移行することができるようになりました。
作業の中断に強くなった
個人PCを用いたこれまでのペアプロ体制だと、
ホストを行っていたメンバーが作業中のPCを持っていってしまうと、
作業の続行が困難になることがごく稀にありました。
中断に強いのがペアプロの良さなのに、それが1つ損なわれていた訳です。
ペアプロPCを用いた体制なら、人が抜けても作業内容はペアプロPCに残るので、
その状況は起こらなくなりました。
Diffの運用がなくなった
個人PCを用いたこれまでのペアプロ体制では、まだ実装が終わりきらなかったとき、Diffを持ち歩いて引き継いでいました。
Diffが正常に当たらなかったり、正しく吐かれていなかったり、当てるDiffを間違えたり...
Diff運用はトラブルの元でもあったので、ペアプロPCでそれが無くなるのは、とてもストレスフリーになりました。
伸び代な点について
slackで来た個人連絡や、個人の予定に気づきにくくなる
ペアプロPCでの作業に集中しすぎるあまり起こっている出来事です。
個人PCのslack通知や予定通知をONにする等の工夫で一定回避できますが、
個人PCを用いたペアプロの時よりも見落としが増えたのは事実なので、
少し気をつけたい事項です。
キー配列(USやJIS)やキーバインドが乱れる
USキーボード、JISキーボードのどちらが使いやすいか?vim や emacs を使うかどうか?
これは導入初期段階でペアやチームメンバーと相談したり、キーボード配列の調整機能をうまく使っていく必要があると思います。
例えば...
vim や emacs を使用することに関して、使ったことのないメンバーが使えるようになるチャンスという見方もありますが、入社したてのメンバーが諸々のキャッチアップと同時進行するのが厳しそうな場合は、一旦使用するのは控える選択を取る
といったことを、初期で考えなければなりません。
最後に作業していた人やPCが分からなくなる
これは一定解消するやり方があると思ってはいるのですが、ペアプロPCに残っている差分の状況を知っている人が誰なのか、どこのPCなのかを探すことが多くなった気がしています。
slackに1日の終わり段階の作業状況を残す、デイリープランニングでの共有の強度を上げる等、
工夫の方法はあると思うので、色々試して改善したいところです。
ちなみに、私のいるチームでは各PCに野菜の名前(ほうれん草、小松菜など)をつけて、PCを識別するラベルとしました。
まとめ
開発のストレスが大幅に減るので、ペアプロPCはとても良い!!
2人の思考を揃えてプログラミングを行うということが、とてもやりやすくなった!!
やっぱりペアプロをするなら、ペアプロPCを使うのがいいんだなぁ...と感じました!!
おまけ
ペアプロPCの環境構築とか、色々めんどくさくね??
と思った方もいるのではないでしょうか?
我々は Nix という技術を使って すこーしだけ 楽をしました!! 💪
詳しくは割愛しますが、興味のある方は こちらの記事 が参考になるかと思います!