Shohei Umemoto

Home

ペアプロノススメ

Published Dec 12, 2021

これは フィヨルドブートキャンプ Part 1 Advent Calendar 2021 の 12 日目の記事です。 11 日目の記事は paru さんの「本が読めない人だったことに今頃気づいた私が輪読会に救われた話」でした。 13 日目の記事は masuyama13 さんの「コードより先にコミットメッセージを書く」です。 フィヨルドブートキャンプ Part 2 Advent Calendar 2021 もあるのでよければどうぞ。

はじめに

フィヨルドブートキャンプでアドバイザーをやっている梅本 (cafedomancer) です。 フィヨルドブートキャンプには質問・雑談タイムというイベントがあって、フィヨルドブートキャンプに参加している人はそこで質問することができます。 ぼくも予定が空いているときに顔を出しており、みんなからの色々な質問に勝手に答えたりしています。

かなり実践的な内容の質問 (good question!) も結構あるんですが、時間が 1 時間と限られているのでコードに関してはあまり深いレベルでの会話ができないなと感じていました。 それと同じ時期にちょうどペアプロに関するチャンネルが作られていたので、「みんなの質問にペアプロしながら答えたらもっと深いレベルで会話できておもしろそうだな。ちょうどいいじゃん。」と思ってペアプロの募集をかけてみることにしました。

screen-shot-2021-12-07-at-20-51-18.png

募集をかけたら何人かのひとが返事をくれたので、一緒にペアプロすることになり実際にやってみることができました。 やってみたら「たしかに深いレベルでの会話ができてこれはよさそう。」ということが分かったので、今日はみんなにもペアプロしたい気持ちになってもらいたいと思います。

なにするの?

ペアプロはペアプログラミングの略で、名前のとおり 2 人でいっしょにプログラミングをします。 もともとはエクストリーム・プログラミングというソフトウェア開発のやり方のなかに登場する活動のひとつです (エクストリーム・プログラミングについてここで書くと長くなるので、興味のあるひとは顧問の kakutani とかに聞いてみてね) 。 プログラミングという名前がついていますが、プログラミングしかやっちゃいけないわけではないので、いろんなことをします。 ぼくがみんなとやったペアプロの中ではプログラミングに加えて、ブートキャンプの課題に取り組むための作戦をいっしょに考えたり、タスクの洗い出しをいっしょにしたり、コードの設計をいっしょにしたりもしました (まあこれらもプログラミングなんだけど) 。 そんな感じで 2 人でいっしょになにかする活動をここでは「ペアプロ」と呼んでいます。

どうやるの?

手を動かす人と考える人に分かれて、それぞれの役割を交代しながら作業を進めていきます。 片方が 25 分くらい作業したら交代して、そのあいまに 5 分から 10 分くらいの休憩をはさみます。 これを以下のような感じで何セットか繰り返していきます。

  • 1 セット目
    • 作業 25 分
    • 休憩 5 分 (交代)
    • 作業 25 分
    • 休憩 10 分 (交代)
  • 2 セット目
    • 作業 25 分
    • 休憩 5 分 (交代)

作業の様子は Discord の画面共有などをつかって共有します。 コードの共有は、交代するタイミングで適当に commit して GitHub に push して行います。 もし Visual Studio Code を使っている場合は Live Share という拡張を使うと共有と交代がスムーズにできるのでオススメです。

screen-shot-2021-12-07-at-23-04-29.png

あとはこんな感じで作業を進めていくだけです。 作業するときのコツは 2 つだけあって、

  • 頭のなかにあることを音声だけじゃなくて文字でも共有する
  • 休憩するときは作業とは関係のない話をする

です。 「頭のなかにあることを音声だけじゃなくて文字でも共有する」のは、音声だけだとお互いの考えがきちんと伝わらないことがあるからです。 「こうしたらいいんじゃない?」みたいなやつの「こう」は文字でも書いておくと相手により伝わりやすくなります。 「休憩するときは作業とは関係のない話をする」のは、ペアプロすると普通に疲れるからです (やってみたらわかる!) 。 ペアでやっていると集中せざるを得なくなるので 1 人でやるよりも疲れます。 それに引きづられて休憩の時間もついつい作業しがちなので、休憩するときはちゃんと休憩します。

以上のような感じで、ペアプロのための特別な準備はとくに必要ないので、いつでもだれでも気軽に始められます。

いいことは?

「たのしい」ということがペアプロをやるうえで一番のいいことかなと思っています! ぼく自身、だれかと一緒になにかをすること (コラボレーション) が好きというのもあるかもしれないけど、それを抜きにしても普通にたのしいです。

あとは、他の人がどんなふうに考えているのかを学べたり、どんなふうにツールを使っているかを学べたり、みたいなのもあります。 1 人だと気が進まない作業もペアで一緒にやると結構はかどったり、だれかに自分の考えを話すことで頭のなかが整理されたり、みたいなのもあります。

やってみるとみんなそれぞれに思ういいことが何かしらあると思うので、まずはやってみるといいんじゃないでしょうか。 (ぼくとペアプロした人で感想を日報に書いてくれている人がいると思うので、この記事とその日報を合わせて Discord などでシェアしてもらえるとみんなの参考になるかも)

おわりに

ペアプロしてみたい気持ちになれましたか? 「やったことがないので不安…。でもやってみたい!」という人がいたら Discord の「ペアプロ・モブプロ相手募集」チャンネルで、いつでもぼく (cafedomancer) に声をかけてください。 ぼくだけじゃなくてメンターの人たちもやってくれると思うので、メンターの人たちに声をかけるのも全然アリだと思いますよ!

screen-shot-2021-12-07-at-23-18-53.png

最後になんでぼくがみんなとペアプロしているかについてもう少し書いおきます。 まあ理由は特になくて「ペアプロしながら育ててもらってきたので、みんなともそうしているだけ」という感じです (これは インプリンティング が良い方向にはたらいた例かも) 。 学生のときにやった初めてのソフトウェア開発も、社会人になってからの仕事も、けっこうペアプロしたりしてもらったりしていました。 いまも仕事でこまったら、お客さんなり先輩なりに「ちょっとペアプロおねがいします!」と声をかけています。 そんな感じで、みんなにも気軽にペアプロしてもらえたらと思いますし、就職してからもどんどんやったらいいんじゃないかなと。 ではよいペアプロライフを。