Chat (Lingr.com)
Informaiton
Daily
Column
- MySQL日本語の旅(5/1)
- アクセス向上秘伝(5/9)
- 一風変ったHaskellλ門(6/13)
- SICP Answer Book (5/31) 問題3.26追加
Zope Solution
Extra
アーカイブ
OSS案内所
Site Info
関連リンク
以前、リファクタリングのコラムの冒頭でも触れましたが、私は、ビジネス側で働いているXPerです。
ちょうど昨日、とある開発のリリースがあったのですが、ビジネス側の私は、本番環境へのインテグレーション(開発コードのアップロードですね)を担当しました。
このインテグレーションという作業、1人でやるととても不安で、作業にはミスも許されないため、非常にストレスがかかります。
こんなときこそXPの出番です。
ペアプログラミングならぬペアインテグレーションを計画して、実施しました。
もちろん、「XP」とは一言も言わずに(^_^)
たった4時間という限られた時間の中で、インテグレーションを行った訳ですが、事前に2人のうちどちらかが休んでもいいぐらいの相互説明とレビューを行っていたので、余裕がありました。
早朝作業にも関わらず、まるで遊んでいるかのように楽しげな感じでインテグレーションは進んでいったのです。
もちろん、XPらしく、作業が1つうまくいくごとに、拍手&ガッツポーズな訳です(^_^)
また、私よりも本番環境の運用についてはベテランの方が相棒でしたので、運用時の隠れたテクニック(作業を1発で終わらせるためのショートカットキーや暗黙知になっていたタブーな仕様等)を効率よく知ることもできました。
実は、インテグレーションの最中に3つほどトラブルがあったのですが、これについても2人で落ち着いて対処していき、見事時間通りに終わりました。
普通、1人でインテグレーションをしているときに、3つもトラブルが出たら、慌てふためく上にとてつもないプレッシャーがかかるじゃないですか?
でも、2人でわからないことを1つ1つ確実に整理していき、クリアしていったため、ほとんどプレッシャーもかからず、無事クリアすることができました。
インテグレーションという、ミスが許されず、プレッシャーがかかる作業は、ペア作業が本領を発揮する領域なんでしょうね。
プログラミング以上にペアインテグレーションは絶大な効果があると実感しました。
さて、今回の「共同所有」もペアプログラミングやペアインテグレーションと同じく、チームで行うプラクティスです。
簡単に言えば、チームメンバー全員でコードを共有して、全てのコードを誰でも変更できるようにするということです。
これは、前回のペアプログラミングと同じく、1匹狼が好きなプログラマにとっては、つらいプラクティスかも知れません。
なぜなら、自分の書いたエレガントなコードを他の誰かが勝手に(実際はネゴシエーションとか取りますけどね)書き換えるなんて信じられないからです!
まぁ、ここまではいかなくても、自分のコードを見られたくない、勝手に変えられたくないというプログラマは割と多いのではないでしょうか?
まるで、小学校のときに作文をとなりの友達に見られたくない...みたいな感覚に近いかも知れません(^_^)
でも、コードがあなただけしか変更できないとしたらどうでしょう?
もし、あなたがダンプカーにひかれたら(縁起でもないですけどね)、あなたのコードはチームメンバーにはアクセスできず、非常に困ってしまいます。
仮にアクセスできたとしても、いきなり「Aさんがダンプカーにひかれちゃったから、このAさんのコード、直しといてね」って言われて、すぐに直せませんよね?
ましてや、あなたが有能であれば、他の人には引き継げないコードになっているかも知れません...
まぁ、本当に優秀な人は、他の人にもわかりやすいコードを作るものですけどね(^_^u
それはともかく、あなたがいつダンプカーにひかれても、大丈夫なようにしておく必要があります(本当に縁起でもないですけど、これって重要な考え方です)。
そのためには...
1.コードは全員がアクセスできるところに置いておく
2.コードは全員が変更できるようにしておく
という、2つの仕掛けをしておく訳です。
こうすることで、共同所有が実現できます。
具体的には、「コード管理システム」や「バージョン管理システム」と呼ばれるツールを利用するのが一般的です。
これらについては、今回コラムに追加された、気ままなリンクの”共同所有”でもご覧下さい。
共同所有をすることで、あなたはいつでもチームメンバーからフォローしてもらうことができます。
同時に、あなたがチームメンバーをフォローすることもできます。
まさに「みんなは1人のために、1人はみんなのために」が似合うプラクティスですね。
あなたも共同所有で、真の意味でのチーム開発をはじめてみませんか?
来週2/11(金)は1回お休みで、次回2/18(金)は、「継続的インテグレーション」です。お楽しみに!
There is no comment.