あなたがそれをエレガントだと思うかどうかはわかりませんが、ワッツ・ハンフリーは、あなた自身の生産性を測定することについてのPersonal Software Processと呼ばれる本全体を書きました。彼は、デスクでの時間対中断、さまざまな種類のソフトウェアライフサイクルアクティビティに費やした時間、コード量ごとの欠陥などの入力のメトリックを概説しました。短いバージョンを提供する技術レポートがあります:
http://www.sei.cmu.edu/library/abstracts/reports/00tr022.cfm
開発者コードの品質のようなものを見たい場合、Chidamber&Kemererはオブジェクト指向コードのいくつかのメトリックを提案しました。
オブジェクト指向コードのメトリック
- 継承ツリーの深さ、
- メソッドの重み付き数、
- メンバー関数の数、
- 子どもの数
- オブジェクト間の結合。
コードのベースを使用して、彼らは、共変分析を使用して、これらのメトリックを欠陥密度および保守作業に関連付けようとしました。後の研究では、数百のSource Forge Javaプロジェクトで同様の分析を行い、CKメトリックスと、後で提案されたいくつかの追加メトリックスに対する特性を決定しました。
コードレビューのコンテキストで発生するメトリック
欠陥は、多くの基準で分類できます。
- 重大度:(メジャー、マイナー、化粧品、調査/不明)、
- タイプ(論理、タイプミス、スペル、コーディング標準違反など)、
- 起源/相の封じ込め(要件、設計、コードなど)。
また、準備率と検査率(レビュアーごとの時間、コードの行ごとの時間)と欠陥密度(KLOC(千行のコード)ごと、インスペクター/レビュアーの時間ごと)もあります。
これらの値を管理図にプロットすることで、プロセスの範囲内にあるかどうかを確認できます(たとえば、KLOCあたり平均25個の欠陥があるグループに欠陥がないことを発見する200行のコードを検査するチームが誤動作している可能性があります)。
その他の指標
以下を含むその他の指標
分析の制限
メトリックの値には非常に大きな制限があります。開発者ごとに修正されたバグはほとんど何でも意味する可能性があり、その測定値を罰したり報いたりし始めると、バグはより多く、より細かくなり、修正された難しいバグと簡単なバグの組み合わせもチームチェリーが選ぶと変化します最も多くを競うために。
また、一定の注意散漫があり、潜在的な焦点と楽しさが失われますが、これは侵入的な測定に伴う可能性があります。あなたは、ワーズワースのような湖の詩人よりも優雅な(そして感情的に負担がかかる)ことはできないと言いました、
Sweet is the lore which Nature brings;
Our meddling intellect
Mis-shapes the beauteous forms of things:--
We murder to dissect.
ソフトウェアは正確には自然ではありませんが、高校の英文学のクラスの何かを使うことは決してないと思ったので、ある程度の自由度を与えてください。
アジャイルは、一元化された大きなプロセスに対する反応と見なされる場合があります。時々、その作業モードでは非常に多くの分析作業が必要になるため、ソフトウェアの作成中にフローに到達する能力がすべて失われてしまいます。