unoh.github.com
共同開発を効率よく行う方法
Tue Aug 22 22:17:08 -0700 2006
尾藤正人です。
ウノウではおかげさまで順調にエンジニアの数が増えてきました。エンジニアが増えてくると、共同開発をいかに効率よく行うかが問題になってきます。n人の開発者がいれば開発スピードはn倍にはならず、n倍よりも落ちます。人数が多ければ多いほど、共同開発は難しくなり、ひどい場合には人数が増えたから開発スピードが落ちたということになりかねません。
ウノウでは共同開発を効率よく行うために様々な工夫を用いています。今回はウノウでどのようなステップで開発を行っているか紹介したいと思います。
subversion でソースコードを管理
ソースコード管理ソフトがなくては話になりません。ウノウではソースコードの管理に subversion を使ってます。subversion を使うことで過去の状態に簡単に戻すことができますし、個人の環境を完全に分離することができます。
subversion のコミットログをMLに流す
subversion のコミットの差分をMLに流すようにしています。コミットログのMLには開発者全員がsubscribeします。誰が何をコミットしたのかすぐ分かるので、開発がどのように進んでいるのか把握できて便利です。
開発者個人に独立したバーチャルドメインを設定
各開発者ごとに独立したバーチャルドメインを与えて、完全に独立した環境で開発を行います。他の開発者による影響が全くないので、自分の案件に集中して開発を行うことができます。
最新版を確認できるテスト環境を用意
subversion にコミットが行われるとテスト環境の方に自動的に反映されるようになります。案件が終わると我らがテスト番長が確認してくれるようになっています。
案件は全てBTSで管理する
ウノウでは案件管理に
影舞
を使用しています。シンプルで分かり易く便利です。以前
trac
を導入しようとしたのですが、テスト待ち状態がなくて断念しました。テスターのいる環境ではテスト待ちにできないと意味がないので。
テスト番長が入念にチェック
開発主体の企業でもテスト専門のテスターがいるところは少ないんじゃないでしょうか。ウノウではテスト番長が終了案件を入念にチェックしてくれます。まず開発環境でテスト、本番環境にアップデートしてもう1回テスト。この段階を経て案件が完全にクローズされるようになってます。
開発サーバのファイルはsambaで共有
開発サーバのホームディレクトリはsambaで共有できるようにしています。僕は個人的には vim しか使わないので全然問題ないのですが、エディタは開発者にとっては重要なツールなので慣れてるものを使ってもらいたい。sambaでファイルを共有すれば、クライアントで好きなエディタを使って効率よく開発してもらうことができます。
情報はwikiで共有
細かい情報は全部wikiで共有。ウノウでは事務員さんもwiki使ってます。
本番環境へのアップデートは subversion で
本番環境へのアップデートは svn update するだけ。アップデート後はもちろんテスト番長によるテストを行います。エラーがあった場合にメールが飛ぶようになっているので、何か問題があった場合には過去の状態に戻します。subversion を使うとリビジョンを指定してアップデートすることができるので、いつでも元の状態に戻すことができます。
まとめ
アジャイルな開発には効率のよい共同開発方法が必要不可欠です。上記のような手法はたとえ共同開発でなくて個人で開発していても役にたつと思います。
他にもいい方法があれば、ぜひ教えていただきたいと思います。