#21「ミツエーリンクスにおけるペアプロの取り組み」

今回は当社で取り組み促進中のペアプログラミングについて、取り組みの背景、当社なりの取り組み方やその効果などをご紹介します。

橋本
こんにちは!
加藤
こんにちは!
橋本
ミツエーテックラジオは株式会社ミツエーリンクスのスタッフがWebデザイン、 WebフロントエンドなどのWeb技術に関するニュースやツールなどをシェアするためのポッドキャストです。
今回は橋本と加藤さんの2人で社内の取り組みの一つであるペアプロをテーマに、なぜペアプロをやるのか、どのように取り組んでいるのか、などについてお話しします。加藤さん、よろしくお願いします!
加藤
よろしくお願いします!
橋本
先に簡単にペアプロについて説明しておくとペアプロとはペアプログラミングの略で、2人1組のペアになってプログラミングをすることですね。プログラミングといっても、テキスト差し替えレベルの簡単な内容も作業対象とすることがあります。そういった1つのタスクに対して、実際にPCの操作をしながらコードを書くドライバーと、作業の内容や方向性を考えながらドライバーをナビゲートするナビゲーターの2つに役割分担をしながら作業するものです。
加藤
これまでは、ペアプロといえば同じPCの前に2人で座ってやるのが一般的だったんですけど、リモートワークによってオンラインでペアプロするほうが一般的になってきましたね。
橋本
そうですね。
では、なぜペアプロをやっているのかについて、加藤さん、お願いします!
加藤
はい。まずペアプロは私と橋本君の所属するチームだけではなく、ミツエーリンクス全体でペアプロ増やしていこう!と取り組んでいます。目的としては2つあって、1つ目は経験が浅いスタッフのスキルアップを高速化することです。Web業界は比較的変化のスピードが早い業界というのは周知の事実ですけども、変化が速くても学ぶことは変わらなかったりします。例えばフロントエンドにおいてはHTML、CSS、JavaScript、アクセシビリティ、いまだと表示パフォーマンスとか、歴の長い人はステップバイステップで学んできたことが、経験の浅いスタッフからしたら、一気にドンって渡されるんですよね。
橋本
そうですね。それに加えて会社の独自ルールを覚えたりとか、新卒の場合は社会人としてのマナーとかも覚えないといけないので大変ですよね。
加藤
うん、そうですよね。とはいえ、毎週のように勉強会を開催したり、ずっと付きっきりで教育したりするのも、時間的に難しかったり、そもそも教育できる人が少なかったりするので、日常的にペアプロを行って、1つ1つの案件を学習・成長の場にすることで、より効率的で、高速なスキルアップを目指しましょう!というのが1つ目の目的です。
橋本
実際、ペアプロによるスキルアップ感は半端ないですね。特に業務を行う上で基礎が整っていない新卒なんかは、一気にやり方を吸収できると思います。
加藤
百聞は一見に如かずというのはまさにこのことですね!
目的の2つ目は「対面でなくても経験者の背中が見える仕組みづくりのため」です。リモートワークが増えたことで、これまで隣に座っていた先輩が見えなくなってしまうので、先輩がどう働いているのか、つまり「背中を見て学ぶこと」というのが難しくなってきています。これまでもチャットとか、オンライン通話でコミュニケーションをとりながらなんとかやってきたんですが、それだけではやっぱり背中は見えてこないので、毎回のペアプロを通して自分1人では得られなかっただろうスキルや経験を獲得することを2つ目の目標としています。
橋本
たしかに、質問して答えをもらうだけよりも、実際の作業を見せてもらったりとか、作業のやり方に対してアドバイスをもらったりするほうが気づきや学びは多いですね。
加藤
そうですね。
橋本
次に社内で具体的にどう取り組んでいるのかについてお話ししていきます。
急に全スタッフにペアプロやりましょう!と言っても、どう進めていけばいいのか分からずに混乱してしまうので、まずは各部署からペアプロを主導する代表者を募って、ペアプロ委員会というものを設けました。いきなり部署でペアプロを始めるのではなく、ペアプロ委員会のメンバー同士でペアプロに慣れるための練習期間を設けて、まずは各部署にペアプロに慣れているメンバーが1人いる状況をつくることからスタートしました。自分もチームのペアプロ委員として参加しているんですけど、ちゃんとしたペアプロは初めてだったので、練習期間があるのはすごいありがたかったですね。
加藤
各部署のスタートラインや足並みをそろえるという意味でもいいやり方だったなぁと思います。
橋本
そうですよね。練習期間のあとは、部署のペアプロ委員が進め方を考えながら独自で進めている感じですが、ペアプロ委員会は毎月定期的に開催をしていて、各部署内でペアプロした結果良かった事例だとかTipsなどを共有し合う会になっています。
加藤
やっぱり部署によってメンバーとか案件の特性が違うので、進め方も違っていて面白いですよね。橋本君はどのように進めていますか?
橋本
そうですね、自分は事前に相手に対してペアプロの予定を入れておいてから進めることが多いですね。というのも、当社のような制作会社は、同じ部署でも人によって担当している案件がバラバラだったりするので、いきなり「ペアプロいいですか?」と声をかけても、「これどういう案件?」という認識を合わせるところからスタートする必要があったりするんですよね。
加藤
なるほど。たしかに、ペアプロする部分以外のところも理解していないとナビゲーターが正しくナビゲートできないこともありそうですね。逆に言えば、そこの前提知識を共有できていれば、わりとカジュアルにペアプロしたりもできる感じですね。
橋本
そうですね!準備が整っていれば、「ちょっといいですか?」と声をかけてペアプロするとかもできると思います。
あとは、実際にペアプロを始める前にペアプロで行う予定の作業内容をあらかじめTODOリストとして洗い出しておいたり、ペアプロで達成したいゴール地点を決めて、ペアプロ中に正しく目標に向かって進められるようにおこなっています。
加藤
たしかに、ペアプロをやっていると本来のタスクとは別のところに目が行ってしまったりして、いつの間にか違うタスクやってるなんてことも起こるので最初にゴール地点を明確に定めておくことは大事ですね。
橋本
そうですよね。
実際にペアプロする時間になったら、TeamsのTV会議で画面共有をしたり、VS CodeのLive Shareを使って対面でなくてもペアプロできる体制を取っています。あとは一回一回のペアプロから学びを得ることをより意識するために、ペアプロが終わった後に、それぞれどういった学びがあったのかを振り返ったりしています。
加藤
いいですね。当初予定していたタスクを達成できたかどうかだけではなく、ペアプロが終わった後に振り返りすることで、学習のサイクルをまわしやすいですね!
橋本
はい!
加藤
ちなみに、実際のところペアプロの効果って感じていますか?
橋本
そうですね。今回は社内のペアプロ委員会に共有された内容からいくつかご紹介しようと思います。
加藤
はい!
橋本
1つ目は作業方法をより具体的に教えることができた、という点です。例えばエディタのショートカットとか、ブラウザの開発者ツールとかは、人によって使いこなしている人と、そうでない人でけっこう分かれると思うんですよね。
加藤
たしかに…。
橋本
ツールの使い方とかは、一度覚えたらマネしやすいテクニックなので、ペアプロをやってよかった点として多く上がっていました。
続いて2つ目は新たな視点を得たり、考え方の整理ができるという点ですね。ドライバーはナビゲーターに伝わるように説明しながら作業を行ったり、ナビゲーターはドライバーにより分かりやすく指示出しをしなくてはいけないので、頭の中の考えを整理する必要がありますね。
加藤
そうですね。
橋本
あとは他の人が書いたコードを1人で読んでいると、「ここのコードなんでこうなってるんだろ?」というような疑問が出てきたりするんですけど、ナビゲーターがいれば「そこはこういうことだよ」みたいな感じで教えてくれたりして、今までの経験をもとにした考え方、というのを得られるのは大きかったです。
加藤
なるほど。たしかに、長くプロジェクトに関わっている人のほうが修正の影響範囲とかも把握していることが多いので、全体に関わる修正だったり機能追加とかはベテランスタッフとペアプロするのがいいかもしれないね。
橋本
そうですよね。
最後はコミュニケーションの点ですね。ペアプロを行うことで質問しやすくなったという意見は多かったです。
加藤
なるほど…やっぱり普段は質問しづらいんですね…。
橋本
まぁ、そうですね~、経験の浅いスタッフは特に社内の他のスタッフとの関係性が出来上がっていないことがあるので、質問しづらいというのはあると思います。ただ、逆にベテランのスタッフの方はそういった若手のスタッフに質問されないことに悩んでいたりもしますよね?
加藤
いやーそうなんですよね…悩んでます。
橋本
そうですよね。ペアプロの時間って作業していて疑問に思ったことは質問していい、というか、話をしないと進まない時間なので、作業する中で「これ質問していいかな?」とかって悩まなくていいのは気が楽だなと感じます。
加藤
あーそうなんですね!?じゃあどんどんペアプロやっていきましょう!
橋本
はい笑ありがとうございます。ちなみに加藤さん的にはペアプロの効果はどういったところに感じますか?
加藤
そうですね。自分はけっこうコードをレビューする側になることが多いんですけど、ペアプロをやっておくと、レビューにかかる時間というのは明らかに減っているなと感じますね。
橋本
ペアプロの時にある程度ミスを潰せているからってことですかね?
加藤
それはもちろんそうですね。これまでみたいに作り切ってから初めてレビューに出すプロセスだと、根本的なところで修正が発生してしまうと、設計し直すのにかなりの工数がかかってしまうこともあるんですけど、設計の段階からペアプロできていればそういった大きな出し戻しは減らせることが多いですね。あと、単純にコードレビューするときに「あ、これはペアプロでやったやつね」という感じで、だいたいの内容を把握できているので、コードのどの辺りを中心にレビューすればいいのかというのもだいたい見当がつきますね。
橋本
なるほど。ペアプロを通してちょっとしたケアレスミスみたいなものも減らしておけると、レビューのやり取り自体を1つでも減らすことにつながるので、レビュイーにとってもレビュアーにとっても良いですね!
加藤
そう思います!
橋本
あと、これまで何度かペアプロをやってきて、うまくやるコツだったり工夫する点とかってありましたか?
加藤
私がペアプロしていて工夫した方がよさそうだなと感じたのは、ペアプロする作業の見極めですかね。
橋本
たしかに、実際にこれまでペアプロしてきて、テキスト差し替えレベルの単純な作業だと、ナビゲーターは見ているだけで終わっちゃうこともありますし、学びも多くはないので、繰り返しペアプロするものではないなと思いました。
加藤
そうですね。逆にペアプロに適しているなぁと感じた作業はありますか?
橋本
設計や機能追加などはもちろんですが、プロジェクトに新しいメンバーが入った時とか、引き継ぎをするときも有効じゃないかな思います。通常はREADMEとかwikiに情報をまとめておいて、それを読んでもらってから作業するということになると思うんですけど、wikiを見て、分からなければ聞くというやり方だと、wikiの内容を実際にやらずに頭の中でシミュレーションするだけになってしまうことが多いので、いざ実際に作業しようとするとつまずいてしまったりするんですよね。
加藤
たしかにそうですね。実際に何かタスクを用意して一緒に作業したほうが、具体的な作業手順も分かるし、wikiを読んで分からないことがあってもその場で解決できるのでいいですね。
橋本
そうですね。また他の工夫点として、いろいろなTipsがペアプロ委員会で共有されていたので、こちらについては当社のフロントエンドBlogなどでご紹介する予定です!
加藤
いいですね!!楽しみにしています!
橋本
ここまで社内で取り組んでいるペアプロについてお話してきました。
加藤
まだ手探りなところはけっこうあるんですけども、少しずつ会社全体に馴染んでいっている気はしますね。今後新メンバーが入った時にはモブプロをやってみたり、あとは職種を超えたペアプロやペアデザインとかも新たな取り組みとしてやってみたいなと思っています。
橋本
そうですね。職種や部署をまたいでやってみるとまたなにか新たな発見がありそうです!
最後に、ミツエーリンクスではスマートなコミュニケーションをデザインしたいUIデザイナー、UI開発者を募集しています。採用サイトではオンライン説明会やオンライン面接なども行っていますのでチェックしてみてください。
また、このPodcastはApple Podcast、 Google Podcast、Spotify、YouTubeで配信していますので、お好みのプラットフォームでフォローいただけると、最新のエピソードをすぐ視聴できます!こちらもぜひご活用ください。 
それでは今日はこの辺で!ありがとうございましたー!
加藤
ありがとうございました!