Folgender Tweet zum Thema “Qualitätssicherung in der Programmierung” hat mir ein Lächeln auf die Lippen gezaubert.
Ich schlage ein Softwarequalitätssiegel mit folgenden Abstufungen vor:
0 – "Von Entwicklern aus Großraumhaltung."1 – "Von glücklichen Entwicklern in Gruppenhaltung."
2 – "Von sehr glücklichen Entwicklern in Kleingruppenhaltung."
3 – "Aus dem Homeoffice gesendet."
— Grauhut "Same name in the sky" (@grauhut) January 16, 2018
Wer sich mehr dafür interessiert, dem sei die alte Norm ISO 9126 empfohlen. Diese stellt eines von mehreren Modellen dar, um Softwarequalität sicherzustellen. Diese Norm ist in der Norm ISO 25000 aufgegangen. Das erste Unternehmen, in welchem Software Qualität eine grosse Bedeutung hat, ist die NASA. Wen das mehr interessiert, dem sei die Seite der Software Assurance empfohlen. Die NASA ist auch das einzige Unternehmen, welches Complier Recommendations gibt.
Übrigens definiert sich Software Qualität wie folgt: “Unter Softwarequalität versteht man die Gesamtheit der Merkmale und Werte eines Softwareprodukts, die sich auf dessen Eignung beziehen, festgelegte oder vorausgesetzte Erfordernisse zu erfüllen“ (Ist/Soll).
Darüber, welche Organisationen welche Systeme liefern, steht hier mehr. Und mein ganz persönlicher Liebling zum Thema Softwarequalität wird wohl immer der folgende sein:
Eine Software soll Einträge an eine Datenbank übergeben. Der Schlüssel enthält Jahr, Monat, Tag, Stunde, Minute, Sekunde. Die Software kann erfolgreich 60 Einträge schreiben, danach werden 40 nicht geschrieben, dann gehen 60 wieder. Was ist die Ursache?
Ein Programmierer hat sich entschieden, das Arbeiten mit der Zeit selber zu lösen und dabei folgenden Code zu produzieren:
sec = -1 While not EOF Read Record (Jahr, Monat, Tag, Stunde, Minute) sec = sec + 1 Write Record (Jahr, Monat, Tag, Stunde, Minute, right(sec,2)) if length((sec) > 2) sec = 0 // Should never happen Minute = Minute + 1 end if Wend
Das Problem hier ist, dass eine Minute jetzt eigentlich 100 Sekunden hat. Und die Datenbank die aus ihrer Sicht doppelten Einträge gar nicht erst aufnimmt. Was zur Folge hat, dass man eine gewisse Zeit suchen muss, bis einem klar wird, was kaputt ist.
Als Begründung hat der Programmierer angegeben, es hätte ja niemand explizit definiert, dass eine Minute genau 60 Sekunden hätte. Seit dann entscheide ich mich regelmässig Schwerkraft auch auszuprobieren, man weiss ja nie.