一般的に、上司を馬鹿と呼ぶのは悪い考えです。そのため、私の提案は、メトリックを拒否するのではなく、メトリックを理解して議論することから始めます。
実際に馬鹿と見なされていない人の中には、コード行に基づいたメトリックを使用している人もいます。フレッド・ブルックス、バリー・ベーム、ケーパーズ・ジョーンズ、ワッツ・ハンフリーズ、マイケル・フェイガン、スティーブ・マコーネルはすべてそれらを使用しました。おそらく同僚に言っても、この神のモジュールは4000行であり、より小さなクラスに分割する必要がある場合でも、おそらくそれらを使用しているでしょう。
私たちの多くが尊敬する情報源から、この質問に関連する特定のデータがあります。
http://www.codinghorror.com/blog/2006/07/diseconomies-of-scale-and-lines-of-code.html
http://www.codinghorror.com/blog/2005/08/are-all-programming-languages-the-same.html
http://discuss.joelonsoftware.com/default.asp?joel.3.286106.22
プログラマー1時間あたりのコード行の最適な使用方法は、プロジェクトの存続期間中にこの値がかなり高くなることを示すことだと思いますが、欠陥が見つかって修正されると、問題を解決するために新しいコード行が追加されます元の推定値の一部ではなかったため、重複を排除して効率を向上させるためにコード行を削除すると、LOC / hrが生産性以外のものを示していることがわかります。
- コードが高速で、ずさんで、肥大化しており、リファクタリングを試みない場合、見かけの効率は最高になります。ここでの教訓は、測定するものに注意する必要があるということです。
- 特定の開発者にとって、今週大量のコードを追加または変更する場合、来週、コードのレビュー、テスト、デバッグ、および再作業に関して技術的な負債が発生する可能性があります。
- 一部の開発者は、他の開発者よりも一貫した出力レートで作業します。優れたユーザーストーリーの取得に最も多くの時間を費やし、非常に迅速に対応して単体テストを行い、その後ユーザーストーリーのみに焦点を当てたコードをすばやく対応して作成していることがわかります。ここで重要なことは、コードを開始する前に問題と解決策を十分に理解しているため、整然とした開発者はおそらくすぐに好転し、コンパクトなコードを記述し、手戻りが少ないことです。コーディングの前と後ではなく、考え抜いた後にだけコーディングするので、コーディングを減らすことは理にかなっています。
- コードの欠陥密度を評価すると、コードは均一ではないことがわかります。一部のコードは、ほとんどのトラブルと欠陥を説明します。書き換えの候補になります。それが起こると、それが最も手間のかかるコードになるのは、そのおかげで高度な手直しが必要だからです。CVSやSVNなどのツールから報告される可能性のある、追加、削除、変更されたコードカウントの総グロス行は最も高くなりますが、投資されたコードの1時間あたりのネット行は最も低くなります。これは、最も複雑な問題または最も複雑なソリューションを実装するコードの組み合わせになる可能性があります。
コードの行におけるプログラマの生産性をめぐる議論がどのようになったとしても、余裕がある以上の人的資源が必要であり、システムが間に合わないことは決してありません。実際のツールはメトリックではありません。それらは、優れた方法論、採用またはトレーニングできる最高の開発者の使用、および範囲とリスクの制御(おそらくアジャイルの方法による)です。