Unsere Ideen für Ihr Projekt

Software-Qualität: Ein Kostenkiller!

Unternehmen geben Tausende oder gar Millionen von Euro für Unternehmensberatungen aus mit dem einzigen Ziel, die Kosten für die Softwareentwicklung zu senken. Software ist ein teures Gut und nicht selten ein Unverstandenes dazu. Was zum großen Teil natürlich an der Komplexität liegt, aber auch an der extremen Wandlungsfähigkeit unserer IT-Welt.

Nicht selten kommen solche Unternehmensberatungen dann zum Schluss, dass die Initialkosten von Softwareprojekten nicht das Zünglein an der Waage sind, sondern die laufenden Kosten - die Wartungskosten: Software ist ein kurzlebiger und unglaublich lebendiger Markt. Beherrscht wird er (unter anderem) von Trends in Sachen Bedienkomfort, Darstellung und nicht zuletzt Sicherheitsaspekten. Immer müssen neue Geräte, Workflows und Use-Cases bedient werden. Laufende Systeme müssen sich Änderungen im Unternehmensumfeld angleichen.

In einer idealen Welt

In einer idealen Welt würde ein System einfach um eine Neuentwicklung erweitert werden. Kosten entstehen dann nur für die neu entwickelte Softwarekomponente, die sich perfekt an das bisherige System schmiegt, als sei sie schon immer dort gewesen. Nun sind wir aber nicht in einer idealen Welt. Dort müssen sich Systeme mit ihren Benutzern und deren Bedarf weiterentwickeln. Hier sind seit Jahren insbesondere sicherheitsrelevante Themen sehr stark im Fokus, aber auch Erweiterbarkeit, Bedienbarkeit und Optik. Insbesondere wenn es sich um Systeme handelt, die im Internet zu finden sind. Besonders Internet-orientierte Software sieht sich den starken technologischen Fluktuationen ausgesetzt.

Und das geht natürlich nicht ohne Aufwand. Aber Aufwände verursachen Kosten. Kosten verursacht durch Entwicklergehälter, für Fehlerbehebungen, notgedrungene Systemanpassungen, Nichtverfügbarkeit von Systemen, Schnellkauf leistungsfähigerer Hardware... Die Liste ist lang. Die Kosten sind zum Teil unverhältnismäßig hoch, wie zahlreiche Artikel und Studien zum Thema "Kostenfaktor schlechte Software-Qualität" belegen. Und das mit steigender Tendenz.
Ging man 2004 noch von einem Volumen von einigen hunderttausend Euro bei drei Vierteln der europäischen Unternehmen aus, bewegen sich die Kosten nach aktuellen Analysen schon im zweistelligen Millionenbereich. Ich überlasse dem Leser die Mathematik für die Hochrechnung der nächsten 10-15 Jahren - was in etwa den Standardlaufzeiten maßgeschneiderter Software entspricht.

Kosten steigen

Wie in dieser Grafik wunderbar zu sehen, steigen die Kosten für die Behebung von Fehlern mit dem Fortschreiten des Projekts und der eingesetzten Technik. Während Fehler bei der Implementierung noch sehr günstig und schnell zu beheben sind, werden sie mit zunehmendem Projektfortschritt immer teurer in der Behebung. Dies liegt vor allem daran, dass Funktionen mit anderen korrelieren und dann Änderungen bei allen beteiligten Komponenten nach sich ziehen. Weitere Faktoren für steigenden Kosten können Nachbeauftragungen oder schwierigere oder gar unmögliche Reproduktion von Fehlern sein, da sie unter Entwicklungsbedingungen nicht nachvollzogen werden können.

Die alles entscheidende Frage lautet also: Wie bekommen wir diese Kosten in den Griff? Die Antwort ist so simpel wie genial: mit Qualität.

Fehlervermeidung durch bessere Qualität

Quelle:
Abenteuer Softwarequalität
Grundlagen und Verfahren für Qualitätssicherung und Qualitätsmanagement
ISBN 978-3-89864-784-7
mit freundlicher Genehmigung des dpunkt.verlags

Software-Qualität ist in den vergangenen 5-6 Jahren ein Thema, dass die IT-Branche voll erfasst hat und welches zahlreiche Artikel, Software-Projekte, Workshops und sogar ganze Messen hervorgebracht hat. Doch trotz der Sichtbarkeit schrecken viele Unternehmen davor zurück, wirklich in Software-Qualität zu investieren oder es fehlt schlicht das Know-How um diese merklich anzuheben. Doch es lohnt sich.

Der sogenannte "Sweetspot" für Qualität steckt, wie in der Grafik oben angedeutet, genau an dem Punkt, an dem die Kosten der Fehlerverhütung gerade noch so denen der Fehlerkosten unterliegen. Dieser will erreicht werden und dazu greifen Firmen wie Apple, Microsoft und Co. auf einige etablierte Methoden zurück, welche zum Ziel haben die Qualität bei minimalem Mehraufwand zu erhöhen. Prävention ist die Devise. Viele dieser Methoden sind bestens bekannt in der IT-Industrie, andere weniger. Die herausragendsten sind jedoch:

