Software macht dem Kunden Spaß, wenn seine Anforderungen erfüllt werden. Dafür ist er bereit, Geld auszugeben. Und was sind seine Anforderungen?
Für mich gibt es drei Säulen, auf denen zufriedenstellende Software ruht:
- Funktionalität
- Primäre Qualität
- Investitionssicherheit
Dass Software funktional ihren Dienst erfüllen muss, um zufrieden zu stellen, liegt auf der Hand. Eine Taschenrechner-Anwendung, die nicht korrekt rechnet, ist ihr Geld nicht wert.
Wenn der Taschenrechner aber nicht deutlich schneller rechnet als ein Mensch, dann ist etwas falsch. Ohne eine hohe primäre Qualität “Performance” ist er also sein Geld auch nicht wert. Er würde sogar nicht einmal geschrieben. Die primären Qualitäten sind mithin die hauptsächlichen Treiber der Softwareentwicklung.
Und schließlich wird niemand das Geld für die Entwicklung in die Hand nehmen, wenn nicht sichergestellt ist, dass die Nützlichkeit des Resultats lange bzw. lange genug erhalten bleibt. Investitionssicherheit ist gefragt. Die allerdings sieht für Software anders aus als für Hardware.
Das hatte ich schon ausführlich in einem früheren Blogartikel beschrieben. Doch jetzt ist mir klar geworden, wie diese Sichtweise auch sonst im Leben hilfreich ist. Neulich bin ich nämlich Bahn gefahren und ein mobil-Sonderheft der DB lag auf meinem Tisch, Thema: Nachhaltigkeit.
Dazu ist mir meine Bahncard eingefallen, die in diesem Jahr ebenfalls nachhaltig grün ausgefallen ist.
Farblich bewegt sich die Bahn also durchaus in eine positive Richtung. Mehr ökologisches Denken schadet ihr und uns allen sicherlich nicht.
Aber…
Mir stieß das Sonderheft auf, weil es eine aus meiner Sicht derzeit falsche Priorisierung darstellt. Es preist die Bemühungen der Bahn in Bezug auf die 3. Säule an, Investitionssicherheit. Die Bahn soll nicht nur heute funktionieren, sondern auch in Zukunft. Klar.
Weder Software noch die Bahn wird aber gemacht, um nachhaltig zu sein. Höhere Priorität müssen Funktionalität und primäre Qualitäten haben. Erst wenn es da stimmt, dann wird Nachhaltigkeit überhaupt relevant.
Im Hinblick auf Funktionalität und primäre Qualitäten stimmt es jedoch gerade nicht bei der Bahn. Züge, die nicht fahren, stellen grundsätzliche mangelnde Funktionalität dar. Züge, die grob unpünktlich sind, verletzen die primären Qualitäten Verlässlichkeit und Geschwindigkeit. Nicht funktionierende Türen und Toiletten, steckdosenfreie Waggons, fehlende Reservierungsanzeigen usw. verletzen sekundäre Qualitäten wie Bequemlichkeit oder gar Sicherheit.
Die beiden hauptsächlichen Säulen, auf denen die Bahn ruht – Funktionalität und Qualität – sind also morsch und bröckelig. Ihnen ist immer weniger zu trauen. Und da findet es die Bahn wichtig, in die dritte Säule zu investieren? Das ist bestenfalls naiv und schlimmstenfalls fahrlässig. Denn die Investition in diese Form der Nachhaltigkeit kann die Nachhaltigkeit in Bezug auf die Zwecke der Bahn untergraben.
Dasselbe kann natürlich auch Software passieren. Wo Funktionalität und Qualitäten im Argen liegen, sollte nicht mit Nachhaltigkeitsoffensiven “green washing” betrieben werden. Clean Code und ein Blick auf Wandelbarkeit oder Produktionseffizienz ist wichtig. Doch das ist kein Selbstzweck. Ein Ausbalancieren mit den Hauptzwecken der Software ist wichtig.
Die Bahn macht mich mit ihrem Fokus nicht zufrieden. Der liegt mindestens knapp neben dem, was ich von ihr zuallererst will. Genauso müssen wir aufpassen, in der Softwareentwicklung mit gut gemeinten Maßnahmen nicht das Wesentliche zu verfehlen.
2 Kommentare:
Ich finde die Anfoderung "Investitionssicherheit" oder "Nachhaltigkeit" illusorisch und nicht mehr umsetzbar in der heutigen Softwareentwicklung. Viel mehr sind es Lügen der Berater und Halbwissende!
Niemand kann mehr garantieren, dass die gerade "fertig" entwickelte Windows 8-App noch auf Windows 8.1 einwandfrei läuft. Genau das Gleiche gilt für Android, iOS und besonders für Web-Projekte.
Die Entwicklung der verschiedenen Plattformen schreitet so schnell voran, dass kaum ein Framework oder Projekt hinterher kommt. Programme, die länger als 3 Jahre ohne Anpassung und co laufen, sind leider die Ausnahme!
Ich glaube, du unterliegst einen Missverständnis. Vielleicht hast du meinen Artikel "Was der Softwarekunde will" nicht gelesen.
Investitionssicherheit bedeutet in der Softwareentwicklung nämlich gerade, dass Software sich dem Wandel ökonomisch anpassen kann.
"3 Jahre ohne Anpassung" ist eine Illusion. Aber nicht, weil sich Betriebssysteme oder Frameworks ändern, sondern weil der Kunde Veränderung will. Würde der sie nicht wollen, könnte man nach erstem Release Rechner und Software "einfrieren".
Nur genau das will eben keiner. Deshalb muss man sich Gedanken machen, welche Investitionssicherheit denn wirklich gebraucht wird. Das ist zuallererst eine Frage an den Kunden. Zur Beanwortung muss der allerdings aufgeklärt werden über das Machbare, das Unvermeidliche, das Unwägbare.
Kommentar veröffentlichen