インターンに研修も兼ねてペアプログラミングやってみた。

f:id:KAI-YOU:20190719185759p:plain

こんにちは。KAI-YOU開発部のデザイナーCKSです。

毎日デザインをカリカリとしているぼくですが、コーディングでの開発にも参加してるデザイナーです。

最近バックエンドができる学生がインターン生としてKAI-YOUの開発に参加してくれています。しかし彼はバックエンドだけでなくフロントにも興味があり、またKAI-YOU開発部としても、彼には幅広く参加してほしいと考えていました。KAI-YOUは職種に縛られず、自分のやりたいことをなんでもやってみて提案していく思想があります。

そんな彼に、フロントの開発の仕方、同時にKAI-YOUでの開発フローを体感して学んでもらう為、ペアプログラミングという手法を用いて一緒に開発をしてみました。

ペアプログラミングとは

ペアプログラミングというのは、簡単に言えば一台のパソコンを主に使って2人で共同して開発する手法のことです。

ペアプログラミング - Wikipedia

2人で一台のパソコンを同時に操作する・・・なんてことはもちろんせずに、一人がキーボードを実際に触ってコーディング・その他実作業を行い、もう一人がそれを隣から眺めながら設計を吟味したりエラーを発見したりします。

作業する側をドライバー、眺める側をナビゲーターと呼びます。

今回は研修も兼ねてるのでインターン生をドライバーに、僕がナビゲーターとして一緒に開発してます。

インターン生とペアプログラミングをするメリット

本来ペアプログラミングは一つの作業に2人で取り掛かることで集中的にタスクをこなせることが強みですが、今回は研修が目的の一つ。研修でペアプログラミングをすると以下のようなメリットが生まれます。

  • 開発導入からリリースまで一緒に作業するため、一連のフローを実践を通して伝えられる。
  • 実際のコーディングについての細かい規則を一緒に操作しながら確認できる。
  • 作業しつつ、即質問即返答で疑問をサクサク解消できる。
  • まだ関わりの浅いインターン生と仲良くなれる。

マンツーマンでの指導となるため、口頭だと細かすぎて伝わらないコーディング規則、更に踏み込むとエディタの便利な機能・操作方法等についてまでもが、ケースに直面次第その場で伝えられたことが個人的に大きな手応えです。

ペアプログラミングの様子・環境

ペアプロは、実際に開発するのももちろんですが開発フローを頭から最後まで伝えることも重要なので、簡単で小さなタスクに十分な時間を見積もって行いました。

ペアプロを行う環境としては、インターン生の席で行いました。会議室等で大きなモニタにミラーリングしながら行うやり方が快適ですが、今回は実際に開発している様子自体も確認したかったので席の隣にお邪魔しました。すぐ隣でとやかく言うのが憚れる場合は会議室行きましょう。

実際やってみていかがか

実際やってみてどんな感じだったのかというと、良い感じだと思いました。

導入の一発最初にペアプロをやれば以降開発に参加するための、フローや規則・伴う諸注意、コードベースでの決まりごと、システムのクセなどの諸々を伝えられて導入としてペアプロは最適でした。インターン生の人となりも十分に把握でき、合間に開発に直接は関係ない、KAI-YOUについてのことなんかもちょこちょこ話しました。あそこにあるお菓子食べていいんだよ〜とか。

開発フローは細かく見ていくと、まず開発環境を立ち上げるところから始まり、gitでブランチ分けーのプルリク書きーの・・・たくさんの段階と手順があります。一回慣れればほとんど考えることなくサクサク行えることばかりですが、フェイズごとのコツや注意・心持ち、ミスした時のリカバリー等、実は高度で一見しただけでは難解な事柄はたくさんあります。先にこれやってからプルしないとコンフリクトしがち・・・とかとか。

また開発での各作業は、その作業を行う意味を確かに意識することが肝要です。プルリクはそれを読んだだけでレビュアーが把握できるように、コミットメッセージは後で見返した時各コミット内容が簡潔に分かるように・・・マニュアルだとなかなかカバーにしにくい事をニュアンスと共に伝えられて、この事にペアプロをやった意味を感じました。(だからといってマニュアルを放棄していい訳ではない(早くマニュアル整備しないと・・・))

実際は複数回行ったペアプログラミングですが、2回目以降はほとんどのフェイズに置いて適切で有効なオペレーションが成されていたように見受けられました。

これから

自分がドライバーでペアプロ受けた時も同じ事を思ったんですが、ペアプログラミングは開発の導入・訓練に有効だとわかったので、これからも新しい人が加わったらできるだけ行っていきたいです。

簡単なタスクにそれなりの時間をかけたのですこしリソースを使いましたが、新しいメンバーを開発に早く参加させることができるのでペアプロは一考の価値ありです。

ペアプログラミングドライバー編

デザイナーだけど開発に参加するためにペアプログラミング受けてみた。 - KAI-YOU Lab

エンジニアリングしたい人募集中

KAI-YOUは、職種を越えて何かやりたいことを積極的に勉強したり、また自由に取り入れたりしてお仕事ができる会社です。

なにか、これをやってみたい! というチャレンジしたいエンジニアさんを募集しています。一緒に働いてみませんか?

RECRUIT | 株式会社カイユウ - KAI-YOU inc.

カイユウ開発部デザイナー、CKSでした。