Eric Sink schrieb einen interessanten Artikel über Bugs in ausgelieferter Software.
Seine These lautet, dass Softwareentwickler bzw. -firmen auch Programme
dann ausliefern sollten, wenn sie bekannte Bugs enthalten.
Er begründet das so:
- Man weiß genau, welche Bugs akzeptabel sind und welche nicht
- Besser ein Produkt veröffentlichen, dessen Qualitätslevel bekannt ist, als ein Produkt, das "vermeintlich" fehlerfrei ist
- Das Risiko neue und schlimmere Fehler einzubauen beim Versuch einen bekannten Fehler zu entfernen ist könnte zu groß sein
Wie entscheidet man, ob ein Fehler entfernt werden soll oder nicht?
Sink entscheidet das mit Hilfe von vier Fragen:
- Wie groß sind die Auswirkungen wenn der Fehler auftritt? (Schweregrad)
- Wie oft tritt der Fehler auf? (Häufigkeit)
- Wie groß ist der Aufwand, den Fehler zu beseitigen? (Kosten)
- Wie riskant ist es, den Fehler zu beheben? (Risiko)
Die Antworten der ersten beiden Fragen lassen sich in ein Diagramm
eintragen. Damit kann man visuell entscheiden, ob ein Fehler es wert
ist, behoben zu werden:

Der
rote Punkt markiert einen Fehler, der behoben werden sollte, da dieser
kritische Fehler häufig auftritt. Den Fehler, der durch den grünen
Punkt repräsentiert wird kann man vorerst getrost in Ruhe lassen, da er
kaum von Bedeutung ist.
Die ersten beiden Fragen geben eine Vorentscheidung darüber, ob der
Fehler behoben werden soll oder nicht. Ist die Antwort "Ja", so dienen
die beiden anderen Fragen dazu, diese Entscheidung nochmal zu
überdenken. Immerhin könnten die Kosten, den Fehler zu beseitigen den
Nutzen übersteigen könnten. Und das Risiko neue Fehler einzuführen
könnte zu hoch sein.
Sink hebt aber noch hervor, dass die Antworten auf die vier Fragen
immer im Kontext des Marktsegments zu finden sein sollten. Die
Qualitätserwartungen können sich teilweise deutlich unterscheiden. Er
sagt weiter, dass zwar niemand kaputte Produkte haben will, aber jeder
sollte auch wissen, dass es keine fehlerfreie Software gibt.
Sink nennt noch einen weiteren Grund dafür, bewusst Software mit
Fehlern auszuliefern. Wenn man die Auslieferung herauszögert, weil man
jeden bekannten Bug entfernen möchte, ist man auf dem Markt
benachteiligt. Man sollte lieber ein Produkt ausliefern, das ein
akzeptables Qualitätslevel (auch mit Fehlern) besitzt, als ein Produkt
deutlich verspätet auszuliefern, dessen Qualität höher als für den
Markt überhaupt nötig ist.