Vorweg, ich arbeite an einem Projekt in dem gewachsener, monolithischer C/C++-Code nach C# übertragen werden soll. Ziel der Migration ist die derzeitige mangelnde Wartbarkeit zu verbessern und künftige Featureeinbauten zu vereinfachen. Ich denke, wer diese Rezension liest, hat eine Vorstellung wovon ich spreche.
Für mich als Softwerker war dieses Buch zwar eine interssante Lektüre, aber dennoch effektiv wertlos.
Warum?
Das liegt einerseits an der Definition von Migration. Eine Grundvorraussetzung um von Migration zu sprechen (im Gegensatz zu Weiterentwicklung oder Reengineering) ist, dass der Funktionsumfang unangetastet bleibt (genaugenommen muss jeder Bug mitgenommen werden).
Warum macht man dann eine (viele Mannjahre dauernde) Migration?
Frei nach Kapitel 2.2.2: "Wahre Gründe für Migrationsprojekte:"
* Hardwarewechsel (da nicht mehr zeitgemäß, zu teuer, Support eingestellt, ...)
* Wechsel von Systemsoftware (Betriebssystem, Datenbank, ...)
* Wechsel der Programmiersprache (da z.B. Assembler oder PL/I-Experten immer schwerer zu finden sind)
Der zweite Grund warum ich mit diesem Buch nicht viel anfangen konnte, ist, dass Softwareentwickler eigentlich nicht zum Zielpublikum gehören (auch wenn sie als erstes am Klappentext erwähnt werden). Angesprochen werden in diesem Werk in erster Linie Projektleiter die ein Migrationsprojekt überwachen sollen. Das Projekt an sich wird dann ohnehin "fast ausnahmslos [...] an einen externen Partner vergeben" (Kap. 5.4), typischerweise in Asien, denn "ihr Personal ist nicht nur preiswerter, sondern auch eher zu solchen repetitiven Augaben bereit" (Kap. 6).
Ein Großteil des Buches dreht sich dann um den Migrationsprozess (Kap.3 und 4., viele hübsche Ablaufdiagramme) oder um Aufwandsschätzungen (ein Highlight für mich war COCOMO-II: Schätzen sie mal ihre "Vertrautheit mit der Zielarchitektur" auf einer Skala von 0,91-1,23!).
Interessant fand ich die 8 Fallbeispiele in Kapitel 7. Die Beispiele stammen von Banken und Versicherungen. Jeweils mussten mehrere Millionen Zeilen COBOL-Quellcode (Bsp. 7: PL/I) und Datenbanken migriert. In einem (erfolgreichen) Projekt dauerte die Migration gar 15 Jahre.
---
Das Buch ist sicherlich solide aufgebaut. Abzug bekommt es von mir aber aus folgenden Gründen:
* Für Softwareentwickler (und die werden am Klappentext als erstes genannt) ist es kaum brauchbar.
* Man bekommt in diesem Buch den Eindruck, dass der weltweit vorhandene Legacy-Code nur aus Datenbank-lastigen COBOL-Programmen besteht. Schauen Sie einfach auf Ihren (privaten) Bildschirm, dort ist praktisch alles in C/C++/Delphi/Java/.net/... geschrieben - und schleppt Altlasten mit.