濃縮還元オレンジニュース
Microsoftの開発現場ではVSSではなくCVSが,プロジェクト管理はMS ProjectではなくExcelが使われている
Microsoftに勤めている人との会話をまとめたものです。Googleの開発手法は最近カンファレンスなどでよく聞きますが,Microsoftでどのように開発を行っているのかはあまり知られていない気がします。
まず,コードレビューをかなり重要視しているようです。コードと単体テストが終わったら旧ソースとのDiffをチームメンバーに配り,メールベースでレビューを行います。レビューは1行1行細かく行い,全員がOKと判断したら再度テストを行いチェックインします。コードレビューはチーム全員で行うため,チームの能力が徐々に平均化していく効果があるようです。なおバグが出た場合,チーム全員でレビューしていることから「チーム全員に対する説明責任」が生まれ,なぜバグが出たかを全員が納得するまで説明しないといけないようです。
スケジュール管理に関しても独特な部分があります。プログラマは,コードを書く時間を1日最低4時間は確保しなければいけないようです。そしてそのほかはレビューやコミュニケーションに費やされます。また,プログラマは実装する機能一覧を見て,自分で一つ一つ時間単位で見積りを行います。それらを積み上げたものがスケジュールとなり,どんどん消化していくことになるのでグラフは右肩下がりになります。たいていは納期ぎりぎりでグラフの減少幅が小さくなってしまい,最後は不要な機能を削って工数を減らし,納期に合わせてリリースすることが多いとのことで,この辺は非常に現実味を感じます。しかし,過去2年で納期遅延を起こしたことは一度もないらしく,「重要な機能から優先して取りかかる」というルールがあれば非常に有用なのかもしれません。
このように,Microsoftは非常に洗練された開発手法を取り入れていることがわかります。また一方で,モダンなエッセンスも感じられます。たとえば,Diffをメールベースでレビューし,OKが出たらチェックインするという方法はGoogleとまったく同じです。また,レビューによってチームの能力が平均化する効果は,XPのペアプログラミングと同じです。さらに,プロジェクト進捗のグラフが右肩下がりになるというのはバーンダウンチャートを思い起こさせます。
ちょっと意外なところでは,ソースコード管理にVSS(Visual SourceSafe)ではなくCVSを使っていたり,工数管理をMS Project(Microsoft Office Project)ではなくExcelでやっていたりするのは,少し微笑ましく思います。
濃縮還元オレンジニュース
- 調査と実践のバランス
- 会社の甘いささやき翻訳辞典「いい経験になる」「これが最後」「流用できる」
- Microsoftの開発現場ではVSSではなくCVSが,プロジェクト管理はMS ProjectではなくExcelが使われている
- ミラクル・リナックスの吉岡弘隆氏,取締役を退任してプログラマへ
- Perl「言語」初心者がモダンなPerlを高速に学ぶ方法
- 伊藤直也氏によるKansai.pmでの発表資料「Hadoop StreamingでMapReduce」
- PHP 5.3の無名関数を試してみた
- ソーシャルニュースサイト「reddit」がソースコードを公開
- Rails 2.1.0リリース
-
[雑記] 複数人でのプログラム開発の手法
kinnekoさんの日記を拝見していたら、MSさんのお話があったので私も読んでみました。 http://d.hatena.ne.jp/kinneko/20080828/p11 http://gihyo.jp/tb?p=dev/clip/01/orangenews/vol46/0007 MSさんでもこういう感じなんだ。面白いですねー。参考にします!
Tracked : #1 gohtenのミエル日記 (2008/09/03, 14:43)

