Legacy-Software-Refactoring
Welche Zielsetungen sind für ein erfolgreiches Software-Refactoring-Projekt relevant?
Diese Präsentation bietet einen exklusiven Einblick für IT-Manager, IT-Leiter, Product Owner und Entwicklungsleiter.
Technosoft Software Development unterstützt IT-Unternehmen in Deutschland, den Niederlanden, Österreich, Schweiz, Liechtenstein bei der erfolgreichen Umsetzung ihrer Refactoring-Projekte.
2. Erfolgreiches Software-Refactoring
2
Zielsetzung 1:
Den Quellcode
vereinfachen
Übliche Softwareanwendungen steuern zwar keine SpaceX-
Raketen zum Mars, sind aber manchmal so aufgebaut, als ob sie
es tun würden. Da ein Entwickler manchmal zu viele
Abstraktionsebenen überarbeitet, um unmögliche Szenarien
auszuschließen und zahlreiche „Was wäre wenn“-Fälle zu
berücksichtigen, kann es schon vorkommen, dass man am Ende
über sein Ziel hinaus geschossen hat. Da die Lernkurve für eine
komplizierte Anwendung viel zu lang sein kann, wird eine
einfache Wartung wegen unnötigen Schichten, Wrapper,
Schnittstellen und tiefen Vererbungsketten praktisch unmöglich.
Keep it simple!
(function repeat () {
eat () ;
sleep () ;
code () ;
repeat () ;
}) () ;
TECHNOSOFT SOFTWARE DEVELOPMENT - NEARSHORE OUTSOURCING - QA & TESTING
3. Erfolgreiches Software-Refactoring
3
Zielsetzung 2:
Einsicht in den Quellcode
verbessern
Undurchsichtiger Quellcode kann aus mehreren
Gründen entstehen: Alltagsstress des Entwicklers,
mangelnde Kommunikation der Projektteilnehmer, rasch
wechselnde Anforderungen. Was auch immer der Grund
sein kann, ist es in manchen Fällen nahezu unmöglich zu
verstehen, was im Quellcode vor sich geht und warum
dieser überhaupt noch funktioniert. Es sind weder
Kommentare, Diagramme noch Dokumentation
vorhanden. Niemand kann den Code ändern, ohne
dadurch die Anwendung außer Betrieb zu setzen.
TECHNOSOFT SOFTWARE DEVELOPMENT - NEARSHORE OUTSOURCING - QA & TESTING
4. Erfolgreiches Software-Refactoring
4
Zielsetzung 3:
Strukturelle Robustheit des
Quellcodes verstärken
Viele Programmierer schreiben ihren Quellcode einfach
„herunter“, wodurch dieser instabil wird. Bei jeder Änderung, die
man später vornimmt, fühlt es sich an, als ob man ein
Kartenhaus berühren würde - es droht immer etwas
zusammenzubrechen. Im Gegenteil zur objektorientierten
Programmierung, können viele Legacy-Anwendungen nur dank
Quellcode-Kommentaren verstanden werden. Dies ist ein
typisches Problem besonders für Anwendungen mit komplexen
Abhängigkeiten und einer großen Anzahl an Schnittstellen.
TECHNOSOFT SOFTWARE DEVELOPMENT - NEARSHORE OUTSOURCING - QA & TESTING
5. Erfolgreiches Software-Refactoring
5
Zielsetzung 4:
Flexibilität des
Quellcodes verbessern
Eine starre Quellcodebasis macht es schwer, neuen
Anforderungen gerecht zu werden. Die Entwicklung neuer
Funktionalitäten stellt komplexe Herausforderungen dar
und muss sorgfältig eingeplant werden. Kunden
beschweren sich über andauernde und kostspielige
Umsetzungen. Dies ist ein typisches Problem für
Anwendungen, die zu schnell gewachsen sind oder nur
auf bestimmte Anforderungen zugeschnitten wurden,
ohne das Gesamtbild zu berücksichtigen.
TECHNOSOFT SOFTWARE DEVELOPMENT - NEARSHORE OUTSOURCING - QA & TESTING
6. Erfolgreiches Software-Refactoring
6
Zielsetzung 5:
Leistung des
Quellcodes steigern
Die Anwendung hat mit der Zeit mehr Benutzer
gewonnen, mehr Daten werden bearbeitet und mehr
Funktionen werden ausgerollt. Obwohl der Quellcode
anfangs akzeptabel funktionierte, wurde er in der
Zwischenzeit langsamer und muss wieder reanimiert
werden, bevor Kunden damit anfangen sich zu
beschweren. Dieser Nebeneffekt - übermäßige
Langsamkeit - kann mit der Zeit zu Recht auftreten
und als Fehler angesehen werden.
TECHNOSOFT SOFTWARE DEVELOPMENT - NEARSHORE OUTSOURCING - QA & TESTING
7. Erfolgreiches Software-Refactoring
7
Zielsetzung 6:
Quellcode-Testbarkeit
verbessern
Ablaufverfolgungs- oder Fehlerprotokolle sind entweder nicht
verfügbar oder nicht detailliert und aussagekräftig genug, um
klare Einsichten zu bekommen, was nicht läuft. Wenn ein Kunde
bestimmte Fehler meldet, nimmt die Untersuchung sehr viel Zeit
in Anspruch und erfordert häufig die direkte Einbeziehung eines
Entwicklers. Ohne gutes QA-Management oder strukturierte
QA/Testing-Prozesse ist das Wiedergeben von Fehlern schwierig
und erfordert manchmal sogar die vollständige Replikation der
Kundenumgebung (Daten und Software) in einem lokalen
Netzwerk, um das Debugging aufzunehmen.
TECHNOSOFT SOFTWARE DEVELOPMENT - NEARSHORE OUTSOURCING - QA & TESTING
8. Erfolgreiches Software-Refactoring
8
Zielsetzung 7:
Deployment von Quellcode
automatisieren
Jedes Mal, wenn neuer Quellcode bereitgestellt wird, sind
kleine Überraschungen nicht ausgeschlossen. Muss der
Entwickler für einen reibungslosen Ablauf eine Vielzahl
manueller Schritte verfolgen, oder ist zu viel Konfiguration
notwendig, dann sind diese bestimmten Personen
zuzuschreiben. Legacy-Software ist eher auf Vertrauen
anstatt von Effizienz aufgebaut, diese Praxis entspricht längst
nicht mehr modernen Tools und Services wie z.B. Docker,
Kubernetes, GitHub und Azure DevOps, die den Deployment-
Prozess um das Zehnfache beschleunigen können.
TECHNOSOFT SOFTWARE DEVELOPMENT - NEARSHORE OUTSOURCING - QA & TESTING
9. Tel: 0231 586 99 717 E-Mail: info@technosoft.de
9STRUCTURAL ENGINEERING - NEARSHORE OUTSOURCING - QA & TESTING
Ihre Legacy-Software läuft träge? Geben Sie nicht auf!
Vertrauen Sie auf mehr als 40 Jahre Erfahrung in
Softwareentwicklung und Qualitätssicherung!
Wir freuen uns auf Ihren Anruf!