不良コードのコストを計算する


13

私は経営陣にリファクタリングへの努力を投資するよう説得するための議論を探しています。

Jiraを使用して作業を記録し、すべてのsvn-commitをjira呼び出しに関連付けます。

私のアイデアは次のことです。

  • 実装が非常に悪いが頻繁に使用されるコードの領域を手動で見つけます。User-POVとDeveloper-POVの両方(バグ修正)
  • JIRA-Issuesを含むsvn-commitsを取得します
  • いくつかの基準(問題の種類、バージョン、優先順位など)に従って問題をフィルタリングします。
  • これらのバグに費やされた時間/努力を計算する
  • リファクタリングの労力とリスクを推定する
  • 数字を提示し、それを修正する努力を求めます。

これについてどう思いますか?そのような測定は有用であり、説得力があるでしょうか?長所と短所は何ですか?

回答:


5

有効な番号を提供できれば、マネージャーが行動する可能性が高いことがわかりました。(彼らが論理と費用/便益を理解できるなら。)

私見、説得力のあるケースを作成するには、それがどれほど悪いかを示すために次のものが必要です:

  • 問題について記録されたサポートインシデントの数
  • 悪いコードの保守/バンドエイド/サポート修正の実行に数時間かかる
  • メンテナンス/バンドエイド/サポートを行う人の時間給に基づく時間コスト
  • これらのアイテムがビジネスにとってどれほどミッションクリティカルであるかを示すための方法

そして、リファクタリングを主張するには、次のものが必要です。

  • これらの悪いことの上位3つをそれぞれリファクタリングおよび実装するための時間の見積もり
  • 実装のコスト見積もり(上記で使用したのと同じ時間給)

これらを使用すると、リファクタリングにかかる​​時間が、上位3つの各アイテムの3つのインシデントのサポート時間よりも大幅に短い場合、時間を節約できます。あなたはこの短い時間が費やされると主張することができます

  • サポートインシデントがn個未満になる
  • これらの事柄に対するこれらのインシデントはもうありません(さらに良い!)

ただし、多くの人があなたがしているすべてのサポートのスケジュールに時間を割いていないため、この販売の最も難しい部分は次の質問に答えることです。

Xでこれらの問題の作業に時間を費やしている間に、現在のプロジェクトYが完了するのをどれくらい待つ必要がありますか????? (現在のサポートタイムシンクにもかかわらず、ガントチャートで予測およびスケジュールすることはできません)

これは、意思決定者とのコミュニケーションの程度と、状況をどのように理解しているかに大きく依存します。

これは間違いなく価値があると思うので、メトリックを使用してケースを作成し、時間を節約するために、たとえそれがうまくいかなくても、練習することができます。残念ながら、データにもかかわらず、誰もが納得しやすいわけではありません。幸運を!


2

リファクタリングではバグも発生することに注意してください(テストではこれをキャッチしますが、それでもバグであり、修正する必要があります)。偶然にNetscapeを引っ張らないでください。「リファクタリング」の個人的な定義に依存します。一部の人にとって、これは「すべてのコードを他の人に書き換える」ことを意味し、「一部の内部を変更する」ことを意味します。自分がどんな人なのかをどのように見分けますか?次の質問を自問してください。

パブリックインターフェイスを変更していますか?

答えが「はい」の場合、再設計を行っています。答えが「いいえ」の場合、リファクタリングを行っており、おそらく特別な承認なしに日常活動の過程でそれを行うことができます。これは、再設計により多くのバグが発生するため、リファクタリングは通常実行しやすいためです(テストは既にパブリックインターフェイスを実行し、それ自体を変更する必要がないため)。

1年前に行われたリファクタリングの有無にかかわらず、Xがどれだけのコストを要するか誰も知らないため、これは難しいケースです。私の経験では、実用的なマネージャーは常にこの種のものを撃shootします:

  1. 努力から直接の収入源は得られません(財務コスト、請求不可)
  2. glyい作業コードはまだ作業中のコードであり、問​​題を修正する代わりに作成するリスクがあります(潜在的な品質コスト)
  3. リファクタリング中に他のプロジェクトが遅延します(時間コスト)

通常の開発中にリファクタリングを行うことを提案した場合、+ 1。
クウェブル

0

すべてのそのような数は、最終的には、あなたはそれがかかるだろうと思う量の比較あなたのケースでは、推測に基づいていないあなたはそれがかかるだろうと思いますどのような対リファクタリングするリファクタリングを。あなたができる最善のことは、推測に何らかの数値的で事実に基づいた根拠があることを示すことです。

長所は、おそらくリファクタリングできるように説得するのに効果的であり、うまくいくとバグの数を減らすことができるということです。

短所は、バグの修正に費やされた時間が少なくともリファクタリングに費やされた時間ほど下がらない場合、おそらくリファクタリングが許可されず、おそらく「無駄な」時間のせいにされるということです。 。

プロジェクト全体の複雑さを軽減したり、機能の追加を容易にしたりすることで得られるデバッグ時間の節約は、測定するのが困難すぎてあまり役に立たないかもしれませんが、それらが存在することは言うまでもありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.