ソフトウェアプロジェクトの測定基準は、今日の業界で人気がありますか?


9

チームプロジェクトについて外部のアドバイスを求めている開発者に出会いました。企業の幹部、プロジェクトマネージャー、開発者向けに、メトリックを自動的に計算し、反復ごとにグラフ化できる巨大なソフトウェアスイートを開発していることがわかりました。

コンピューターサイエンスのバックグラウンドを持つ学生として、メトリックスとその重要性についてほとんど知りませんが、私の質問は次のとおりです。

  1. ほとんどの企業には何らかの方法がありますか、意味のあるメトリックを測定するために、エレガントなプログラムである必要はありませんか?
  2. プロジェクトの範囲と見積もりを絞り込むのに役立つ単一または組み合わせのメトリックはどれですか?
  3. 指標を分析する人として、どのくらいの頻度で指標に基づいて決定を下しますか?IE。毎週失敗したテストは劇的に増加していますか?
  4. 調査指標の導入により、プロジェクトの理解が深まったと思いますか?

なぜだかわかりませんが、開発者プロジェクトに興味をそそられました。yの場合

回答:


6

メトリックの一部の本はあなたの大学の図書館は、おそらく含まれていることをソフトウェアメトリクスソフトウェア品質工学の指標とモデルを。それらの2つはあなたに出発点を与えるはずです。産業界では、どのような種類のメトリック測定プログラムも持っている企業はほとんどありません。

ほとんどの企業には何らかの方法がありますか、意味のあるメトリックを測定するために、エレガントなプログラムである必要はありませんか?

Visual Studioには、始めることができるいくつかのコード分析ツールが含まれています。ほとんどの企業には、最悪の測定基準を測定するためのコードさえありません。「それを成し遂げるだけ」が業界の圧倒的な原動力であるように思われ、保守性の懸念は「今年ボーナスをもらえるのか」というマネージャーの懸念に非常に短い注意が向けられています。そして「これは私が約束した時間内に行われますか?」毎年変更が加えられて年々持ち越される製品であっても、これらの2つの懸念は、保守性とバグの検出/防止に関する開発者の懸念を小さくします。

プロジェクトの範囲と見積もりを絞り込むのに役立つ単一または組み合わせのメトリックはどれですか?

私はそれを見つける循環的複雑度の結合がどのようにバギーやいかに難しいコードがなります維持するための強力な指標です。循環的複雑度が20前後の場合、テストすることはほとんど不可能であり(コードには最大2 ^ 20のパスがあるため)、より小さな部分に分解する必要があります。複雑さを排除することはできませんが、より扱いやすいチャンクにスライスすることはできます。

見積もりを求めている場合は、関数 ポイントを調査する必要があるでしょう。

コードカバレッジ%が各反復を大幅に低下させています。問題について開発者に警告しますか

ほとんどのマネージャーは、チェックインの数と修正されるバグの数を気にしていることがわかりました。私の現在のマネージャーはユニットテストに反対しており(彼は時間の無駄だと考えています)、以前のマネージャーは、ユニットテストに費やされた時間はそもそもそれを書くために費やされるべき時間であると感じていました。

開発者が使用する標準的な議論は、何かを測定する場合、それはあなたが得るものだけであるということです。この議論は、唯一のメトリックがコード行であるという考えから来ています。


詳細な回答と関連リンクをありがとう。ちょうどフォローアップとして:1.マネージャーがチェックインの数を気にするのはなぜですか?チェックインの定義が違うかもしれません。2.コード行が最悪のメトリックであることはどういう意味ですか?最悪の場合、プロジェクトについての良い兆候はありませんか?
ラスK

コードをチェックインしていない開発者である@Russは、機能していないと見なされます。LOCは、ゲームに取るに足らないことで最悪です。K&RとAllmanスタイルのインデントコードの違いを見てみましょう:en.wikipedia.org/wiki/Indent_style。Allmanスタイルでは、open {を別の行に置くだけで、LOCカウントが高くなります。免責事項:私はK&Rスタイルが嫌いです。Where's Waldoのプレイにあまり時間をかけずに、一致するオープンを見つけることはめったにありません。
タングレナ

In the industrial world, very few companies have any sort of metric measurement program at all.CMMIレーティングが2以上の企業には、測定/メトリック分析プログラムが導入されています。測定値と測定基準の収集は、成熟度レベル2の要件です。CMMI成熟度レベル4は、特定された問題に対処する根本原因分析などに加えて、これらの測定値と測定基準に基づく定量的なプロジェクト管理を必要とします。CMMIレベル4(または5)に格付けされた組織は多数あります。
トーマス・オーエンス

2

私は、講演者が私見のように洞察に満ちたポイントをいくつか述べたソフトウェアメトリックスについての講演でした。私自身、これらのことについてほとんど経験がなかったので、私はまだ興味と刺激を受けていましたが、それが間違っているか正しいかどうかは言えません。

主なアイデアは次のとおりです。

  • それ自体で有用な特異なメトリックはありません。
  • 絶対ターゲット(つまり、XX%コードカバレッジ)を設定しても意味がありません。
  • 履歴のないメトリックは便利です。

したがって、これを解決するには:

  • 以下のようないくつかのメトリックを表示します。
    • 行の総数/変更
    • コミット数
    • %コードカバレッジ
    • テストの数
    • 循環的複雑度
    • file / package / ...依存関係
    • ...
  • QA / CIからのデータを表示:
    • バグ/拡張/変更の数(私は個人的にこの分類は重要だと思います)
    • #合計/追加/修正
  • 経時的な傾向を示すグラフにこれらのメトリックを表示します

このようにして、チケットが迅速に修正されると、コードの品質が低下しているかどうかを確認できます。また、バグデータベースであまり起こっていないように見える場合は、リファクタリングが行われているため、コードの品質が上がる可能性があります。

要約すると、重要なのはこのタイプの動的動作であり、生データ(単一のメトリックの値)ではなく情報を提供するものです。

このスキームに基づいて、CI接続の溶岩ランプの横にあるワイドスクリーンテレビにグラフをいくつか表示する予定です。;)


よく置きます。おっしゃるように、メトリックだけでは役に立たないという記事をたくさん読みましたが、歴史は重要です。返信に時間を割いていただきありがとうございます。
ラスK
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.