« JavaScriptは関数型言語だ | トップページ | Javaで関数型言語みたいに書く »

2007/12/09

ペアプロ再考

11/30にXPJUG関西主催の「スタートアップXP!」で「プログラミング以外にも使えるペアプロ」というタイトルの講演をしてきた。
その時の講演内容について、もう一度振り返ってみる。

【1】でも、ペアで作業する時は多い

 実際の現場で、ペアプロの経験は僕はない。
 でも、ペアで作業する時は実は多い。

 本番リリース作業では、オペレーションを行う人と、チェックリストを見ながら監視する人のペアが多い。
 同じく本番DBのメンテナンス作業も同じ。
 本番システムでは、作業ミスは許されない。

 他スタッフの話を聞くと、開発工程(プログラミング)だけでなく、設計やスケジュール作成でも、ペアで作業する時があると聞いた。
 つまり、工程に応じて、ペアの呼び名が違うのかもしれない。

a. 設計→ペアプランニング
b. 開発→ペア作業(ペアプロ)

 業務系でも、Web系でも、組み込み系でも、ペアで作業しているシチュエーションは実は多くないだろうか?

【2】一人で作業する時は結構サボっている

 IT業界における自分たちの作業を今一度思い出してみよう。
 実は、一人で作業している時は結構サボっていないだろうか?

・調査ついでにネットサーフィン
・IMしたついでにお喋りする
・メモするついでに2時間もWikiへ書き込み etc.

 PCは仕事道具だけでなく遊び道具でもある。
 8時間働いているつもりでも、実質の稼働時間は、6時間も満たないのかもしれない。
 だから、一人の作業は動機付けが弱くなりがちで、品質が甘くなるのだろう。

 ペアプロを体験してみると、「疲れる」という言葉が良く出てくる。
 理由は、他人の眼があるから、気が抜けないこと。
 1.5時間1セットで休憩を入れないと、集中力が持たない。

 ペアプロは、実は体力を消耗するぐらいの集中力を必要とする。

【3】ペア作業のキーワード~ナビゲートとドライブ

 ペア作業では、「ナビゲート」と「ドライブ」の2つの単語が良く出てくる。
 言葉の定義は、ネットで見当たらなかったけれど、僕は下記で理解している。

1・ナビゲート
 ゴールへの道程を誘導する。水先案内人のイメージ。

2・ドライブ
 ゴールへの道程から外れないように進む。
 比喩としては、システム開発というデコボコ道を車で走っている時、ハンドルをしっかり握って前進するイメージ。

 XPでは、ドライブという単語は良く出てくる。
 ドライブできるためには、二人でコミュニケーションをやり取りできて、作業を進めることができなければならない。
 更に、ハンドリングしながらアクセルを踏んでいるのだから、二人のリズム、作業のリズムが重要。
 特にテスト駆動開発では、テストプログラムと実プログラムを切り替えながらプログラミングするリズムが大事。

 ナビゲートもドライブも、プロジェクト管理の重要なタームと見なすことも出来る。

【4】ペア作業の意義

 ペアで作業するパターンは、OJTのような教育ペアと、開発者&テスト担当者のような品質ペアの2種類に分けられる。
 ペアで作業すると、下記の長所があるように思う。

1・二人の目による品質チェック
2・意思決定を勇気付けてくれる
3・自然な役割分担が生まれる

 だが、Ruby関西の人達といると、彼らは別の欲求があるように感じる。
 彼らは「俺のプログラムを他人に見せたい!」という強い自己顕示欲がある。
#何せ、彼らはライブコーディングするからね。

 ペアプロは、ペア同士が緊張する関係ではなく、俺はこんなにすごいんだぜ、とアピールする場でもある。

【番外編】XPの定義でしっくりくるのはどれ?

 講演の最後に、「XPの定義でフィットするのは次のうちどれですか?」と聴衆に聞いてみた。


1・チームの能力をパワーアップさせる開発手法です。
2・個人の責任と勇気を重んじる人間中心の開発手法です。
3・チーム内のコミュニケーションを活性化させる開発手法です。

数えてみたら、
1.4人
2.10人
3.10人
でした。

僕が思うに、

1.マネージャの観点
2.プログラマの観点
3.プロジェクトファシリテーションの観点

なのです。

XPJUG関西やPFP関西の人は主に、マネージャクラスなので、1又は3の立場が多いです。
だから、プログラマの観点の人が多いのは意外でした。

僕の思いとしては、XPはプログラマのためにあると思っているので、2に共感してくれる人が多いのは嬉しかった。

【まとめ】

日本では、アジャイルと言えば「XP」。
XPを知って4年経つけれど、今でも色あせない。
XPは面白いし、熱いです。

|

« JavaScriptは関数型言語だ | トップページ | Javaで関数型言語みたいに書く »

プロジェクトマネジメント」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック


この記事へのトラックバック一覧です: ペアプロ再考:

« JavaScriptは関数型言語だ | トップページ | Javaで関数型言語みたいに書く »