Anders Abel berättade om sina erfarenheter av att bygga en Strangler Application, en term myntad av Martin Fowler. Att bygga en Strangler Application inebär kortfattat att man lägger till ny funktionalitet utanpå den gamla på ett sätt som långsamt ersätter den gamla arkitekturen med en ny.
Det var intressant att höra om det här med en färsk omskrivning av ett system i bakhuvudet. När vi byggde Viola hade vi ju aldrig valet till något annat eftersom vi inte hade tillgång till källkoden.
Enligt Anders Abel finns det två skäl till att en verksamhet överväger en omskrivning: Man behöver lägga till ny funktionalitet eller så vill man ha ett system som är enklare att underhålla.
Anders Abel hade många goda argument till varför man inte ska genomföra en fullständig omskrivning. Den största för verksamheten eller kunden är att systemet för lång tid får en negativ värdeutveckling beroende på att man inte kan lägga till ny funktionalitet under tiden det skrivs om.
För att få till en bra Stangler Application bör man genomföra några saker innan man börjar bygga.
Abel hade startat med att rensa bort all kod som inte användes. Det var ett stort arbete. Sedan kan det vara bra om man ser över koden och försöker refaktorera den till den ursprungliga arkitekturen så att den gamla kodbasen är enhetlig.
Sedan är det bara att börja. Han rekommnderade att försöka hitta komponenter i den gamla och nya arkitekturen på samma nivå som man kan bygga broar emellan. Vyer i MVC och Web forms är bra exempel. Det finns en fälla i att ersätta komponenter på ett sätt som gör att gamla arkitekturen stödjer upp den nya och tvärt om.
En uppmaning är att planera arkitekturen för framtiden. Det känns som ett uttalande som går emot de agila principerna, men här finns ju ett långsiktigt mål att ersätta den gamla arkitekturen vilket jag tror gör att det är en välsignad åtgärd.
Se Martin Fowlers artikel för mer läsning och fler rapporter på området.
Slutet var lite oväntat. Efter att de kommit en bit in i arbetet hade företaget som hade systemet ändå beslutat sig för att ersätta det med en anpassad CRM-plattform istället. Resultatet blev med andra ord en fullständig omskrivning.