Nachhaltige Softwareentwicklung

Nachhaltige Softwareentwicklung

Kennen Sie folgende Projektentwicklung:

Sie beauftragen ein Projekt. Die Umsetzung erfolgt zuerst recht zügig. Doch dann je mehr Zeit vergeht, desto länger dauert die Umsetzung neuer Anforderungen. Und wenn es richtig schlecht läuft ist die Entwicklung irgendwann so festgefahren, dass die Entwickler empfehlen die Software neu zu schreiben.

Das ist keine Ausnahmesituation, sondern der traurige Verlauf der meisten Projekte.

Die Ursachen sind meistens immer dieselben:

  • Es wird eine brandneue Technologie gewählt, die, weil sie brandneu ist vielen volatilen Änderungen unterliegt. Das hat zur Folge, dass das Projekt immer wieder vor der Situation steht, an die Änderungen angepasst zu werden. Nicht selten bedeutet das viele Fehler, Frustration und ein immer fragiler werdendes Entwicklungsprodukt.
  • Es fehlt das Bewusstsein, dass ein Entwickler in der Zukunft die Software noch verstehen muss. Wenn ich in Unternehmen gehe bin ich geradezu schockiert davon, wie wenig Entwickler in der Lage sind, einen Quelltext zu schreiben, der von anderen Entwicklern leicht verstanden werden kann. Das ist für mich deshalb so unverständlich, weil es mittlerweile viele einfach anwendbare Regeln gibt, die einen enormen Unterschied machen.

    Eine Ursache ist sicherlich, dass einerseits in der IT die Mehrheit der Entwickler immer Junior Entwickler bleiben (da sich die Anzahl der Softwareentwickler alle 4 Jahre verdoppelt).

    Zum anderen versäumen Universitäten, dieses Thema zu lehren.

    Auch sei erwähnt das ein Mensch sich nur 30.000 Zeilen Quelltext merken kann. Da die meisten Projekte größer sind und Entwickler in der Regel nicht nur an einer Anwendung entwickeln ist es natürlich, dass dem Entwickler sein eigener Quelltext über kurz oder lang fremd wird.

  • Es findet Überentwicklung – sog. Overengineering – statt. Entwickler sind schnell gelangweilt. Sie lieben es, beeindruckende Sachen zu entwickeln. Entsprechend neigen sie dazu, funktional besonders anspruchsvolle Lösungen zu entwickeln. Leider übersteigen die in fast allen Fällen bei weitem die fachliche Anforderung und haben zu Folge, dass der Wartungsaufwand steigt und zukünftige Entwickler vor der Herausforderung stehen, das „Meisterwerk“ zu verstehen. Um Überentwicklung zu verhindern ist es notwendig, der Kreativität des Entwicklers neue Räume zu geben.
  • Bei der Entwicklung steht nicht die Fachlichkeit im Fokus, sondern die Technologie. Viele Jahrzehnte hat sich die IT auf die technologische Architektur fokussiert. Dabei spricht der Erfolg eindeutig für die Projekte bei denen die Fachlichkeit im Fokus liegt. Das Thema „Domain Driven Design“ (zu Deutsch in etwa „Fachlich bezogenes Design“) ist zwar schon ein paar Jahre im Umlauf, wird jedoch erst seit kurzem eingesetzt. aber so richtig Fahrt nimmt es gerade erst auf.

    Ein fachlich bezogenes Design beginnt bei einer projektweiten einheitlichen fachlichen Sprache, die vom Wortschatz des Kunden übernommen wird. Die Fachlichkeit wird als schützenswert behandelt während alle technischen Details darum herum austauschbar sind (anders als beim klassischen technisch-orientierten Design, bei dem es genau umgekehrt ist). Der Grund dafür ist, dass Elemente wie das Aussehen der Anwendung sich viel eher ändern als das Geschäftsmodell des Kunden.

Nachhaltige Softwareentwicklung beseitigt diese Ursachen und ermöglicht Ihnen über einen langen Zeitraum – meist 10 Jahre – Freude an ihrer Software zu haben.

Geschrieben von Herbert Walde am 14.12.2019

Zurück