gallu’s blog

エンジニアでゲーマーで講師で占い師なおいちゃんのブログです。

ペアプロ雑感

なんだかあちこちでペアプログラミングの話が浮上しているようなので、ちょいと乗っかって(笑


ペアプロは、まぁあちこちで書かれているのですが

  • 教育的側面
  • 監視的側面
  • テンションをあげる側面

があると思うです。
でまぁ…ちと散文的に。


面白いのが、ここ。
http://www.jalcrew.jp/jca/public/cap-voice/cap-voice_1.htm

皆さんはCRMと言う言葉をご存知でしょうか?当初はCockpit Resource Managementと言っていましたが、最近では、Crew Resource Managementと言うようになってきました。これは一言で言うと、「必要な人的資源(リソース)を活用し、安全運航に役立てる」と言うものです。なかなかイメージが湧きにくいかもしれませんが、私たちの周りにある人的リソース(客室乗務員、整備士、運航管理者、管制官など)から、様々な情報、アドヴァイスなどを得て、安全運航に一番必要な判断を下す、と言うことです。
私達の仕事は、機長、副操縦士航空機関士が、チームを組んで一つのフライトを完遂します。チームで仕事をする時、どうしても権限を持った人、或いは経験を持った人が主導権を握りがちです。機長は航空法上、運航の最終責任を負っている反面、指揮、命令などの権限も持ち合わせています。一昔前の飛行機の世界では、機長の言うことは「絶対」といった風潮がありました。たとえ、それが間違っていたとしても、なかなかそれを指摘しづらかったのです。本来、安全運航の為には「何が正しいのか」と言う視点に立った考え方が必要です。しかし、「誰が正しいか」と言う事でチームの判断が決まってしまった結果、本来起こらなくてもよかった事故が起きてしまい、多数の尊い命が失われていきました。
そこで、人間関係に焦点を当てた訓練が必要、と言うことで、CRM訓練が始まりました。人は、他人から自分の間違いを指摘されることにはとても抵抗があります。機長が、自分より年下で、経験も少ない副操縦士から指摘を受ける場合、素直に聞く事が出来ない事もあります。「聞く耳を持つ」と言うことがCRMの大切な要素の一つです。
また、人は間違い(エラー)をします。私達は、エラーを犯さないように様々な訓練をし、またエラーが起こらないような手順等を考えてきました。しかしそれでも人間のエラーをゼロにする事はできません。事故は、一つのエラーだけで起こるのではなく、いくつものエラーが鎖のように繋がって起こる、と言われているのです。このエラーの鎖(Chain of Eventsと呼んでいますが)を途中で断ち切ることができれば、事故を未然に防ぐことができるわけで、CRMはそれを断ち切る為の一つの手段と言う事ができます。
このような考え方が今、航空の分野だけではなく、様々な分野で注目されるようになりました。例えば医療現場です。医療現場でも、医者を中心としたチームで仕事をすることが多いそうです。しかし、聞く所によると、医者の指示、判断が間違っていると看護婦さんが気付いても「言える雰囲気ではない」、「言っても聞いて貰えない」と言った事があるようです。一見単純なミスのようでも、看護婦さんの疲労だけが原因、と言うことではないようです。
CRMと言うものは、航空関係や、医療と言ったいわば特殊な職場だけに適応するもの、必要とされているものでしょうか。そうは思えません。どんなところにでも適応し、また必要なのではないでしょうか。会社の経営者にも当然必要だと思います。


スラッシュドットに乗ってたですが…そうかぁ「熊のぬいぐるみとお話するとBUGを教えてくれる」アレ、「ベアプログラミング」っていうんだ(笑


んでまぁ、ある意味ここからが本題。
知っている限りでは、やったことがない人に限って「生産性はあがらない」とか言う傾向があるように思えるです。
実践している限りでは、ペアプロやってると「相手がいるからテンションがあがりやすい」上に「二人のテンションのうち高いほうにあわせられていく」傾向が強いです。
なので、結果的に「一人でやってるとどうしても出てくるテンションの波」が、かなり高いところで推移しやすいので、結果的に生産性があがる、と。
実践してみれば割とすぐに体感できるんですがねぇ。


もうひとつ、いくつかのサイトで見てたのが「向き不向きがある」。んと…はい理論的には理解できます具体的にはスラドにかかれてました
http://slashdot.jp/askslashdot/comments.pl?sid=381687&cid=1256230

いわゆる俺様系プログラマがペアの片方にいると、うまくいかないようですね。
もう片方が、間違いを指摘しずらい雰囲気になってしまうから。

こちら。
なんていうか…ペアプログラミングとかなんとかじゃなくてもうちょっと手前の部分でいろいろと不適合してると思うのですがどんなもんなんですかね?
幸い、今までこういう人物とペアプロしたことはないですが。私は。
っつか、他人とのコミュニケートを好まない人が技術者やってもねぇ、とか私はおもっちゃいますがどんなもんなんでしょうかねぇ?(基本思想が「技術者は魔術師」なので)


ちなみに、普段教育込みの時によくやるのが「毎日ペアを変える」。結構効果高いです。
あとは最近あちこちでかかれてますが。1時間程度仕事したら15分程度休憩。これはタイマー使ってでも死守しませう。
経験があるので断言できますが。特に「ある程度実力が拮抗している二人」がノった場合。…気がつくと4時間くらいやってて(いやまぁかなり壮絶に成果はあがったのですが)、その後…1時間くらい、脳みそが使い物になりませんでした(苦笑
ぶっちゃけあれは寿命削ります。
時々気になるのは「周囲から見てうるさい」事。まぁそも「静かな開発現場」なんておぞましい環境には一秒たりともいたくはないのですが、そうはいっても一応気になります。相手に気にされたことは幸いにもないのですが。


でも…こうやって話題が出てくることは、いずれにしてもよいことだなぁとかちょっとしみじみ思いつつ、めも。