Softwarequalität ist in der Webentwicklung ein Dauerthema. Leider. Denn in vielen Projekten wird hierbei nach wie vor am falschen Ende gespart. Ein Beitrag über die Folgen – und mögliche Auswege aus dem Dilemma.
Durch fehlerhafte oder schlecht bedienbare Software geht viel Zeit und Geld verloren. Laut einer Umfrage des österreichischen Softwareunternehmens Compuware Austria ist schlechte Softwarequalität dafür verantwortlich, dass fast drei Viertel der europäischen Unternehmen zusätzliche Kosten von bis zu 500.000 Euro im Jahr beklagen müssen. Demzufolge ist Softwarequalität ein Thema, das nicht nur Entwickler betrifft. Auch Manager, Projektleiter und Auftraggeber sollten über solide Grundkenntnisse verfügen, um auf diese Weise einen Beitrag zu guter Softwarequalität zu liefern.
Was ist Softwarequalität? Und warum ist sie so wichtig?
Unter Softwarequalität wird die Eignung eines Softwareproduktes verstanden, also ob das Produkt die festgelegten oder die vorausgesetzten Anforderungen erfüllt. Dies ist nicht nur für den Endverbraucher wichtig, sondern auch für die Entwickler selbst. Vor allem dann, wenn mehrere Programmierer gemeinsam an einer Software arbeiten oder wenn diese über einen längeren Zeitraum entwickelt wird. Eine definierte Softwarequalität spart Kosten und steigert die Zuverlässigkeit. Vor allem aber können Entwicklungsprozesse so effizienter gestaltet werden.
Zu den gängigsten Qualitätskriterien gehören:
- Korrektheit: Das Programm sollte natürlich die gewünschten Funktionalitäten liefern, zum Beispiel die benötigte Genauigkeit von berechneten Werten.
- Lesbarkeit: Der Programmcode sollte lesbar und verständlich sein.
- Wiederverwendbarkeit: Eigene Klassen sollten so geschrieben werden, dass sie für die gleichen Aufgaben wiederverwendet werden können.
- Effizienz: Programme sollten klein und schnell sein.
Für das Erreichen dieser Qualitätskriterien haben sich bestimmte Namenskonventionen etabliert. Dazu gehören Methodennamen (das sind Verben, die immer mit einem kleinen Buchstaben beginnen) und Konstantennamen (die aus Großbuchstaben und Unterstrich bestehen). Durch das Einhalten dieser Konventionen werden das Software-Verstehen und die Zusammenarbeit mehrerer Entwickler erleichtert. Weitere Merkmale der Softwarequalität sind spezielle Funktionen wie beispielsweise der Zugriffsschutz und das defensive Programmieren.
„Ein gutes Programm hat ein sauberes Layout, verwendet sinnvolle Namen, ist ausführlich kommentiert und verwendet Konstrukte der Sprache derart, dass maximale Robustheit und Lesbarkeit des Programms erreicht werden. Die Erstellung eines solchen Programms erfordert vom Programmierer Sorgfalt, Disziplin und ein gutes Stück handwerklichen Stolz.“ (Ian Sommerville, „Software Engineering“, Addison-Wesley 1987)
Um das leisten zu können, beginnt die Qualitätssicherung im besten Fall schon während der eigentlichen Projektentwicklung. Eine enge Zusammenarbeit zwischen Kunden, Projektleitern und Entwicklern ist somit unerlässlich.
Kosten und Nutzen von Softwarequalität
Wo Software ist, da sind auch Software-Fehler. Diese kosten Geld und können für die Betreiber schnell zum Wettbewerbsnachteil werden. Zum Beispiel musste Toyota 2014 fast zwei Millionen Prius-Fahrzeuge wegen eines Software-Fehlers zurückrufen. Oder die Software-Panne der Deutschen Bank, die vor kurzem dafür sorgte, dass etliche Kunden nicht an ihr Geld kamen. Eine schlechte Software-Qualität sollte deshalb unbedingt vermieden werden. Ein gutes Qualitätsmanagement (QM) kann dabei helfen.
Allerdings ist die Einführung eines QM-Systems im Entwicklungsprozess ebenfalls mit Kosten verbunden, die nicht zu unterschätzen sind. Bedenkt man jedoch die Konsequenzen, die aufgrund von fehlerhafter Software entstehen können, sollte bei der Qualitätssicherung nicht gespart werden.
Ein Teil der Kosten kann eingespart werden, wenn bereits in der Projektphase Tests durchgeführt werden. Dazu kann der jeweilige Entwickler automatisierte Programme verwenden, die eigene Use Cases für bestimmte Szenarien testen. Für solche Tests fallen natürlich wiederum Kosten an – so teilt sich das Projektbudget schnell zu annährend gleichen Teilen auf Entwicklungs- und Testkosten auf.
Eine Alternative wäre der Verzicht auf umfangreiche Tests während der Projektphase und stattdessen die Durchführung einer Qualitätskontrolle (QA) zum Abschluss des Projektes. In diesem Fall beträgt das Verhältnis zwischen Entwicklungsbudget und Testbudget 9:1. Allerdings fallen gegebenenfalls im Nachhinein noch Kosten für Anpassungen an.
Unser Fazit
Egal ob Qualitätssicherung durch Testprogramme während der Entwicklungsphase oder Qualitätskontrolle des abgeschlossenen Produkts – in jedem Fall ist eine hohe Softwarequalität mit entsprechenden Kosten verbunden. Diese sind aber nicht zu vergleichen mit dem Preis, der für eine schlecht entwickelte Software gezahlt werden muss: unzufriedene Kunden und Entwickler, eine erschwerte anschließende Pflege des Projekts sowie im schlimmsten Falle sogar der Ausfall der Software. Ist der Code dann nicht nach den oben beschriebenen Qualitätsstandards verfasst, ist eine schnelle Lösung von Problemen oft unmöglich.
Natürlich stehen Entscheider und Entwickler heute mehr denn je unter enormem Zeit- und Kostendruck. Fallen Entscheidungen dadurch aber zu Ungunsten der Softwarequalität aus, kostet das die Unternehmen oft weit mehr. Somit lautet unser Fazit: Eine gewisse Qualitätssicherung sollte in jedem Fall mit eingeplant werden.
Welche Maßnahmen zur Erhöhung und Sicherung der Softwarequalität hälst du für sinnvoll, und welche Priorität hat dies in deinem Unternehmen? Wir freuen uns auf deinen Kommentar!
2 Kommentare
[…] nicht vorgelebt bekommen. Das ist nicht gut für die PHP Szene und ihren Stellenwert Gerade für Software-Qualität muß man aber offen für sein und sie als Lebenseinstellung nehmen. Das bedeutet im wesentlichen […]
[…] müsse halt fertig und nicht schön werden. Das ist eine grundsätzlich falsche Einstellung. Zitat: Es dauert nicht länger sauberen Code zu schreiben, aber viel länger mit schlechtem zu Leben Wichtig ist es Code Reviews früh und regelmäßig […]