👯‍♂️

初案件で先輩エンジニアとペアプロができたのはとても良い経験だったという話

2022/12/24に公開

はじめに

エンジニアとして働き始めて2年ちょいくらいが経ちました。入社当時は実務で即戦力になるほどのスキルを全く持っていませんでしたが、今は多少なりとも設計をしたりレビューしたりすることができるほどのスキルが身につきました。

ふと自分はどのようにしてスキルを身につけていったのかと振り返った時に思い出したのが初案件でのペアプログラミング(以降ペアプロ)でした。

ペアプロは実務の中で自分がコードを書きつつ先輩エンジニアの方にアドバイスをもらうことができたり、先輩エンジニアがどのようにコードを書いていくのか学ぶことができます。

そこで今回は当時の体験を思い出しつつ、ペアプロのやり方からメリットデメリットについて書いていきたいと思います。

ペアプロのやり方

ペアプロを行う際はVSCodeのLiveShare機能を使用するのがおすすめです。

LiveShareであれば同時に編集することができたり、特定の誰かの操作を自動で追尾してくれたりします。

詳しいやり方についてはこちらをご覧ください。

https://dev.classmethod.jp/articles/visual-studio-live-share-pairprograming/

ペアプロを行う上で注意すべきポイント

VSCodeのLiveShareセッション切れ

VSCodeのLiveShare機能では時々セッション切れを起こしてしまい、LiveShareを行うことができなくなってしまう時があります。もしセッション切れを起こしてしまった場合は下記URLからサインインしてください。

https://prod.liveshare.vsengsaas.visualstudio.com/auth/login

LiveShareホスト側のネット回線速度

LiveShareを行う方は回線速度がある程度なければLiveShareで作業しても他の方にコードが反映されるまでに時間がかかってしまいます。他の人が編集した内容が数十秒後から数分後に反映される時もありますのでご注意ください。

ペアプロを行うメリット

実践スキルや実務のスピード感を体感できた

1つとして先輩エンジニアのコードの書き方を生で見る・体験することができたことです。これが一番のメリットだったと思います。

出来上がったコードを見て「なるほど、こうやって書くのか」と考えるよりもリアルタイムで見ることによって「こういうところで詰まったらこう対処するんだ」「今の操作はどうやってやったんだろう」「こうやって組み立てていくのか」ということを感じていました。それによって気づきだったり疑問だったりといった考えるきっかけを得ることができ、それが成長やこれからやっていきたいことを見つけるきっかけになったのではないかと思います。

分からないことをその場で質問できた

分からないことをその場で質問して解決できたこともペアプロの良い点でした。案件の規模が大きければ大きいほど1人でコードを読み解いているとどこがどんな処理をしていてどんな影響を及ぼし合っているのか分からなくなっていきます

しかしそれがペアプロであればすぐに聞くことができます。そして聞いたことは似たような処理を書くときに再び出てきたりするのでその際に反復学習をすることができ、より知識として定着しやすくなります。

自分ができることから案件に関わることができた

3つ目に小さなタスクから案件に関わることができたことです。知識や経験が少ない状態で案件に参加するとできることが少ないこともあると思います。開発タスクでは簡単なタスクを切り出してもらわない限り1人でブランチ切って作業というのは難しいでしょう。

しかし私の場合はログを1つ仕込むところから参加しました。つまり限りなく簡単なタスク・作業、でも実務で必要なことを実際に手を動かして学ぶことができました

それを繰り返していくうちに、簡単なことには力を使わずにこなすことができるようになり次のステップに進むことができました。

できることが増えると「次はこれに挑戦してみよう」という余裕の気持ちが出てきます。そうすることで自ずと処理を1つ書いてみたり、1つのファイルの編集担当をしてみたりということができるようになっていきました。

ペアプロを通じて関係性を築くことができ信頼関係ができた

4つ目のメリットとして教える側と教えられる側でコミュニケーションを活発に取ることで関係性を築き信頼関係を構築することができたことです。当時はコロナが流行り始めてリモートワーク中心の働き方になっており、MTGなどない限りあまり会話することはないような状況でした。

しかしそこにペアプロが加わることにより会話する時間も増えたことでお互いがどんな思考を持っているのか、仕事に対する姿勢を学ぶことができました。そして何より良い関係性を築くきっかけになり信頼関係を築くことができたのではないかと思っています。

チームとして仕事をしていく上で最も大事と言っても過言ではない信頼関係を築くことができるということがペアプロの最大のメリットと言えるかもしれません。

以上がペアプロのメリットと感じた点です。

ペアプロを行うデメリット

教育側の時間的コスト

まず1つに教育を行う側の人はペアプロで作業を見守ることになる場合もあるので、時間コストがかかってしまう可能性があります。そのため区切りなくペアプロを行なっていくというよりはある程度時間を区切ってペアプロを行なった方が良いかもしれません。

案件の進捗に影響が出る可能性がある

基本的にペアプロを行うためだけに時間を取るということは業務中は難しいと思いますので、基本的に案件の作業内でペアプロは行われます。そのため案件に時間的余裕がないとペアプロを行うのは現状難しいのではないかと思います。

またペアプロによって作業スピードは落ちてしまう可能性があるため進捗との兼ね合いの確認を行なってしまうと案件の進捗・期限に影響を及ぼす可能性があります。

以上がペアプロのデメリットになりかねないと感じた点です。

最後に

ペアプロを行う上では多少のコスト(デメリット)はかかってしまいますが、双方にとって関係を築いたり知識を深めたりなどメリットの方が多いと思いますので、案件に余裕がある場合はぜひ一度試してみてください!

最後に、案件が忙しい中ペアプロをしてくださった先輩エンジニアの皆様ありがとうございました🙇‍♂️

Discussion