ソースインスペクションを真面目にやるGoogle、MS
GoogleやMSがソースコードレビューを真面目にやっている下記の記事を何度も読んで、ソースコードレビューシステムを何とか導入できないか模索している。
【元ネタの記事】
Googleのコードレビュー
VMWareの開発でも利用されているソースコードレビュー共有ソフトウェア「Review Board」
ソースコードインスペクションの重要性は、二人の目による品質管理だけでなく、設計思想を共有する重要な手段と捕らえるべきだと思う。
プログラミングは誰でも癖があり、時に品質をすごく落とす。
だから、他の人に手軽に見てもらい、チャットのようにレビューをコメントしてもらうようなスタイルにしたい。
そうすれば、ソースインスペクションという技術者同士で熱くなりがちな議論を会話するような雰囲気に持ち込みやすいから。
他の記事で、特に気になった言葉は下記2つ。
「レビューは不具合をみつけるのではなく、信頼感を醸成するためのものだ。」
「レビュー(ピアレビュー)はペアプログラミングの代替である。」
コードレビューの利点は、品質の確保だけでなく、チームメンバー全員がコードの思想を共有することだと思う。
コードレビューによって、若手のスキルは確実に上がる。
コードレビューシステムに関しても、オープンソースの開発者の方が大手SIerよりもレベルが高い気がする。
オープンソースの方がソースインスペクションのプロセスも洗練されている。
オープンソースでは、特にパッチや機能追加のソースはコミッタが必ずレビューして、どのバージョンに入れるか判断を下す。
例えば、Matzさん、ひがやすをさんのような世界トップレベルのコミッタが、送られたパッチをコミットするかどうか判断するのだから、普通の大手SIerよりも技術レベルが当然高い。
他に、分散ソース管理(例えば、Gitなど)が普及しつつある理由の一つに、コミッタ権限の無い開発者がハックするのに使うこともあげられる。
つまり、ローカルのリポジトリに自分がハックしたソースをコミットして履歴を残せる。
マスタリポジトリから定期的にローカルリポジトリと同期すればいい。
この時、マスタリポジトリにコミットする前に、ソースインスペクションで癖のあるソースを直すのにこのコードレビューシステムを使いたい。
コードレビューシステムとしては、ReviewBoardが使いやすそう。
ReviewBoardはPythonでインストールが面倒だが、Webでレビューコメントを気軽に書けるので導入してみたい。
Web2.0のシステムは、SNSのように足跡のような機能が豊富。
つまり、誰かがコミットした、チケットにコメントした、という作業ログをシステムが自動巡回してその統計結果を多角的に集計して表示することが可能なのだ。
この機能は、特に小売系Webシステムでは、マーケティングの一手法として、リコメンドエンジンのような複雑なアルゴリズムなどで実装されている。
Web2.0のそんな機能をプロジェクト管理に使えないだろうか?
(その答えは、ソフトウェア・リポジトリ・マイニング)
| 固定リンク
「プログラミング」カテゴリの記事
- Javaのモジュールシステムの考え方をまとめてみた(2022.10.21)
- Javaのモジュールシステムは複雑性をより増している(2022.09.10)
- Javaはなぜ関数型言語になろうとしているのか(2022.09.02)
- Javaのラムダ式の考え方(2022.08.10)
- Javaはオブジェクト指向言語ではなく関数型言語だった~「[増補改訂]関数プログラミング実践入門」はお勧めの本だ(2022.08.06)
「プロジェクトマネジメント」カテゴリの記事
- PMPとCSM取得者数推移(日本 vs 中国)から読み取れる指針は何か?(2026.02.23)
- 製造業のDXを推進する部門をITコーポレート部門に割り当てるとなぜ失敗するのか(2026.02.04)
- SAFeはScrumと全く異なるアジャイル開発プロセスだ(2026.02.01)
- プ譜でプロジェクトの目的を管理する(2026.01.31)
- Redmine AI HelperプラグインはRedmineをAI駆動プロジェクト管理に変える可能性を秘めている #Redmine(2025.12.31)


コメント