ペアプログラミングが効率いいのはむしろ当然。

梅田望夫さん経由、近藤さんのCNET ブログより。

まずはペアプログラミング。これは、2人1組になってプログラムの開発を行うスタイルで、XP(エクストリームプログラミング)のプラクティスの一つとしても提唱されているものです。

2人でプログラムを開発するというのは、1人がプログラムを書き、もう一人が横からそれを見ている、という方法です。この方法を聞くと、1人がそれぞれの作業を行うよりも作業量が2分の1になってしまいそうな気がするものですが、実際はそれぞれが別々の作業をするよりも効率が上がる、という興味深い逆説的な現象が発生します。

このペアプログラミングという手法、前にも聞いた事はありましたが、具体的な話は初めてです。確かにわざわざ二人組にしなくてもいいのではないか、という気もしてしまいますが。
しかし、よくよく考えてみると……一つの大きな課題に対して2人組でタッグを組み、主観と客観を織り交ぜながらプログラムを作る、となると、確かにバグ、漏れ、はしょり、ムラが少ないいい物が出来そう。どちらかの腕がいい(あるいはプログラムについて経験が多くて良く知っている)のであれば、若手が実践的に学ぶ事も出来ます。


ところで、この二人組で机に向かう……って、子供の頃に誰しもやった事があるのではないでしょうか? 私はプログラムの経験はあまりありませんが、この話を聞いて受験勉強を友達の家でやっていた頃の事を思い出しました。あのときは、私が得意だった理科や国語等を友達に教えたり、英単語の和訳を言い合ったりして。人に教えると自分の学びをより深める事も出来ますし、逆に教わる事で学ぶと、教科書では掴みにくいことがわかったり、脳が刺激されて記憶しやすかったりすると思います。これは先週のDTP検定対策講座を開講してみて自分で納得した事ですが、教える為に本質とかポイントだけを集中して考えたり、いい暗記方法を編み出したりしますしね。


ちなみに、昨日受験したDTO検定II種ですが、小問合計109問中108問*1はおそらく正解していると思います。(この検定は成績を教えてくれないのですが、絶対に間違っているわけがないと確信が持てる回答がほとんどで、試験終了後、教科書を一通り見たところ、その確信に誤りは無かったようです。ただ、1問だけ教科書で確認しても確実な判断がつかない物がありました)前回自分だけで勉強していた時よりも、遥かに成績が上がりました。前回は2週間くらい学習機関はありましたが、多分ギリギリで合格していた位だったので。今回はまあ、前回の経験はあるにせよ、5日間でこの成果なので、教える機会があると伸びるなあ、という事に改めて確信を持ちました。まあ、指導した側の人間が不合格だったら不味いわけですけれども。


今日の午後は友人宅でサイト作成作業の仕上げ。ペアプログラミングならぬ、ペアwebデザインですね。やはり二人だと効率が上がるので愉しみにしています。

*1:DTP検定では問題の持ち帰りが許されず、問題と回答、受験票を提出するのですが、持ち帰って良いマークシートの書き方等の注意書きをしたA4の紙があったので、後学のため、一通り回答した後見直しも兼ねて、裏面に回答や分からなかった問題のポイントをメモしておきました。何ヶ月後かに過去問が発売されればそちらで確認が出来るので。