Sind Sie verantwortlich für den Betrieb und / oder die Entwicklung einer Anwendung, der man ihr "Alter" (oft 10 Jahre und mehr) inzwischen deutlich "anmerkt"? Überlegen Sie, diese Anwendung durch eine eigene Neuentwicklung oder durch eine an Ihre Bedürfnisse anzupassende Standardlösung zu ersetzen?
Dann kann ein Software-Remastering eine vielversprechende Alternative sein.
Was ist ein Software-Remastering?
Software-Remastering bezeichnet die Verbesserung der
Qualität Ihrer Software
durch automatisierte Verfahren mit der Hilfe von Meta-Programmen und Methoden
der Verarbeitung formaler Sprachen sowie des Übersetzerbaus. Dadurch wird sowohl
die Untersuchung als auch kontrollierte Veränderung von umfangreichen Anwendungen
mit Millionen Zeilen an Code ermöglicht.
Wie läuft ein Software-Remastering ab?
- Es beginnt mit einer objektive Einschätzung der Güte Ihrer Software:
Oft folgen Beratungsfirmen den aktuellen Trends und empfehlen, etwa auf die neueste verfügbare Technologie zu wechseln und "Hypes" mitzugehen. Dabei ist Technologie selten der entscheidende Faktor, viel wichtiger ist der "Zustand" der Software, ihre Wartbarkeit und Erweiterbarkeit. Daher steht am Anfang ein Audit sowie Code-Review, um eine objektive Einschätzung der Güte zu erhalten. - Darauf folgt die Ausarbeitung einer Handlungsempfehlung:
Die Unabhängigkeit von Anbietern sowie das Interesse an erfolgreichen Projekten führen dazu, das eine Handlungsempfehlung nur und alleine unter Berücksichtigung Ihrer Interessen erfolgt. Dabei werden alle Optionen "make it (again)", "buy it" und "remaster it" bewertet und unter Abwägung der Vor- und Nachteile eine Empfehlung ausgesprochen. - Im Fall dass Ihre Anwendung sich dafür eignet, schließt sich das Remastering an:
Es werden Werkzeuge erstellt, mit denen Ihr Sourcecode bereinigt und wartbar gemacht werden kann. Features werden erhalten, Fehler werden aufgedeckt und können dadurch behoben werden. - Letzter Schritt ist der Knowhow-Transfer:
Ihre bereinigte Anwendung wird an Ihre IT übergeben, die Findings besprochen und auf Wunsch noch eine Übergangszeit die Anwendung mitbetreut und gewartet.
Was sind die Vorteile eines Software-Remastering?
- Vollständige Kontrolle der Kosten
Der Remastering Prozess erlaubt die vollständige Kontrolle über den Umfang und den Nutzen der durchgeführten Arbeiten und kann jederzeit - etwa bei Erreichen eines ausreichenden Grades der Verbesserung - beendet werden. Auch ist es möglich, die Qualität gezielt dort zu erhöhen, wo es den größten Nutzen verspricht. Die Automation der Transformationen reduziert zudem die Testaufwände. - Minimierung der Risiken
Oft geraten Ablösungsprojekte von Legacy Software in Schwierigkeiten aufgrund unvollständiger oder fehlerhafter Abbildungen der Geschäftsprozesse. Das Wissen um diese ist oft nicht einfach verfügbar, sondern muss mehr oder weniger aufwändig zusammengetragen werden. Dies führt dazu, dass Fehler gemacht werden, welche oft erst (zu) spät bemerkt werden. Da ein Remastering die Logik der Anwendung im Normalfall nicht ändert, entfällt diese Schwierigkeit. Da zudem jede einzelne Maßnahme eines Remasterings die Qualität verbessert, besteht hier auch ein großer Schutz Ihrer Investition. - Bewahrung Ihrer Alleinstellungsmerkmale
Obwohl ein Wissen um Ihre Geschäftsprozesse - und insbesondere die in Ihrer Software evt. abgebildeten Alleinstellungsmerkmale - natürlich hilfreich ist, so ist ein solches für viele der nützlichen Transformationen eines Remastering nicht erforderlich. Sie entscheiden also in sehr vielen Fällen selbst, wie viel und welches Wissen sie weitergeben wollen. Falls Sie es wünschen, kann ein derartiges Wissen auch durch spezialisierte Untersuchungen Ihrer Programme gewonnen und Ihnen in Form einer entsprechenden Dokumentation zur Verfügung gestellt werden. - Flexibilität in der Umsetzung
Da jede einzelne Transformation auf eines, mehrere oder alle Programme angewendet werden kann - oder eben auch nicht - ist eine Steuerung der durchzuführenden Arbeiten möglich, welche alle Konflikte zu betrieblichen Belangen - etwa der forgesetzten Weiterentwicklung - vermeidet. Dies trifft sowohl auf die Transformationen als auch auf die Auslieferung der remasterten Programme zu. - Entlastung Ihrer Mitarbeiter
Ein Remastering behält sehr oft die benutzte Technologie bei, so daß die bei einem Wechsel - etwa von C++ zu Java o.ä. - nötige Einarbeitung Ihrer Mitarbeiter entfällt. Da ein großer Teil der Geschäftslogik aus den Sourcen gewonnen werden kann, sind Ihre Aufwände - insb. für Dokumentation und Konzepte - oft sehr viel geringer als bei einem "make it" oder "buy it".
Wann lohnt sich ein Software-Remastering?
Folgende Indizien weisen darauf hin, dass ein Software-Remastering sich lohnen könnte:
- Eine Zunahme der Störungen und Fehler im Betrieb, insbesondere nach dem Einspielen neuer Versionen der Anwendung, sei es etwa dass neue Funktionen nicht oder nicht wie erwartet arbeiten, dass Schnittstellen stunden- oder tagelang ausfallen, dass Berichte fehlen, falsch sind oder sonst den Erwartungen nicht entsprechen
- Klagen Ihrer Architekten, Projektleiter, Tester, Entwickler und Admins, dass sie überlastet sind, dass der Zustand des Source-Codes langsam "gruselig" wird, dass sie mehr "trouble-shooting" als Entwicklung machen, dass alles immer (viel) länger dauert als geplant
- Klagen des Fachbereichs, dass notwendige Änderungen nicht, zu spät oder falsch umgesetzt werden, und dies "gefühlt" immer häufiger vorkommt, dass überhaupt die Leistungen "der IT" eher kritisch gesehen werden
- Klagen Ihres ggf. übergeordneten Managements, dass Ihre Zahlen wirtschaftlich nicht den Erwartungen entsprechen oder gar strategische Ziele Gefahr laufen, verfehlt zu werden
Retten Sie ihre Anwendung - probits kommt und sagt Ihnen wie.