« BTSを構成管理ツールとして使う | トップページ | ブロックはRuby流無名関数 »

2008/08/10

ソースインスペクションを真面目にやるGoogle、MS

GoogleやMSがソースコードレビューを真面目にやっている下記の記事を何度も読んで、ソースコードレビューシステムを何とか導入できないか模索している。

【元ネタの記事】
Googleのコードレビュー

MS内部のソフトウエア開発手法の話

Review Board - コードレビューをオンラインで

VMWareの開発でも利用されているソースコードレビュー共有ソフトウェア「Review Board」


ソースコードインスペクションの重要性は、二人の目による品質管理だけでなく、設計思想を共有する重要な手段と捕らえるべきだと思う。
プログラミングは誰でも癖があり、時に品質をすごく落とす。

だから、他の人に手軽に見てもらい、チャットのようにレビューをコメントしてもらうようなスタイルにしたい。
そうすれば、ソースインスペクションという技術者同士で熱くなりがちな議論を会話するような雰囲気に持ち込みやすいから。

他の記事で、特に気になった言葉は下記2つ。

「レビューは不具合をみつけるのではなく、信頼感を醸成するためのものだ。」
「レビュー(ピアレビュー)はペアプログラミングの代替である。」

コードレビューの利点は、品質の確保だけでなく、チームメンバー全員がコードの思想を共有することだと思う。
コードレビューによって、若手のスキルは確実に上がる。

コードレビューシステムに関しても、オープンソースの開発者の方が大手SIerよりもレベルが高い気がする。
オープンソースの方がソースインスペクションのプロセスも洗練されている。

オープンソースでは、特にパッチや機能追加のソースはコミッタが必ずレビューして、どのバージョンに入れるか判断を下す。
例えば、Matzさん、ひがやすをさんのような世界トップレベルのコミッタが、送られたパッチをコミットするかどうか判断するのだから、普通の大手SIerよりも技術レベルが当然高い。

他に、分散ソース管理(例えば、Gitなど)が普及しつつある理由の一つに、コミッタ権限の無い開発者がハックするのに使うこともあげられる。
つまり、ローカルのリポジトリに自分がハックしたソースをコミットして履歴を残せる。
マスタリポジトリから定期的にローカルリポジトリと同期すればいい。

この時、マスタリポジトリにコミットする前に、ソースインスペクションで癖のあるソースを直すのにこのコードレビューシステムを使いたい。

コードレビューシステムとしては、ReviewBoardが使いやすそう。
ReviewBoardはPythonでインストールが面倒だが、Webでレビューコメントを気軽に書けるので導入してみたい。

Web2.0のシステムは、SNSのように足跡のような機能が豊富。
つまり、誰かがコミットした、チケットにコメントした、という作業ログをシステムが自動巡回してその統計結果を多角的に集計して表示することが可能なのだ。

この機能は、特に小売系Webシステムでは、マーケティングの一手法として、リコメンドエンジンのような複雑なアルゴリズムなどで実装されている。

Web2.0のそんな機能をプロジェクト管理に使えないだろうか?

(その答えは、ソフトウェア・リポジトリ・マイニング)

|

« BTSを構成管理ツールとして使う | トップページ | ブロックはRuby流無名関数 »

プログラミング」カテゴリの記事

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

コメント

コメントを書く



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


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



トラックバック


この記事へのトラックバック一覧です: ソースインスペクションを真面目にやるGoogle、MS:

« BTSを構成管理ツールとして使う | トップページ | ブロックはRuby流無名関数 »