ペアプログラミングに必要な知恵は全て幼稚園の砂場で学んだ

   このエントリをはてなブックマークに登録    2007/4/10

「"All I really need to know about pair programming I learned in kindergarten", Communications of the ACM, Volume 43, Issue 5 (May 2000) Pages: 108 - 114」という論文を読みました。

幼稚園(もしくは保育園)で習うような社会生活の基礎から、ペアプログラミングを遂行するときに注意すべき点を論じています。 ペアプログラミングは、二人で一緒にプログラムを書くという手法です。 XP(eXtreme Programming)などで利用されています。

面白かったので一部を抜き出して要約してみました。 さらに興味のある方は論文をご覧下さい。

何でも分け合うこと

ペアプログラミングでは一つのものを二人が作り上げます。 片方がプログラムを書き、相方がレビューを続けます。 「お前の設計が間違っているからダメなんだ」という発想をしてはいけません。 二人で一つなので、「我々が失敗をしてしまった」とか「一緒に全部のバグを潰した」という発想で取り組まなくてはなりません。

ずるをしないこと

ペアプログラミングでは片方がキーボード入力をしている様子を相方が見ながらレビューを続けます。 ペアプログラミングでは、片方がコードを書くことに集中している間に相方が「もっと良い方法はないだろうか」と思考をめぐらせる事ができます。 ただ、キーボード入力をする側のスキルが高すぎる場合、レビューを行っている側が取り残されてしまう可能性があります。 レビュー側がやる気を失わないようにする必要があります。

使ったものは必ず元の場所に戻すこと

人間はある特定の事を考え続けると、脳がそれを真実として信じてしまうそうです。 自分がダメなプログラマだと思っていたら、そのうち脳もそう思ってしまいます。 このような後ろ向きの人が含まれるペアの効率は悪くなってしまいます。

ただ、人間はそのような否定的な考えを元のあるべき場所に戻すこともできます。 「意識の外(考えない)」です。

なお「私は超絶プログラマで相方はカスだ」という考えも同様にダメです。

ちらかしたら自分で後片付けをすること

ペアプログラミングでは、肩越しにバグの後片付けを発見して手伝ってくれる人がいます。

トイレに行ったらちゃんと水を流すこと

一人で作業を行ったときの作業は必ず二人で見直しましょう。

焼きたてのクッキーと冷たいミルクは体にいい

ペアプログラミングは非常に疲れるので、適度に休憩をはさむのが良いでしょう。

釣り合いの取れた生活をすること。毎日、少し勉強をし、少し考え、少し絵を描き、歌い、踊り、遊び、そして、少し働くこと

他のエンジニアとのコミュニケーションは釣り合いの取れた生活に必要な要素です。 質問をすれば、多くのプログラマは一人で作業をする事を好むと答えると思われます。 しかし、実際には他のプログラマとの会話により発想が拡がります。

毎日必ず昼寝(もしくは一緒に働く事からの休憩)をすること

互いに監視され続けるのは非常に疲れます。 1日の10〜50%の時間は一人で作業を続けるのも良いでしょう。

表に出るときは車に気をつけ、手をつないで、はなればなれにならないようにすること

二人で一つなので、相手のミスを責めたりせずに協調して作業をしましょう。

「不思議だな」と思う気持ちを大切にすること

そして、二つの脳みそが同時に活動することの威力を発揮しましょう。 二人の脳みそは別々の常識で構成されているため、思想の範囲が拡大します。 そのため、1+1は2以上になります。

論文の元ネタ

この論文は 「 All I Really Need to Know I Learned in Kindergarten (日本語版 : 人生に必要な知恵はすべて幼稚園の砂場で学んだ) 」 というエッセーに含まれる一話を元ネタとして書かれています。

そこでは、幼稚園で学んだ人生に必要なこととして以下の項目を挙げています。

1. 何でもみんなで分け合うこと
2. ずるをしないこと
3. 人をぶたないこと
4. 使ったものは必ず元の場所に戻すこと
5. ちらかしたら自分で後片付けをすること
6. 人のものに手をださないこと
7. 誰かを傷つけたら「ごめんなさい」と言うこと
8. 食事の前には手を洗うこと
9. トイレに行ったらちゃんと水を流すこと
10. 焼きたてのクッキーと冷たいミルクは体にいい
11. 釣り合いの取れた生活をすること。毎日、少し勉強をし、少し考え、少し絵を描き、歌い、踊り、遊び、そして、少し働くこと
12. 毎日必ず昼寝をすること
13. 表に出るときは車に気をつけ、手をつないで、はなればなれにならないようにすること
14. 不思議だな、と思う気持ちを大切にすること。発泡スチロールのカップにまいた小さな種を忘れないように。種から芽が出て根が伸びて、草花が育つ。どうしてそんなことが起きるのか、本当のところは誰も知らない。でも、人間だって同じだ。
15. 金魚も、ハムスターも、二十日鼠も、発泡スチロールのカップにまいた小さな種さえも、いつかは死ぬ。人間も死から逃れることはできない。
16. ディックとジェーンを主人公にした子供の本で最初に覚えた言葉を思い出そう。何よりも大切な意味を持つ言葉。「見てごらん」

面白い発想だと思いました。 ペアプログラミング以外にも色々応用してネタに出来そうだと思いました。

このエッセーは1986年に最初に出版されたそうです。 このエッセーはブログを本で読んでいるような気分になれます。 色々な事が書いてありますが、基本的に和める本だと思いました。 脱力しながらのんびりと読むことがお勧めな本です。

人生に必要な知恵はすべて幼稚園の砂場で学んだ

ロバート フルガム (著), Robert Fulghum(原著)
¥ 599 (税込)
   このエントリをはてなブックマークに登録