0. Softwaretest - Warum mache ich mir die Mühe überhaupt?
Jeder halbwegs begabte Softwareentwickler weiß, dass er mit ein bißchen Kreativität, Nachdenken und Engagement durchaus hochwertige Software erstellen kann. Vielleicht hat dieser Entweckler einen Freund, der mitarbeitet, und schon hat man eine kleine Software erstellt, ein bißchen Aufmerksamkeit (im Internet) erzeugt und ein paar Euro verdient.
Was passiert aber, wenn eine Software nicht mehr einfach auf Zuruf entwickelt werden kann? Weil man komplexe Kundenbeziehungen berücksichtigen muss, Spezial-Know-How braucht oder das Projekt eine Größe von mehreren Mannjahren erreicht? Na, klar das geht nur in einem Team, viel Aufwand, Ressourcen, Zeit und Geld. Ja, klar, das kostet Geld. Insbesondere kosten Mitarbeiter Geld. Ein halbwegs funktionierender IBM kompatibler PC kostet heute nicht mehr als 2000 €, die passende Software dazu noch mal 5000 €. Der Arbeitspaltz (Stuhl, Tisch, Büro, Infrastruktur) ist auch nicht so tragisch. Alles in allem hat man Einmalkosten von nicht mehr als 10.000 €. Das ist in etwa das, was ein qualifizierter Mitarbeiter in zwei bis drei Monaten kostet. Und im nächsten Monat kostet er, und im nächsten, und im übernächsten auch.
Deshalb ist immens wichtig Lohnkosten so niedrig wie möglich zu halten, was zu den unschönen Entwicklungen führt, die wir alle in den letzten Jahren (und vermutlich auch in Zukunft) in der Wirtschaft beobachten. Nun, gut, man kommt nicht darum herum.
Nun schauen wir doch mal, was in den einzelnen Phasen einer Softwareentwicklung passiert, wenn ein Fehler entdeckt wird.
Codeerstellung / Coding
Der Entwickler findet, während er den Code schreibt, einen Fehler. In aller Regel kann er das Problem sofort lösen. Schlimmstenfalls muss er kurz Rücksprache mit der Projektleitung und / oder Kollegen halten.
Das Ändern der Codezeilen dürfte, natürlich je nach Art des Problems, in der Größenordnung von wenigen Minuten liegen.
Integration der Teilsysteme
Die Module und Teile einzelner Entwickler und / oder Teams werden zum Gesamtsystem zusammengestellt. Die Fehler, die in dieser Phase i.d.R. auftauchen beziehen sich auf das Zusammenspiel einzelner Teile (Schnittstellen, Kommunikation, Protokolle usw.)
Was passiert also, wenn ein Problem erkannt wird und eine Komponenten nicht zu den anderen passt: Die Komponenten muss geändert werden, vermutlich recht aufwendig. Das System kann (immer noch nicht) im Zusammenhang arbeiten. Wahrscheinlich müssen Diskussionen über Dokumente geführt werden (ist eigentlich alles richtig beschrieben?) und einige Änderungen vorgenommen werden.
Der Zeitaufwand ist schwer zu schätzen, aber ich tu’ es trotzdem: Klärung der Unstimmigkeiten, Überprüfung der Doku usw. ca. 0,5 Tage, Überarbeitung ca 0,5 Tage. Die Behebung des Problems liegt bei ca einem Tag.
Weil bisher kein nennenswerter Testprozess eingeführt ist und das System soweit ja arbeitet, kann man das Ganze ja mal beim Kunden installieren. Nur mal so im
Testbetrieb (beim Kunden).
Und es kommt, wie es kommen muss: der Kunde findet das seine Geschäftsvorgänge in der Software, zumindest an einer Stelle, nicht richtig abgebildet werden. Natürlich gibt es Gespräche, Abstimmungsbedarf (im besten Fall) oder gerne auch mal Schuldzuweisungen, Drohungen, Zahlungszurückhaltung. Den Schlamassel zu klären dürfte einige ‘Tage dauern.
Ich muss, glaub’ ich, nicht weiter schreiben. Was passiert wohl, wenn ein echtes Problem im Livebetrieb beim Kunden auftaucht. Regressvorderungen, Produktionsausfall, blablabla. Viel Spass, das wieder in den Griff zu bekommen!
Und was soll mir das jetzt sagen?
Tja, ein paar Dinge muss man sich mal vor Augen halten:
1) Ziel ist es nicht, eine fehlerfrei Software abzuliefern (das geht eh nicht. Wer mag kann die Gründe in der einschlägigen Literatur nachlesen), sondern zu wissen, wo man steht.
2) Wie man oben gesehen hat,muss mit sinnvollen QS - Maßnahmen aus wirtschaftlichen Gründen so früh wie möglich begonnen werden.
3) Von einem Problem beim Kunden überrascht zu werden grenzt an eine Katastrophe. Wichtig ist vorher zu klären wie hoch die Wahrscheinlichkeit ist, dass das eintritt und sich entsprechend betriebswirtschaftlich darauf vorzubereiten.
Also: sinnvolle QS - Maßnahmen, so früh wie möglich angesetzt, sparen Geld, vermeiden Chaos und Unstimmigkeiten und führen zu erweiterten, wichtigen Wissen über das eigene Produkt.
Natürlich habe ich nicht alles hier aufgeführt, was man an dieser Stelle schreiben könnte. Aber ich denke, der Kern ist klar geworden und bietet schon mal ein paar gute Argumente.
Noch Fragen?
