Qualität ist eine der vier wichtigsten Projektbeschränkungen , die von einem Projektmanager während des gesamten Projektlebenszyklus geplant und kontrolliert werden müssen. Um sie zu planen und zu steuern, muss der PM zunächst einmal verstehen, wie man sie misst.
Was sind mögliche und effektivste Methoden zur Qualitätsmessung in einem Softwareentwicklungsprojekt?
Abhängig von den Umständen können Sie verschiedene Techniken anwenden, um die Qualität eines Softwareprodukts zu bewerten:
Wenn Sie über Qualität in Bezug auf Korrektheit und Stabilität nach der Veröffentlichung sprechen, dann ist die Bug-Defect-Rate der einfachste Weg, sie zu messen. Das Problem mit dieser Metrik ist, dass sie nur funktioniert, nachdem Sie sie freigegeben haben. Es ist bereits zu spät.
Auch wenn es zu spät ist, schlage ich vor, dass dies immer noch die beste Maßnahme ist. Sie können zumindest Ihre Entwicklungspraktiken ändern, um sie für die nächste Version zu verbessern.
Das passiert bei der Projektentwicklung. Sie tun, was Sie in Bezug auf die Qualität für notwendig halten, versenden es, nehmen Ihre Klumpen und verbessern sich. Deshalb ist es wichtig, erfahrene Entwickler und Tester zu haben. Sie haben bereits ihre Klumpen genommen.
Einige Praktiken, auf die wir uns verlassen, um Qualität zu erreichen:
Viele dieser Praktiken sind als Korrekturmaßnahmen entstanden, nachdem wir gelernt haben, dass wir es besser machen können. Es ist ein iterativer Prozess. Wir ändern jede Version.
Wie oben beschrieben, ist Qualität eine sehr weit gefasste und subjektive Angelegenheit. Was mir zum Beispiel einfällt:
a) Erfüllung der Kundenbedürfnisse – Wenn Sie sich wohl fühlen, um mit Kunden zusammenzuarbeiten, können Sie dies messen, indem Sie ihm Ihr Produkt demonstrieren und ein hervorragendes Feedback zu diesem Qualitätsaspekt erhalten.
Viele Aspekte sind hier von Bedeutung, angefangen von der Robustheit des Produkts über die Implementierung der am meisten benötigten Funktionen bis hin zur Benutzerfreundlichkeit des Produkts und dem Arbeitskomfort für den Kunden. Alle Aspekte fließen mehr oder weniger in das Feedback ein.
Schwer vorstellbar, dass es Tools gibt, die diesen Qualitätsaspekt messen können :). Hier könnte ein agiler Ansatz mit kurzen Iterationen und häufigem Benutzerfeedback die Qualität (Zufriedenheit) erheblich verbessern.
b) niedriges Niveau an Fehlern – als einzelnes Maß, das Ihnen zeigt, wie gut Anforderungen in Code umgesetzt wurden. Dieser Wert kann gemessen werden und es gibt viele Tools, die Ihnen dabei helfen können. (JIRA, Bugzilla)
c) Codequalität – nicht direkt mit dem Grad der Fehler verbunden – sondern eher mit Schwierigkeiten bei späteren Modifikationen des Codes und der Produktpflege. Dies ist ein eher „fragiler“ Aspekt der Qualität und Sie benötigen definitiv ein Tool, um ihn zu messen:
Dieser Aspekt könnte auch als Technical Debt (http://en.wikipedia.org/wiki/Technical_debt) bezeichnet werden (eine Art Kompromiss, der aufgrund der Codequalität eingegangen wurde, um beispielsweise Fristen einhalten zu können)
d) Weitere Aspekte können Skalierbarkeit, Leistung und Hochverfügbarkeit sein. Es gibt auch einige allgemeine und auch sehr spezielle Tools, mit denen solche Aspekte von Produkten gemessen werden können. Lassen Sie mich nur erwähnen:
Je nach Ihrer Definition ist Qualität sehr subjektiv und daher schwer zu messen. Während das Projekt entwickelt wird, wird es schwierig sein zu messen, „wie gut das Produkt die Bedürfnisse der Verbraucher erfüllt“.
Eines der traditionellen Qualitätsmaße ist die Fehlererkennungsrate. Dies ist relativ einfach zu messen und etwas weniger subjektiv. Es wird angenommen, dass ein relativ fester Prozentsatz von Fehlern unentdeckt bleibt. Projekte mit einer hohen Rate an erkannten Fehlern haben wahrscheinlich eine hohe Rate an unentdeckten Fehlern. Die Rate der Fehlererkennung hängt von den verwendeten Techniken und den Fähigkeiten Ihrer Tester ab.
Es gibt eine Vielzahl von Bug-Tracking-Tools, die verwendet werden können. Die meisten ermöglichen es Ihnen, die Anzahl der Fehler im Laufe der Zeit zu verfolgen. Das Streben nach null Fehlern zu jeder Zeit kann die Gesamtqualität verbessern. Eine Methode dafür ist „Fix bugs first“. Dies kann mehrere Vorteile haben, einschließlich der Senkung der Gesamtfehlerrate.
Sie können Fehler nach Quelle kategorisieren: Spezifikation, Code und Test. Erwarten Sie relativ gleiche Zählungen für jede Kategorie. Das Verfolgen der Injektions- und Erkennungsphasen kann dabei helfen abzuschätzen, wie viele Fehler verbleiben werden. Es kann auch nützlich sein, die verwendete Testmethodik zu verfolgen.
Usability kann als Teil der Produktqualität betrachtet werden. Leider kontaminiert das Testen die Tester, sodass Sie möglicherweise eine Quelle für neue Tester benötigen.
Die Qualität von Softwareprodukten kann anhand von Metriken gemessen werden, http://www.cs.toronto.edu/~yijun/ece450h/handouts/tools
Qualität ist ein Maß dafür, wie gut ein Produkt seinen Verbrauchern dient.
Wenn der Verbraucher eine Maschine ist, dann ist die Qualität wahrscheinlich sehr quantifizierbar und messbar. Aspekte wie Nutzungsdauer, zertifizierte korrekte Antworten auf erwartete Fragen, Fehlen von Fehlern, Timing usw. sind in vielen Fällen relativ einfach zu messen, wenn auch im Allgemeinen schwer zu garantieren (aber das ist Technik).
Wenn der Verbraucher ein Mensch oder ein menschliches Unternehmen ist, beginnt die Qualität lange vor der Produktentwicklung und wird in den Piratenmetriken ( AAARR ) gemessen und kann durch eine Reihe von Experimenten am Arbeitssystem gemessen werden, z. B. durch die Registrierung der Verwendung von Funktionen, Kundenbewertungen, Überwachung sozialer Netzwerke, Usability-Studien, Alpha-Testzyklen, A/B-Tests von Funktionen usw.
Der Entwicklungsprozess kann ebenfalls gemessen werden, um zu sehen, wie gut er seinen Teilnehmern dient, z. B. mit pünktlicher Lieferung, nachhaltigem Tempo, nicht turbulentem Produktfluss, Innovation, Einfachheit, Komponentenfehlerprüfung, Produktfunktionsprüfung und Produktivitätstrends im Laufe der Zeit . All dies ist schwer genug, aber es gibt eine Menge Forschung.
Reden wir von Softwareprojekten? Es wurden Bände geschrieben und viele Produkte zum Testen der Qualität von Software (Komplexität, Duplizierung, Speicherverbrauch, Fehlerdichte, Abwanderung und so weiter).
Was sind mögliche und effektivste Methoden zur Qualitätsmessung in einem Softwareentwicklungsprojekt?
Die effektivste Methode zur Messung der Softwarequalität ist das Feedback der Benutzer.
Wir sind ein kleines Softwareentwicklungshaus, das für unsere Qualität bekannt ist (es sei darauf hingewiesen, dass wir es bewusst vermeiden, Fristen zu schätzen, um die Arbeit richtig zu erledigen – egal, wie lange es dauert).
Wir verwenden für jedes Projekt den folgenden Schritt-für-Schritt-Prozess:
Denken Sie daran, dass wir kundenspezifische Software für verschiedene Kunden entwickeln. Wenn Sie andererseits ein Standardpaket entwickeln, müssen Sie die Software intern behalten, bis sie fertig ist, aber ich bin sicher, dass Sie eine ähnliche Strategie wie die oben aufgeführte anwenden können ein solides Team von Beta-Testern.
Wenn Sie dann Metriken verwenden möchten, um Ihre Fähigkeit zur Erfüllung der oben genannten Philosophie zu analysieren, führen Sie die folgende Benutzerumfrage durch:
Nebenbei bemerkt, wir kümmern uns nicht um Metriken / Analysetools, die die Codequalität messen, da dies keinen Mehrwert für unseren Betrieb bringt. Aber das ist leicht zu sagen, wenn Sie so klein sind wie wir, also denke ich, dass es von der Größe Ihres Unternehmens abhängt.
Viel Glück.
Marcie
Erich Willeke
Jeach