Tallman

技術とか読書とかいろいろ

はじめてのペアプログラミングをしたので感想とか

はじめてのペアプログラミング

会社でペアプログラミングをやる機会がありました。ペアプログラミングという経験は初めてだったのですがとてもいい経験だったので所感と反省を書きます。
今回ペアの方はベテランで、自分はエンジニア歴一ヶ月のペーペーなので教育的要素があったペアプロでもあった前提で読んでいただければと思います。

やってみて感じたメリット

  • 明らかにコードの質が高まる。

    • ベテランの方一緒に作業したので当然ですが自分一人で書くよりコードの質がよくなり、考慮した要素が多いものになりました。単純に手戻りが少なくなりそうです。
  • 他の人のコーディングを逐一質問しながら進められる。

    • 新人側の視点でのメリットですね。オブザーバーとしてどういう考えでこのコードを書いているのかその場で聞けるので設計とかの仕組みが頭に入ってきやすかったです。
  • 二人でやるので開発の手順をしっかり踏むことになる。

    • やる前はあんまり考えていなかったのですが、これが一番大きいなと思ったメリットです。自分だけで開発を進めるわけではないので なんとなくでコードを書いたりすることなく、現状の仕組みを把握し、問題を理解して、解決策を具体的にタスクとして実行するというステップを決めて開発することになります。お互いの足並みが揃わないのにいい開発ができるわけがありませんからね。自分たちが今何をやっているのか、方向性がわかりやすく開発効率が明らかに良かったです。

ペアプロと合わせてやってみて良かったこと。

  • テスト駆動開発

    • 今回はモデルをいじる開発で、テストから先に書く開発を行いました。テストを先に書くので開発途中にテストが落として修正するというサイクルが発生し、二人で話し合って分析する対象が明確になります。二人で一つの画面をみて開発するペアプログラミングでは相性が良いと感じました。
  • 自分のやろうとしてる事と考えをどんどん声にする。

    • 新人側がベテランの人にはない視点でスマートな助言を出す、みたいなことはまずないので、自分がペアプログラミングによってチームに寄与できるものは、自分がどう思ってこのコードを書いているかをできるだけオープンにして、次の開発にも確実に持ち帰れる経験値を得ることだと思います。
      そのために「これがこうなって〜〜」みたいなのは基本的にどんどん発言してみました。「そうだね」とか「そこはそういう意味のコードにはなっていないよ」とか何かしらフィードバック頂ける種になるのでペアプロで得られるものの効率は上げることができたと思います。

反省点

  • 二人で進めるものという認識が甘かった。

    • ペアプログラミングをスタートした時に、僕がすぐさまコードを書こうとしたらペアの方に「最初に手順について確認しましょう」という助言がありました。二人で一つのコードを書くのだから現状の問題、仕組みに関する共通認識と、解決策と具体的な実行手順をお互い把握することがまず最初にあるべきなのは当たり前です。
      自分は最初は自分がコードを書いて、それに間違いがあれば指摘してもらうのが新人とベテランのペアプログラミングだろうという認識があったことが招いた行動だと思います。もちろん教育の要素は多分にあるとは思いますが、二人で一つの問題に対して解決策を見つけ、実行する、というのが前提にあるのがペアプログラミングです。
      次回機会があればまず二人でこの問題を解決するにはどうしたら良いか、の認識、共有を一番に考えてペアプログラミングを始めるとよりスムーズに行くんじゃないかと思いました。
  • いつ始めるか明確に定義してなかった。

    • これは細かい点なんですが始める時にこれからやる?ok?と声をかけて頂いて始めた(もちろん前日に明日ペアプロやってみるみたいな話はありました)のであいまいな感じでスタートしたのはあんまり良くなかったかもしれないです。
      やっぱり二人でやるものですからきっちりこれから始めるという区切りがあるとより良いと感じました。

まとめ

ペアプログラミングって普段の開発と違って喋りながらやるので単純に疲れます。ですが思考が整理されていくのを感じますし、やっぱり二人で一つの物を作ったというのは達成感も違います。新人側なのでメリットばかり享受している気もしますが、次もやりたいと思える経験でした。ペアをくんでくださった方には感謝しかないです。