Gute Softwarequalität erfordert entsprechende qualitätssichernde Maßnahmen. Das beginnt bei realistischer Projektplanung (Vermeiden des Unterschätzens von Aufwand und Arbeitsumfang), geht über ordentliche und gut dokumentierte Spezifikationen und hört beim Testen noch lange nicht auf. Doch gerade in vielen mittelständisch geprägten „Software-Manufakturen“ weisen die Entwicklungsprozesse noch viel Potential zur Anhebung des Qualitätsniveaus der Softwareprodukte auf. Diplomatisch ausgedrückt.
So ist es immer noch eher der Regelfall als die Ausnahme, dass ein kleines, personell unterbesetztes Entwicklerteam (teilweise freie Mitarbeiter) seinen eigenen Code testet und reviewt. Dabei sollten Entwickeln und Testen unabhängig voneinander nach dem Vier-Augenprinzip ablaufen. Kein Entwickler sollte seine eigene Arbeit prüfen oder testen. Die Gefahr unbewusster blinder Flecken ist psychologisch einfach zu präsent. Von anderen Mängeln aufgrund unsystematischer Vorgehensweise mal abgesehen.
Doch das führt in der Praxis rasch zu der Frage wer das alles testen soll? Man hat schlicht zu knapp kalkuliert oder will mit zu wenig zu viel erreichen. Eine weit verbreitete Problematik, die nicht nur in der Softwareentwicklung anzutreffen ist. Die Auslastung der Entwickler ist so kalkuliert, das sie entweder gar nichts oder doch ihre eigene Arbeit testen. Allenfalls in Ausnahmefällen oder bei offensichtlich aus dem Ruder laufenden Problemen wird auf Freelancer oder externe Testing-Dienstleister zurückgegriffen.
Aber auch Versuche die Qualität des Entwicklungsprozesses als solchen anzuheben, indem Coding-Styles vereinbart werden, bestimmte Dokumentationsnormen oder ein systematisches Spezifizieren und Reviews gefordert werden, trifft bei eher „handwerklich-künstlerisch“ orientierten Entwicklern oft auf hartnäckigen passiven Widerstand. Das fordert weniger Ressourcen als vielmehr die Fähigkeit zur Mitarbeiterführung der Projektverantwortlichen.
Währenddessen steigen die Anforderungen an die Softwarequalität langsam aber kontinuierlich. Insbesondere technischer Fortschritt, organisatorische Veränderungen in Kundenbranchen, Compliance- und Safety-Anforderungen sind da prägende Einflussfaktoren. Ebenso die Forderung komplexe Produkte, bestehend aus Hardware- und Softwarekomponenten (Systems oft systems) sauber getestet und reviewt in definierter Qualität termin- und budgetgerecht entwickeln zu können.
Insbesondere stark vertriebsgesteuerte Mittelständler leiden da unter zunehmenden Marktdruck. Professionalisierung wird von ihnen ebenso gefordert wie Standardisierung und Ausrichtung ihrer internen Abläufe an marktüblichen Branchenstandards. Selbst wenn sie wollten, können diese Unternehmen ihren Entwicklungsprozess oftmals nicht durch eigentlich notwendige Phasen verlängern. Auch wenn sie dadurch qualitativ eindeutig bessere Ware liefern könnten und selbst wenn dadurch das notorische Unterschätzen von Aufwand und Arbeitsumfang eingedämmt werden könnte. Denn nicht alles was vom Markt gefordert wird, bezahlt er auch. Oft müsse daher Konzessionen gemacht werden, deren finanzielle Auswirkungen man dann dort wieder zu korrigieren versucht, wo es der Kunde so schnell nicht bemerkt. Manches später (oder gar nicht) gepatchte Sicherheitsleck und so manche Unausgegorenheit in Softwareprodukten erblickte so das Licht der Welt. An Softwarefehlern hängen aber dennoch Reputation und in barer Münze berechenbare Folgekosten.
Wo es Mittelständlern demnach an Ressourcen und Prozessreife mangelt, kämpfen die großen Unternehmen mit anderen Problemen. Bei ihnen sind es die Instabilität ihrer eigenen Organisation (häufige Umstrukturierungen, oftmals rein zu Profilierungszwecken neuer Vorstände) oder deren Gegenteil in Form starrer bürokratischer Vorgaben, die dazu führen können, dass das Qualitätsmanagement ein kaum beachtetes oder gar ignoriertes Eigenleben neben den produzierenden Kollegen in der Softwareentwicklung führt.
Auf Berater und Experten im Bereich Softwarequalität kommt daher eine Doppelaufgabe zu:
Zum einen Kunden und einkaufende Betriebe davon zu überzeugen, dass der Anspruch an immer mehr und besserer Software unausweichlich mit umfangreicheren Testprozeduren und anderen qualitätssichernden Maßnahmen einhergeht.
Zum anderen werden sich Entscheider in den Unternehmen Gedanken machen müssen, wie sie die Anforderung von besserem und effektiverem Testen mit schmaler werdenden Budgets vereinbaren können.