Welche KPIs für die Softwarequalität verwenden Sie?

Ich muss die KPIs definieren , die mir helfen zu sagen, ob die Software, die aus dem Projekt hervorgeht, gut oder schlecht ist. Ich meine, erfüllt es Qualitäts-KPIs, die angestrebt wurden oder nicht. Die Frage ist natürlich, welche KPIs für Softwareentwicklungsprojekte definiert werden können. Welche Qualitäts-KPIs verwenden Sie in Ihren Softwareentwicklungsprojekten? Wie interpretieren Sie sie? Ich danke Ihnen allen im Voraus für die Hilfe!

Für das Änderungsmanagement in meinem Projekt verwenden wir MS Team Foundation Server 2010. Alle Prozesse basieren sehr lose auf CMMI. Das Projekt ähnelt SAP. Wir haben Module, die den Kern des Systems bilden, niedrigere Ebenen sind für kleinere Teile von Stakeholdern üblich oder passen sich an. Wir arbeiten in einem Modus der Unterstützung aktuell veröffentlichter Systemversionen (Fehlerbehebung, Hinzufügen von Benutzern usw.) und erstellen auch neue Futures. Das Projekt ist eine Webanwendung.

Wir arbeiten für interne Kunden.

Das ist eine gute Frage, aber ich glaube, Sie müssen Ihr Projekt etwas genauer beschreiben ... da meine KPIs möglicherweise nicht auf Ihr Projekt zutreffen.

Antworten (3)

Eigentlich verwende ich nur zwei KPIs:

  • Anzahl der Benutzer/Kunden : Als Ziel definieren wir, wie viele Benutzer oder Kunden wir in einem bestimmten Zeitraum haben möchten. Zum Beispiel wollen wir in diesem Jahr 30.000 neue Kunden

  • die Zeit, die wir brauchen, um ein neues Feature auszuliefern, also die Vorlaufzeit . Wir überprüfen unsere tatsächliche Vorlaufzeit und prüfen, ob diese Zeit ausreicht, um auf dem Markt zu bleiben. Zum Beispiel wollen wir unsere derzeitige Vorlaufzeit von 10 Tagen in diesem Jahr auf 9 Tage reduzieren, weil die Konkurrenz schneller geworden ist als wir

Wie Sie sehen können, handelt es sich bei diesen KPIs/Zielen um die Trends: „ mehr “ Kunden und „ weniger “ verbrachte Zeit. Darüber hinaus sind die festgelegten Zahlen mit unserer derzeitigen Arbeitsweise nicht erreichbar, sodass die Organisation arbeiten und sich verbessern muss, um sie zu erreichen.

Wir haben automatisierte Tools, um die oben genannten Daten zu erhalten, und wir überprüfen regelmäßig unsere Indikatoren, ob wir auf dem richtigen Weg sind oder nicht. Wenn nicht, ändern wir unsere Arbeitsweise, probieren neue Sachen aus etc.

Ich verwende KPIs wie die Anzahl der Fehler oder Codezeilen oder die Testabdeckung nicht mehr, weil

  • sie helfen nicht, mehr Produkte zu verkaufen oder auf dem Markt zu bleiben
  • sie sind schwer auf eine ganze Organisation festzulegen (z. B. kann der Vertrieb nichts gegen die Abdeckung tun)
  • Sie schränken ein, was die Mitarbeiter tun sollen, und bringen ihre kreativen Ideen nicht in die Organisation ein

Ich gebe Ihnen ein Beispiel. In der Organisation meines Freundes ist einer der wichtigsten KPIs die Anzahl der Fehler im System. Soweit ich mich erinnere, ist das Ziel, maximal 10 Fehler zu haben. Sie behalten diese Nummer, auch wenn es nicht notwendig ist. Ihr Kunde kann mit 20 oder 30 Fehlern leben, er möchte ein System mit schneller Reaktionszeit haben, aber die Entwickler verbringen Zeit mit der Fehlerbeseitigung und nicht damit, das System schneller zu machen. Es besteht die Möglichkeit, dass sie diesen Kunden deswegen verlieren. Wenn sie den KPI „ Anzahl der Kunden “ hätten, könnte jedes Team sein eigenes Ziel/Maßnahmen festlegen, um zu sehen, was zugunsten dieses KPI zu tun ist und den Kunden zu halten.

