コミュニティ

2018年11月20日

[現役エンジニアに学ぶ!] チーム開発の効率を向上させる黄金習慣「ペアプログラミング」とは?

株式会社万葉の現役エンジニアによるペアプログラミング講座。「開発現場では何が行われているのか?」を受講生が体験!ペアプログラミングのメリットを紹介します。

株式会社万葉さんのエンジニアによるペアプログラミング講座開催!

「プロのエンジニアになるために挑戦する人が、チャンスをつかめる場をつくる」をVISIONに掲げるディープロ。

実際の開発現場との乖離を可能な限りなくすことは常に命題として存在します。

そこで、現場で活躍するエンジニアをお招きして「何が現場で行われているのか」を体験するイベントとして、株式会社万葉の現役エンジニアにお越しいただきました!

今回、「現場の手法」として伝授いただくのは「ペアプログラミング」!

ペアプログラミングには、一体どんなメリットがあるのでしょうか・・?

株式会社万葉さんとは?

株式会社万葉は、RubyやRuby on Railsのプロフェッショナル。
RubyやRuby on Railsを利用した受託開発や、コードレビューなどの開発支援、開発チームの育成を行う企業です。

ディープロとは創業初期からのお付き合いで、代表の大場さんにはDEMODAYの審査員をしていただいたこともあるんです。

ディープロの卒業生も何名か入社しており、リクルーティングパートナーとして就業説明会にお越しいただくこともしばしば。

お越しいただいたのはバリバリのエンジニア、櫻井さん!

本日ディープロにお越しいただいたのは現役エンジニアの櫻井さん!

Image from Gyazo

日々業務で開発を行う櫻井さん。

「ディープロの受講生にもっと現場のことを知って欲しい」という想いを持って駆けつけてくれました!

ペアプログラミング特別講座開講!

いよいよ櫻井さんによるペアプログラミング講座が始まりました!

ディープロの自習室の一角を使いレクチャーをしてくれます。

Image from Gyazo

自習にきていた受講生のほか、メンター陣も興味津々で参加していますね。

そもそもペアプログラミングとは?

櫻井さんがおすすめしてくれる「ペアプログラミング」。

ペアプログラミングは開発の効率化の手段の一つで、一般的には「二人一組になって一つの画面・キーボードを共有して開発する手法」を言います。

この手法では、二人でドライバとナビゲータを交代して進めていきます。ドライバがコードを書き、ナビゲータはそのコードを見ながらアドバイスをすることで知識の共有をしていくのです。

正しいペアプログラミングなんてない

Image from Gyazo

一般的な手法はありますが、それにこだわってはいけないと言う櫻井さん。

大切なのは「開発を効率よく進めるために、チームを有効活用すること」

それが達成できれば、ペアでなく大勢でしても良いし、プログラミングでなくリーディングしても良いんです。チームで取り組むことで、知識の共有ができることが重要なのです。

チームで開発する以上、知識の共有は効率化の上で欠かせないもの。共有することで、一人では気が付けなった自分の非効率を修正し・さらに効率的に開発できるスキルを身に付けることができます。

こうしてチーム全体のスキルが上がっていくんですね。

ペアプログラミングで共有できるもの

一言で「知識」と言っても、実に様々なものがあります。ペアプログラミングをすることで、ペアの相手の頭の中を覗くことができます。具体的にどんなことを共有できるのでしょうか。

Image from Gyazo

テクニックの共有

例えば、キーボードの操作・開発ツール・コーディングの技・情報源など。
一人で開発していると、どうしても同じような書き方になってきますよね。

ペアプログラミングはもっと早くて的確なコードを知るための機会となります。

開発の流れの共有

コミットのタイミングやどのような順序で攻めていくのか、など、「勉強」しただけではわからないことを体感することできます。

もっとこまめにコミットしてよ!と言われたことのある新人エンジニアの方も多いのではないでしょうか?
ぜひ先輩エンジニアとペアプログラミングしてみてください。

検索の仕方の共有

一見簡単そうな「検索」。いわるゆ「ググる」ことですが、レベルによって全く検索効率が違うのだそう。
キーワードを集めて的確に確信に迫るスキルは熟練技なのですね。

実際にペアプログラミングをしてみよう!

良いとわかっていても、実際にやっていると言う人は少ないのではないでしょうか。やはり二人でコード書くのは時間がもったい無いのでは?と思っている方も多いはずです。

しかし櫻井さんは断言します

知識の共有によする効率改善メリットのほうが、時間のデメリットより、遥かに大きいんです。仮に、一人で筋の良くないコードを書いてしまったとしたら、その後のメンテナンスにはもっと多くの時間が必要になります。

Image from Gyazo

ここまで聞いてやらない手はありませんね。

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

ドライバ・ナビゲータをはじめから意識しすぎることはせず、気楽に始めてみましょう。
初めは30分くらいからはじめ、時間が来たら振り返ってみてください。

考えたことは口に出そう

頭の中を共有することが目的です。二人で同じ画面を見ていても、何をしているのかわからなければあまり意味がない作業になってしまいます。

「こんな風に書いてみよう」「あ、そんな書き方ができるんだ」など、どんどん口にだして共有していきましょう。

Image from Gyazo

計画的にやろう

ペアプログラミング中に「次に何をすれば良いかわからなくなってしまった」ということが起きないために、事前にTodoをまとめてから開始してみるといいでしょう。

また、振り返りが大事ですので、ペアプログラミング中に実施したことや困ったことはメモしながら進め、終了時にそれを見ながら振り返ってみましょう。

DIVE INTO ペアプログラミング

櫻井さんのペアプログラミングのお話は、個人で自習することが多いディープロの受講生にはとても刺激になりました。

ディープロでも、授業やワークではこのペアプログラミングを取り入れています。受講生同士がペアになり課題を進めて行きます。

毎日一人で学習しているという方は、ぜひペアプログラミングの手法を取り入れてみてくださいね。

まとめ

  • ペアプログラミングは二人一組になって一つの画面・キーボードを共有して開発する手法
  • ドライバがコードを書き、ナビゲータはそのコードを見ながらアドバイスをすることで知識の共有ができる
  • ペアプログラミングで知識の共有をする効率改善メリットのほうが、時間のデメリットより、遥かに大きい

ダイビックのことをもっと知ってみませんか?