Dies ist nur eine kleine Auswahl gängiger Praktiken, um eine bessere Qualität für Software zu gewährleisten. Tatsächlich gibt es einen regelrechten Markt dafür, der selbst Experten manchmal an ihre Grenzen bringt.

Fehler eindämmen

Ziel all dieser Maßnahmen ist Fehler, die sich bei der Entwicklung ergeben, auszuschließen oder zumindest einzudämmen. Sie sollen außerdem sicherstellen, dass man im Fall geänderter Umgebungsbedingungen wie z.B. bei einem Server-Umzug mit leicht geänderter Konfiguration gegenüber seinem Vorgänger, sofort über Probleme informiert wird und reagieren kann. Eine weitere Synergie davon ist, dass der Entwickler ganz genau weiß, was von seiner Funktionalität erwartet wird und Rückfragen und nachgelagerte Arbeiten am Projekt unwahrscheinlicher oder sogar unnötig werden.

Und auch spätere Erweiterungen des Systems können von diesen Maßnahmen profitieren. Code von hoher Qualität ist durch die verbesserte Lesbarkeit und geringere Komplexität für den Entwickler einfacher (und somit schneller) zu ergänzen. Doch nicht nur Erweiterungen, sondern auch Anpassungen und Fehlerbehebungen werden deutlich beschleunigt.

Teams verändern sich mit der Zeit und so ist es doppelt wichtig, dass Software-Code gut lesbar und möglichst wenig komplex bleibt, so dass ein projektfremdes Teammitglied schnell und ohne Hindernisse sich der Entwicklung widmen kann.

Hohe Software-Qualität beinhaltet außerdem, dass mit Blick auf die Zukunft gearbeitet wird. So wird, wann immer es möglich ist, vom Gebrauch von potenziell veralteten oder sogenannten "deprecated" Funktionen Abstand genommen. Updates werden so weitaus weniger komplex, da der Bedarf von Anpassungen nur aufgrund einer neuen Version der Laufzeitumgebung geringer wird. Bei vielen großen namhaften Projekten war dies ein Stolperstein, der die Weiterentwicklung manchmal um Monate, wenn nicht Jahre, zurückgeworfen hat.

Gute Dokumentation

Guter Code dokumentiert sich selbst, so heißt es. Trotzdem ist gute Dokumentation im Code Pflicht für Software von hoher Qualität, man weiß schließlich nie, wann projektfremde Entwickler die Pflege oder die Weiterentwicklung übernehmen oder ob kundeneigene Entwickler am Projekt weiterarbeiten. Grundsätzlich gilt: Je höher die Komplexität des Themas oder je mehr Abstimmung zwischen Schnittstellen erreicht werden soll, desto intensiver sollte dokumentiert werden.

Meine persönliche Empfehlung lautet daher: Investieren Sie in Software-Qualität und Sie investieren in die Zukunft - und in die Ihres Geldbeutels. Fehler, Sicherheitslecks und Kompatibilitätsprobleme sind dann am günstigsten für Sie, wenn sie erst gar nicht in Erscheinung treten.

Natürlich setzen auch wir konsequent immer mehr und mehr die erwähnten Methoden ein, um auch Ihnen die Vorzüge von Software nach modernsten Standards und bester Qualität zu liefern. Bei verschiedenen Projekten kommen bereits seit Jahren Selenium Testcases oder Tools wie JSLint, vollautomatisch ausgeführt vom Jenkins-Deployment-Server, zum Einsatz. Und immer richten wir unseren Blick nach vorne, ob es nicht doch ein Tool oder eine Technik gibt, die uns dabei hilft, Ihr Projekt noch hochwertiger, noch schneller, noch schöner, noch günstiger, noch effizienter zu machen.

Dabei verlassen wir uns selbstverständlich nicht nur auf die direkten Einflussnehmer wie Code-Qualität und dergleichen. Gründliches Requirements-Engineering im Vorfeld hat einen ebenso hohen Stellenwert. Schließlich möchten wir das bestmögliche Verständnis von Ihren Wünschen erhalten (Denken Sie an die Grafik mit den Fehlerbehebungskosten). Und eine unbürokratische und zeitnahe Kommunikation vor und während des Projekts macht es uns möglich, kosteneffizient und qualitativ hochwertig Ihr Projekt in die digitale Welt zu überführen.

Für Ihre Probleme schaffen wir die Lösungen und zwar mit bester Qualität.

Falls mein Artikel Ihnen Appetit auf mehr zum Thema Software-Qualität gemacht hat, empfehle Ich Ihnen wärmstens den folgenden Artikel, der das Ganze noch etwas weiterführt und unter anderem auch auf die Messbarkeit von Software-Qualität hinweist.