Laut Wikipedia bezeichnet Refaktorierung in der Software-Entwicklung die manuelle oder automatisierte Strukturverbesserung von Programm-Quelltexten unter Beibehaltung des beobachtbaren Programm-Verhaltens.
Refaktorierung ist Softwarearchitektur mit vorgeschalteter Altsystemanalyse - in vielen Fällen ist zusätzlich noch eine Datenmigration notwendig. Zwei bis drei Tätigkeiten, bei denen Erfahrungen mehr wert sind als beispielsweise Kreativität und Enthusiasmus.
Eine professionell durchgeführte Refaktorierung bietet Ihnen drei entscheidende Vorteile:
1. Analyse und Dokumentation des aktuellen Zustandes Ihrer Software
Allein daraus, dass Ihre Produktverantwortlichen Dritten Stärken und Schwächen Ihrer Anwendung darlegen und dabei zwangsläufig die Aktualität der eigenen Dokumentation feststellen, ergibt sich für Sie ein Informationsgewinn, dessen sinnvolle Dokumentation der erste Schritt zur neuen Version darstellt. Dieser Vorteil entfällt natürlich, wenn Ihre Dokumentation ohnehin aussagekräftig, vollständig und aktuell ist. Aber seien wir doch mal ehrlich ...
2. Entwurf und Implementierung einer adäquaten Softwarearchitektur
Dass eine Software aktuellen Anforderungen nicht angemessen gewachsen ist, ist kein Makel. In keiner anderen Wissenschaft sind die Innovations-Zyklen so kurz wie in der Informationstechnologie. Dass ein Entwurf zum Zeitpunkt seines Entstehens absolut korrekt war, sich zwischenzeitlich aber als suboptimal herausgestellt hat, ist normal und sogar unvermeidlich. Die Erfahrung zeigt, dass eine aktualisierte Softwarearchitektur praktisch nie vom unveränderten bisherigen Team entworfen werden kann. Der Mensch ist ein Gewohnheitstier ...
3. Zukunftsgerichtete Aufstellung durch Modellierung
Am Ende einer Refaktorierungsmaßnahme existiert neben einem klaren Verständnis der Leistungsfähigkeit der neu strukturierten Software deren aktuelle Dokumentation in Form von Modellen. Damit sind Sie für kommende Entwicklungen optimal aufgestellt, da aktuelle Modelle in modernen Entwicklungsprozessen der Ausgangspunkt jeder Umsetzung sind. Beim Einsatz generativer Softwareentwicklung besteht - stark simplifiziert - die Möglichkeit, durch Anpassungen am Generator mit stabilen Modellen unterschiedliche Zielumgebungen zu versorgen.
Warum sollten Sie sich mit Refaktorierungsüberlegungen befassen ?
Sie sollten nicht - Sie müssen! Anwendungen stoßen an Grenzen. Das liegt - wie bereits erwähnt - in den seltensten Fällen an den Anwendungen allein. Vielmehr bewegen sich die Grenzen. Und in der Informatik bewegen sie sich schneller als in jeder anderen Wissenschaft. Zwei Beispiele:
Nur weil AJAX heute zur Verfügung steht und eine Web-Anwendung desktop-like aussehen lassen kann, heißt das nicht, dass Ihre damalige Entscheidung für eine klassische Web-Anwendung inklusive deren Nachteile falsch war.
Die von Ihnen entwickelte Desktop-Datenbankanwendung hat dermaßen zum Erfolg Ihres Unternehmens beigetragen, dass heute ein Anwenderkreis einer zum Entwicklungszeitpunkt nicht absehbaren Größe damit arbeitet. Unregelmäßige, aber wiederkehrende Performance- und Stabilitätsprobleme lassen Sie die Notwendigkeit erkennen, die Anwendung auf ein stabiles, transaktionales Datenbanksystem zu übertragen.
Die Liste der Beispiele, in denen Refaktorierung nicht mögliches, sondern unumgängliches Mittel zur Lösung Ihrer Probleme ist, von deren Lösung Ihr wirtschaftlicher Erfolg abhängt, ließe sich nahezu beliebig verlängern. Aber Sie sind als Besucher dieser Seite ja offensichtlich schon einen Schritt weiter ...