Ist das Messen von Softwareprojektmetriken in der heutigen Industrie beliebt?

9

Ich traf einen Entwickler, der externe Ratschläge zu seinem Teamprojekt wollte. Ich fand heraus, dass sie eine riesige Software-Suite für Führungskräfte, Projektmanager und Entwickler des Unternehmens entwickeln, die Metriken automatisch berechnen und pro Iteration grafisch darstellen kann.

Als Student mit Informatik-Hintergrund weiß ich sehr wenig über Metriken und ihre Bedeutung, aber meine Fragen sind:

  1. Haben die meisten Unternehmen eine Möglichkeit, müssen sie kein elegantes Programm sein, um aussagekräftige Kennzahlen zu messen?
  2. Welche einzelnen oder kombinierten Metriken helfen Ihnen dabei, den Umfang und die Schätzungen Ihres Projekts einzugrenzen?
  3. Wie oft stützen Sie als Person, die Metriken analysiert, Entscheidungen auf diese? IE. Pro Woche fehlgeschlagene Tests nehmen drastisch zu?
  4. Haben Sie das Gefühl, dass die Einführung des Studiums von Metriken Ihnen geholfen hat, das Projekt besser zu verstehen?

Ich weiß nicht warum, aber das Entwicklerprojekt hat mich fasziniert und ich muss mehr wissen. Wenn y

Russ K.
quelle

Antworten:

6

Einige Bücher über Metriken, über die Ihre Universitätsbibliothek wahrscheinlich verfügt, enthalten Software-Metriken sowie Metriken und Modelle in Software Quality Engineering . Diese 2 sollten Ihnen einen Startplatz geben. In der industriellen Welt haben nur sehr wenige Unternehmen überhaupt ein metrisches Messprogramm.

Haben die meisten Unternehmen eine Möglichkeit, müssen sie kein elegantes Programm sein, um aussagekräftige Kennzahlen zu messen?

Visual Studio enthält einige Tools zur Codeanalyse, mit denen Sie loslegen können. Die meisten Unternehmen haben nicht einmal etwas, um die schlechteste Metrik zu messen: Codezeilen. "Just get it done" scheint die überwältigende treibende Kraft in der Branche zu sein, und Bedenken hinsichtlich der Wartbarkeit werden den Bedenken der Manager in Bezug auf "Werde ich dieses Jahr meinen Bonus erhalten?" und "wird dies in der Zeit geschehen, die ich versprochen habe?" Selbst bei Produkten, die sich von Jahr zu Jahr mit inkrementellen Änderungen übertragen, stellten diese beiden Bedenken die Bedenken der Entwickler hinsichtlich Wartbarkeit und Fehlererkennung / -prävention in den Schatten.

Welche einzelnen oder kombinierten Metriken helfen Ihnen dabei, den Umfang und die Schätzungen Ihres Projekts einzugrenzen?

Ich finde, dass zyklomatische Komplexität und Kopplung starke Indikatoren dafür sind, wie fehlerhaft oder wie schwierig es sein wird, den Code zu warten. Wenn die zyklomatische Komplexität bei etwa 20 liegt, ist es meiner Meinung nach fast unmöglich zu testen (da es bis zu 2 ^ 20 Pfade durch den Code gibt) und sollte in kleinere Teile zerlegt werden. Sie können die Komplexität nicht beseitigen, aber Sie können sie in besser handhabbare Teile aufteilen.

Wenn Sie suchen , Schätzung , möchten Sie wahrscheinlich untersuchen Funktion Punkte .

Die Codeabdeckung% senkt jede Iteration drastisch. Machen Sie Ihre Entwickler auf das Problem aufmerksam

Ich finde, dass die meisten Manager sich um die Anzahl der Check-Ins und die Anzahl der Fehler kümmern, die behoben werden. Mein derzeitiger Manager ist gegen Unit-Tests (er hält dies für Zeitverschwendung), und mein vorheriger Manager war der Ansicht, dass die für Unit-Tests aufgewendete Zeit die Zeit war, die eigentlich für das Schreiben hätte aufgewendet werden müssen.

