Altanwendungen modernisieren

Wir updaten Ihre Legacy-Systeme

Analyse

Bei der Übernahme und Weiterentwicklung eines bestehenden Systems ist es wichtig die bestehende Anwendung zu verstehen. Eine Analysephase hilft dabei. Dabei werden zum einen die Anforderungen und Ziele des Projekts erfasst und zum anderen natürlich die bestehende Anwendung analysiert.

Oftmals existiert für eine bestehende Anwendung nur wenig oder veraltete Dokumentation. Der Quellcode der Applikation ist daher die primäre Datenquelle für die Analyse.

CosmoCode arbeitet hierbei im Top-Down Verfahren. Dabei wird die Anwendung von außen nach innen betrachtet. Zuerst wird die Anwendung als Ganzes betrachtet, um die Struktur und die Architektur zu verstehen. Anschließend werden die einzelnen Komponenten und Module analysiert. Verwendete Technologien und Paradigmen werden identifiziert und dokumentiert.

Aus der Analyse leiten sich die weiteren Handlungsschritte ab. Es wird entschieden, ob die bestehende Anwendung weiterentwickelt und modernisiert wird oder ob eine Neuentwicklung sinnvoll ist.

Alles neu schreiben?

Entwickler sind oft versucht, eine bestehende Anwendung komplett neu zu schreiben. Das ist verständlich, denn die bestehende Anwendung ist oft ein Flickenteppich aus alten Technologien und schlechtem Code. Doch eine komplette Neuentwicklung nicht immer die beste Lösung.

Eine über Jahre gewachsene Anwendung enthält eine Menge Wissen, das nicht offensichtlich ist. Dazu gehören:

  • Domänenwissen und Geschäftslogik
  • Bugfixes und Workarounds für nicht immer offensichtliche Probleme
  • Anpassungen und Erweiterungen für spezielle Kundenanforderungen und interne Prozesse

Zudem sind die Anwender an die bestehende Anwendung gewöhnt. Sie haben die Abläufe verinnerlicht und sind effizient in der Bedienung.

Ein behutsames Refactoring der bestehenden Anwendung ist oft die bessere Lösung. Dabei wird der Code Schritt für Schritt verbessert, ohne die Funktionalität zu ändern. So bleibt das Wissen in der Anwendung erhalten und die Anwender können weiterhin effizient arbeiten.

Rewrite

Bei einem Rewrite wird die bestehende Anwendung komplett neu entwickelt.

  • Keine Altlasten
  • Kompletter Technologie-Wechsel möglich
  • Neues Design und UX möglich
  • Für gewöhnlich reduziertes Feature-Set

Refactoring

Ein Refactoring bedeutet, dass die bestehende Anwendung Schritt für Schritt modernisiert wird.

  • Erhalt von Funktionen und gewachsener Business-Logik
  • Umsetzung im laufenden Betrieb möglich
  • Benötigt enge Abstimmung mit dem Kunden

Refactoring Timeline

Automatisierte Tests

CosmoCode erstellt für die neuralgischen Teile der Anwendung automatisierte Tests. Diese stellen sicher, dass die Anwendung auch nach Änderungen noch korrekt funktioniert.

Continuous Integration/Deployment

Das deployment der Applikation wird automatisiert. Änderungen werden automatisch getestet und bei Erfolg auf die Staging- und Produktivumgebungen gespielt. Dies verhindert menschliche Fehler und erlaubt es Änderungen schnell und sicher zu deployen.

Dependency Updates

Die in der Anwendung verwendeten Frameworks wie Django oder React und alle anderen verwendeten Bibliothken werden aktualisiert. Sicherheitslücken und veraltete Technologien werden so beseitigt.

Schrittweise Modernisierung

Die Applikation wird Schritt für Schritt modernisiert. Unnötig gewordener Code wird entfernt, Technologien wo notwendig ausgetauscht. Die Funktionalität der betroffenen Komponenten wird hierbei überprüft und in Absprache mit dem Kunden angepasst.

Weiterentwicklung

Die Anwendung wird weiterentwickelt. Neue Features und Anforderungen werden umgesetzt.

Kontakt

Sie haben ein bestehendes System, welches es abzulösen oder weiterzuentwickeln gilt? Wir helfen Ihnen dabei, die bestehende Anwendung zu verstehen und zu modernisieren.