私はこれを正確に検討している会社で働いています。以下は、技術的負債に取り組むときに検討することをお勧めする3つの実用的な指標です。それらを追跡する「方法」と「いつ」の詳細については、技術的な債務を理解し、取り組むための要約記事3メトリクスをまとめました。
あなたの考えは何ですか?ご質問にお答えし、ご意見をお聞かせください:)。
欠陥および不要な技術負債を防ぐための所有権
所有権は、エンジニアリングの健全性の主要な指標です。
多くの人々から貢献を受け取っているコードベースの部分は、時間の経過とともにクズを蓄積しますが、少数の人々から貢献を受け取った部分は、より良い状態になる傾向があります。コードベースの部分について十分な情報を得ている緊密なグループで高い標準を維持するのは簡単です。
これにより、ある程度の予測力が得られます。コードベースの弱く所有されている部分は、時間の経過とともに負債を蓄積し、作業がますます難しくなります。特に、単に不完全な情報とコードの品質の所有権の希薄化の副作用として、意図せずに借金を引き受ける可能性があります。
これはコモンズの悲劇と幾分類似しています。
アーキテクチャを改善するための結束
凝集度は、明確に定義されたコンポーネントの末尾のインジケータです。
Cohesionとそれに対応するカップリングは、ソフトウェアを設計するときに焦点を当てる重要な概念として長い間認識されてきました。
コードは、その要素のほとんどが一緒に属する場合、高い凝集性を持つと言われています。一般に、保守性、再利用性、および堅牢性に関連するため、高い凝集度が好まれます。高い凝集力と疎結合は、密接に関連する傾向があります。
より高い再結合性と保守性の高いコードに関連付けられるだけでなく、高い凝集度は、コードベースの特定の部分を変更するために関与する必要のある人の数を最小限に抑え、生産性を向上させます。
問題領域を特定するために解約する
チャーン(繰り返しアクティビティ)は、成長しているシステムでリファクタリングの準備ができている領域を特定してランク付けするのに役立ちます。
システムが成長するにつれて、開発者は自分のアーキテクチャを理解することが難しくなります。開発者が新しい機能を提供するためにコードベースの多くの部分を変更する必要がある場合、バグにつながる副作用の導入を避けることは難しく、より多くの要素と概念に慣れる必要があるため、生産性が低下します。
これが、より安定したシステムを作成し、意図しない結果を回避するために単一の責任に努めることが重要である理由です。一部のファイルはアーキテクチャハブであり、新しい機能が追加されてもアクティブのままですが、ファイルを閉じて、厳密にレビュー、テスト、およびQAチャーニングする領域をもたらす方法でコードを記述することをお勧めします。
チャーンはこれらのアクティブなファイルを表面化するので、コードベースの変更の表面積を減らすためにそれらを分解する必要があるかどうかを決定できます。