Success is doing, not wishing.

エンジニアリングを中心に様々なカテゴリについて雑多に書くブログ。

海外拠点の外国人エンジニアとのリモートペアプログラミング体験記

f:id:okohs_dev:20210602093625p:plain 先日弊社の海外拠点(フランス)で働く外国人エンジニアとリモートでペアプログラミングを行うという貴重な経験をしたので、背景や今後やるならどうしたいかなど含めインターネットの海に放したいと思います。

今回のトピックと背景

今回のリモートペアプログラミングでは、普段日本とフランスで共同開発・利用しているAPIプラットフォームのうち、私が日本特有の要件向けに実装した認証基盤のコードをリファクタリングしました。ペアプログラミング相手は、フランスで認証基盤を開発しているシニアエンジニアのOlivierです。

これまで、機能面で修正すべき部分はIssueをあげてもらうことで対応したのですが、認証基盤の仕組みを活かした効率的な実装方法については一緒に作業したほうが早いよね、ということになり、今回のペアプログラミング開催に至りました。

準備

使用したツールは、VS Code (Live Share), IntelliJ IDEA (普段使っているIDE), Slack (Slack Call) です。リモートのペアプログラミング自体が初めての試みだったので、予めOlivierと事前にコードがLive Shareで共有できているか、コードにコメントを同時に書いて確認しました。

f:id:okohs_dev:20210602093628p:plain

ペアプログラミングの開催

Olivierが事前にコードを見てくれていたので、一番効果がありそうな共通化と無駄なコードの削除について今回は取り組みました。認証基盤の設定を使えば複数のモジュールを一つのモジュールにまとめられる事を教えてもらいました。

実際のコーディングでは、VS Codeだけを利用するつもりでしたが、普段と違うIDEだったので、結局renameなどのファイルを横断した操作は、使い慣れたIntelliJで行っていました。

また、共通化の際の設計方針をOlivierがホワイトボードに書いてくれたのですが、Slack Callの画質なのかカメラの画質なのか、細かい文字が読めず苦労しました。ここは、ちょうど日本から出張していた同僚(外国人エンジニア)が同席してくれたので、彼に写真で送ってもらうことでなんとかなりました。

あっという間に時間が来てしまったので、リファクタリングした内容は別ブランチに切って、続きはPRとSlackで会話することになりました。

ペアプログラミングを振り返って

良かった点は、やはり普段なかなか国内でレビューできない内容までガッツリと見てもらえて実際に改善できたことです。Live Shareでコード以外にテキストでも適宜コメントやリンクなどを共有できたのも良かったです。

改善したい点は、ホワイトボードが見えず、図でのコミュニケーションにラグがあったことです。今後は、作業用のGoogleスライドやlucidchartなどを予め共有しておくなどして対策したいです。

まとめ

  • 場所も言語も違う相手とリモートペアプログラミングする際は、コード・音声・メモ・ホワイトボード等共有できるものはなんでも共有するとコミュニケーションが取りやすい
  • VS CodeのLive Shareはリモートペアプログラミングの強い味方