Menu

Neue Bäume auf alter Erde

— Cornelia Geyssel am 15. Mai 2019

Probleme bei neu Entwickelter Software

Brownfield-Projekte

Wenn neue Software in ein bereits bestehendes System implementiert oder ein altes System mit neuen Funktionen erweitert wird, spricht man von einer Brownfield Installation.

Im Gegensatz zu einer vollständigen Neuentwicklung, muss sich die neue Software oder Funktion in ein bestehendes Architektur- und Softwarekonzept eingliedern.

Damit solche Projekte erfolgreich durchgeführt werden können, braucht es ein erfahrenes Projektteam.

Herausforderungen

Ein grundsätzliches Problem bei Legacy-Softwaresystemen ist, dass die innere Struktur mit der Zeit tendenziell immer schlechter wird. Jede neu hinzugefügte Funktion, die nicht von Anfang an eingeplant war, kann die strukturelle Integrität des Systems untergraben. Dadurch steigen die Kosten für Ergänzungen und Anpassungen.

Auch der bestehende Funktionsumfang kann Schwierigkeiten bereiten. Neue Standardsoftware bietet zwar meistens einen grossen Funktionsumfang an, doch immer wieder gibt es einzelne Funktionen und Schnittstellen, die nicht von neuer Software abgedeckt werden. Die Umsetzung dieser kann auch einen negativen Einfluss auf die Kosten haben.

Ein weiterer Pain-Point in solchen Projekten ist das Testing.

Oft fehlt es älteren Systemen an automatisierten Tests.

Dadurch sind die Auswirkungen von Veränderungen im Code nur mit aufwändigeren manuellen Tests ausfindig zu machen. Was wiederum mehr Aufwand bedeutet.

Lösungsansätze

In einem Brownfield-Projekt muss als aller erstes das bestehende System analysiert werden. Dies beinhaltet die Qualität des Codes, die Systeme, Schnittstellen und anderer Artefakte.

Erst wenn ein grundlegendes Verständnis herrscht, kann mit der Projektumsetzung begonnen werden.

Oft basieren alte Systeme auf einer monolithischen Architektur. Dies erschwert die Entwicklung neuer Funktionen sehr. Ein Ansatz zur Vereinfachung solcher Systeme ist die sogenannte „Inversion of Control“. Bei diesem Ansatz bricht man den alten Code in einzelne Teile, die autonom funktionieren. Dadurch können einzelne Snippets mit neuen ausgetauscht werden, ohne den Rest des Systems zu behindern.

Eine weitere erfolgreiche Art solche Projekte zu managen ist mit Hilfe der serviceorientierten Architektur. Mithilfe einer Schnittstellenschicht und Konnektoren können einzelne Systeme abgekapselt werden.

Prävention

Auch bei neuen Projekten sollte man im Hinterkopf behalten, dass bereits nach ein paar Monaten der erste Refactoring-Bedarf anfallen kann. Um ein System von Anfang an zukunftsfähig zu machen, müssen grundlegende Coding-Standards eingehalten werden.

Ein Sammelsurium solcher Guidelines wird von der „Clean Code Developer“-Initiative bereitgestellt.

Diese basieren auf den Werten Evolvierbarkeit, Korrektheit, Produktionseffizienz und Reflexion. Damit die Projekte einfach erweitert werden können, ist eine Dokumentation der Systeme unabdinglich.

Sind Sie bereit?

Sehr gut. Wir auch. Stellen Sie uns Ihre Fragen.

Sascha Dengler

CMO, Mitglied der GL

+41 44 445 55 82

E-Mail Linkedin

Michael Lackner

Head of Sales

+41 44 445 55 38

E-Mail Linkedin

Doch noch nicht? Erfahren Sie mehr über unsere Kompetenzen und alle Referenzen oder melden Sie sich für unseren Newsletter an.

Um unsere Webseite optimal zu gestalten und fortlaufend verbessern zu können, verwenden wir Cookies. Durch die weitere Nutzung der Webseite stimmen sie der Verwendung von Cookies zu. Weitere Informationen zu Cookies erhältst du in unserer Datenschutzerklärung.