Die meisten Menschen glauben, dass Software wie jedes andere Produkt hergestellt wird:
Es gibt einen Startschuss für ein Projekt, darauf folgt eine Umsetzungsphase und am Ende steht die fertige App oder Dienstleistung. Die Entwicklung des Softwareprodukts erfordert Ressourcen in Form von Entwicklern, und wenn diese erst einmal für ihren Aufwand entschädigt werden, ist das erledigt.
Allerdings kann die Annahme, dass es sich bei unserem Softwareprojekt um eine einmalige Investition handelt, zu einem sehr kostspieligen Fehler führen.
Die meisten Unternehmen bauen Software wie ein Haus. Allerdings verhält sich Software nicht wie Dinge, die wir bauen können. Software ist eher wie etwas lebendiges. Genau deshalb vergleiche ich Software gerne mit Pflanzen.
Eine Pflanze muss regelmäßig gegossen, beschnitten und gelegentlich gegen Mehltau behandelt werden. Wenn man beispielsweise eine Pflanze zu einem Baum heranwachsen lässt, braucht man Zeit und kontinuierliche Anstrengungen, um sie am Leben zu erhalten.
Um Software am Leben zu halten, sind auch kontinuierliche Anstrengungen erforderlich.
Ein Grund dafür ist, dass sich unser Software-Ökosystem ständig weiterentwickelt. Nehmen wir zum Beispiel Open-Source-Bibliotheken:
Heutzutage basiert Software auf beliebten Open-Source-Bibliotheken und Frameworks. Das spart Zeit und Geld bei der Entwicklung (wir wollen das Rad nicht neu erfinden) und hält die Lizenzkosten niedrig (wenn nicht sogar null).
Während die Entwickler der Open-Source-Community diese Open-Source-Bibliotheken ständig verbessern und weiterentwickeln, identifizieren Sicherheitsexperten regelmäßig neue Sicherheitsprobleme. Und natürlich behebt die Open-Source-Community diese Probleme.
Wenn wir unsere Anwendung nicht kontinuierlich mit den neuen Bibliotheksversionen aktualisieren – wenn wir uns nicht um unsere Pflanze kümmern – werden wir bald einen geschwächten Baum mit brüchigen Ästen und einem hohlen Stamm haben, der still darauf wartet, zu zerfallen und unseren Benutzern, die in seinem Schatten ein Picknick machen, Schaden zuzufügen.
Um unsere Software auf dem neuesten Stand und sicher zu halten, müssen wir ein monatliches Budget für ein paar Stunden Wartung einplanen—ein „Budget für Parks und Erholung“, wenn wir bei der Pflanzenmetapher bleiben wollen.
Es ist ein entscheidender Schritt zu verstehen, dass sich Software ihrer Natur nach eher wie eine lebende Pflanze verhält, die kontinuierliche Pflege benötigt, und weniger wie ein Haus, das einige Jahre lang allein gelassen werden kann. Aber wir sollten uns nicht vorwerfen, dass wir es nicht besser wissen. Die meisten Softwareentwickler haben ebenfalls noch nie davon gehört. Und vielen Unternehmen, die kundenspezifische Software entwickeln, ist das einfach egal.
Oftmals werden Softwareprojekte als Einzelfälle behandelt. Der Fokus liegt auf Funktionen und Design. Aspekte, die die Wartungskosten senken, wie lesbarer Code oder Test- und Bereitstellungsautomatisierung, werden oft vernachlässigt.
Deshalb müssen wir, als Produktbesitzer darauf bestehen, dass unsere Entwickler eine wartbare Softwarelösung erstellen. Andernfalls werden Upgrades mit der Zeit immer teurer.
Wenn wir unsere Anwendung wie eine Pflanze verkümmern lassen, könnte eine Reparatur unmöglich (oder zumindest unrentabel) werden. Dann schreien alle nach einer Neuauflage der Software. Das ist der Zeitpunkt, an dem das Unternehmen sein Geschäft aufgibt.
Denke daran, die Wartungskosten im Budgetplan einzuplanen und Entwickler auszuwählen, denen es wichtig ist eine wartbare Softwarelösung zu entwickeln, die mit geringem Aufwand auf dem neuesten Stand gehalten werden kann.
Bis demnächst
David
P.S. Bist du mit dem aktuellen Stand deiner Software unzufrieden? Nimm Kontakt mit mir auf und lass uns herausfinden, wie ich dir helfen kann.