Das von Entwicklern verwendete kanonische Argument lautet: Wenn Sie etwas messen, erhalten Sie nur dieses. Dieses Argument beruht auf der Idee, dass die einzige Metrik Codezeilen sind.

Tangurena
quelle
Vielen Dank für die ausführliche Antwort und die relevanten Links. Nur als Folge: 1. Warum sollte sich ein Manager für die Anzahl der Check-ins interessieren? Vielleicht ist unsere Definition eines Check-ins anders. 2. Was meinen Sie damit, dass Codezeilen die schlechteste Metrik sind? Schlimmste wie darin gibt es keinen guten Hinweis auf das Projekt?
Russ K
@Russ, ein Entwickler, der keinen Code eincheckt, wird als nicht funktionsfähig angesehen. LOC ist insofern am schlimmsten, als es für das Spiel trivial ist. Sehen Sie sich den Unterschied zwischen dem K & R- und dem Allman-Stil des Einrückungscodes an: en.wikipedia.org/wiki/Indent_style . Der Allman-Stil ergibt eine höhere LOC-Anzahl, indem das offene {in eine separate Zeile gesetzt wird. Haftungsausschluss: Ich hasse den K & R-Stil, da ich selten das passende Open finde {ohne zu viel Zeit damit zu verbringen, Where's Waldo zu spielen.
Tangurena
In the industrial world, very few companies have any sort of metric measurement program at all.Jedes Unternehmen mit einem CMMI-Rating von 2 oder höher verfügt über ein Mess- / Metrikanalyseprogramm. Das Sammeln von Messungen und Metriken ist eine Reifegrad 2-Anforderung. CMMI Maturity Level 4 erfordert ein quantitatives Projektmanagement, das auf diesen Messungen und Metriken basiert, sowie Dinge wie die Ursachenanalyse, um auf identifizierte Probleme zu reagieren. Es gibt eine große Anzahl von Organisationen, die auf CMMI Level 4 (oder 5) bewertet sind.
Thomas Owens
2

Ich war bei einem Vortrag über Softwaremetriken, bei dem der Redner meiner Meinung nach einige aufschlussreiche Punkte machte. Da ich selbst wenig Erfahrung mit diesen Dingen hatte, war ich immer noch fasziniert und inspiriert, aber ich kann nicht sagen, ob es falsch oder richtig ist.

Die Hauptideen waren:

  • Keine einzelne Metrik ist für sich genommen nützlich.
  • Das Festlegen eines absoluten Ziels (dh XX% Codeabdeckung) ist nicht sinnvoll.
  • Eine Metrik ohne Verlauf ist nützlich.

Um dies zu lösen:

  • Zeigen Sie verschiedene Metriken an, z.
    • Anzahl der Zeilen insgesamt / geändert
    • Anzahl der Commits
    • % Codeabdeckung
    • Anzahl der Tests
    • zyklomatische Komplexität
    • Datei / Paket / ... Abhängigkeit
    • ...
  • Daten von QA / CI anzeigen:
    • Anzahl der Fehler / Verbesserungen / Änderungen (Ich persönlich halte diese Kategorisierung für wichtig)
    • # total / hinzugefügt / behoben
  • Zeigen Sie diese Metriken in Diagrammen an, die Trends im Zeitverlauf anzeigen

Auf diese Weise kann man sehen, ob die Codequalität abnimmt, wenn Tickets schnell repariert werden. Wenn mit der Fehlerdatenbank nicht viel zu passieren scheint, kann die Codequalität steigen, da Refactorings durchgeführt werden.

Zusammenfassend: Es ist diese Art von dynamischem Verhalten, die wichtig ist und die Ihnen Informationen anstelle von Rohdaten liefert (was der Wert einer einzelnen Metrik wäre).

Ich plane, einige Grafiken nach diesem Schema auf einem Breitbildfernseher neben unseren mit CI verbundenen Lavalampen zu platzieren. ;)

Macke
quelle
Gut ausgedrückt. Wie Sie bereits erwähnt haben, habe ich viele Artikel darüber gelesen, wie nutzlos Metriken allein sind und wie wichtig die Geschichte ist. Vielen Dank, dass Sie sich die Zeit genommen haben, um zu antworten.
Russ K