Großartig, das ist, wie ich sehe, ein innovativer Ansatz. (Zumindest für jemanden, der für interne Kunden arbeitet.) Gut, andere Herangehensweisen und Sichtweisen zu kennen. Ich würde auch gerne mehr über softwarebezogene KPIs erfahren. Irgendwelche anderen Vorschläge?

Es gibt mehrere KPIs, die wir als Qualitätsmodell bezeichnen, mit denen Sie die Qualität eines Softwareprodukts messen können. Ein Ansatz und ein guter Ausgangspunkt ist die Norm ISO 9126 , die empfiehlt, die interne Qualität, die externe Qualität und die Qualität bei der Verwendung Ihres Produkts zu messen und basierend auf den verschiedenen Metriken, die Sie sammeln können, die verschiedenen Aspekte der Qualität abzuleiten: Wartbarkeit, Funktionalität, Benutzerfreundlichkeit, Portabilität, Effizienz und Zuverlässigkeit Ihrer Software.

Es gibt kommerzielle und nichtkommerzielle Produkte, die Ihnen helfen können, die Aspekte zu berechnen, indem Sie beispielsweise die statische Codeanalyse und die Integration mit Testplattformen verwenden.

Einige der zugrunde liegenden Metriken umfassen den Grad der Einhaltung vordefinierter Programmierregeln und Best Practices, intrinsische Metriken wie zyklomatische Komplexität, Größenmetriken wie Codezeilen oder Funktionspunkte usw. Allein die zuvor erwähnte Anzahl von Benutzern und die Zeit zum Bereitstellen neuer Funktionen, I Denken Sie nicht daran, die tatsächliche Qualität Ihres Produkts zu messen. Sie können höchstens bei der Berechnung einiger Aspekte helfen, wie z. B. der Benutzerfreundlichkeit, aber die Sicht, die sie geben, ist sehr begrenzt. Sie brauchen eine ganzheitlichere Sicht und dafür brauchen Sie mehr Daten.

Ich möchte erwähnen, dass es sich auszahlt, die tatsächliche Qualität Ihres Produkts während des gesamten Entwicklungslebenszyklus zu messen. Sie haben weniger Mängel in der Produktion und Ihre Wartungszyklen werden kürzer. Dies ist bewiesen.

Fyi ISO 25010 ist der neueste Standard: iso.org/standard/35733.html

Für Fortschrittsberichte bin ich ein großer Fan von Earned Value. Dies ist die ehrlichste Methode zur Verfolgung von Zeitplan und Budget, erreicht jedoch möglicherweise nicht die gewünschte Qualitätsmetrik.

Abseits vom Earned Value versuche ich bei benutzerdefinierten und Unternehmenssystemen, vom Business Case auszugehen. Wenn das Geschäftsszenario „Sparen Sie 15 Minuten pro Benutzer und Tag“ lautet, dann verfolge ich, wie viel davon ich nachweislich abgeschlossen habe. „Wir haben 5 Minuten abgehakt, wir haben 1/3 des Business Case erreicht“ (Das mag nach Earned Value klingen, ist aber eigentlich anders)

Zwischen dem Business Case und dem Zeitplan liegen weitere Qualitätskennzahlen. Ich möchte gerne wissen, wo Fehler nach Release gefunden werden, sortiert nach Schweregrad. Finden die Endbenutzer sie? Bekommen wir sie im Systemtest? Gerätetest? Sind sie auf bestimmte Teile der Anwendung ausgerichtet? Die Metriken allein sind nicht perfekt, aber sie können Ihnen bei der Suche helfen.