ビギナーが高速で成長するためのペアプロ時の取り組み
僕が所属している開発チームではペアプログラミング(以下、ペアプロ)を取り入れており、新人の頃から現在まで多くの実装をペアプロで行ってきました。
ペアプロの導入効果についてはネットで検索すれば見つかると思うので他の記事にお任せするとして、ビギナー目線でペアプロをより活用するための個人的な考えをまとめてみようかと思います。
はじめに
ペアプロは新人育成に効果的だと巷でいわれています。
僕自身、配属当初を振り返ってみると、業務でコードをどう書き進めればいいかのイメージがついておらず、最初は戸惑うことが多かったです。
そんなとき、ペアプロは効果的でした。
経験豊富な先輩方とペアを組んで実装を進めることで、よいコード・悪いコード、実装を進める際の思考過程、ツールの使い方など多岐にわたる知識を獲得できました。
ただ、同じペアプロでも、取り組み方によって先輩から得られる知識の量や質は変わってくると思います。
いくら経験豊富な先輩だからといって、先輩はコンピュータではないので、脳内の知識を端からすべて列挙することは難しいでしょう。
そのため、能動的に先輩から情報を引き出すことが重要です。
1. 積極的に質問する
あえて言う必要もない気がしますが、とりあえず分からないことは質問しましょう。目の前のタスクに直接関係ないことでもいいです。
ここで重要なのは、出力結果のソースコードだけでなく、そこに至る考え方まで含めて理解することです。
大抵の場合、実装方法には複数の選択肢があります。複数の選択肢の中からその選択肢に至った考え方を理解できれば、再現性が高まります。
また、もしあなたの頭の中に別の選択肢が思い浮かんだのであれば、それを提案してみるのもよいでしょう。
その提案がいいものであってもなくても、何かしらのフィードバックが得られるのでより理解が深まると思います。
2. ドライバーであっても自身でコードを考える
あなたが新人の場合、実際に手を動かす経験を積むため、ペアプロではドライバーを任せられることが多いです。
特に初心者のうちはナビゲータの指示通りに実装を行うというような進め方が主になるかもしれません。
が、初心者であっても、ペアプロに慣れてきたら指示を待たず能動的にコードを書いてみるほうがいいと考えています。
なぜなら、自分の考えを持ってアウトプットし、それに対してフィードバックをもらえたほうが知識を身につけやすいからです。
ペアプロであれば、ナビゲーターの役割の先輩が書いたコードを常にレビューしてくれるので、アウトプット ⇒ フィードバック ⇒ アウトプット ⇒ ...のフィードバックループを高速に回すことができます。
あとなにより、言われたとおりに手を動かすだけなのは面白くないですよね!
3. 実況しながらコードを書く
2.のように、あなたがドライバーで能動的にコードを書き進めている場合、黙って書き進めるのはよくないです。
黙っていてはあなたが何を考えてそのコードを書いているのか先輩は判断できないからです。
そのため、今から実装する予定のコードの方針を声に出して実況しましょう。
喋ってみることで考えていることを言語化する訓練にもなりますし、もし方針が明らかに誤りであれば、その時点で先輩が待ったをかけてくれるはずです!
もしくは、よりよい方針があればそれを教えてくれるでしょう。
まとめ
ペアプロの取り組み方の一例として紹介してみましたが、いかがでしょうか。
特に初心者のうちは目の前のタスクに精一杯なので難しいと思いますが、自分にとってより適したやり方はないか考え続けるのが大事ですね。
参考
Discussion