"Refactoring: uw legacy naar een hoger niveau"
Software vernieuwen
Onderzoek, advies en uitvoer van het ombouwen of herbouwen van uw software applicaties naar de modernste platformen.
Onderzoek, advies en uitvoer van het ombouwen of herbouwen van uw software applicaties naar de modernste platformen.
De ontwikkelingen op het gebied van software gaan steeds sneller. Dit betekent dat de levensduur en dus de terugverdientijd van software applicaties ook korter wordt. De technische levensduur van deze applicaties is vaak nog niet voorbij, maar de omgeving zorgt ervoor dat er iets moet veranderen. Een groot deel van de maatwerk software ontwikkeling die wij doen, is het ombouwen of nieuw bouwen van bestaande applicaties, hier samengevat onder de term “software refactoring”.
Software refactoring betekent de verbetering van de interne structuur van de source code van bestaande programma’s, terwijl de software (functioneel) hetzelfde blijft doen. Volgens de definitie gaat het dus niet om het oplossen van fouten of het herschrijven van code. In de praktijk wordt er echter vaak een combinatie van problemen opgelost. Niet alleen de structuur van de code wordt verbeterd, maar er wordt ook direct gekeken naar het oplossen van fouten, verbeteren van performance, aanpassingen aan de interface etc.
Elke situatie is weer anders als het gaat om het probleem dat moet worden aangepakt of de omgeving waarin dit moet worden gedaan. Dit betekent dat elke refactoring op een andere manier moet worden gedaan. Vooraf zal er gezamenlijk bepaald moeten worden hoe het traject van software refactoring wordt aangepakt in termen van werkverdeling, scope, planning, fasering en techniek. Alleen met een goede voorbereiding kan het traject ook daadwerkelijk slagen.
Een goede voorbereiding zorgt voor het maken van de juiste keuzes in een vroeg stadium, waardoor de software refactoring beter verloopt.
Allemaal vragen die een onderbouwd antwoord behoeven. Deels kunnen deze op basis van onderzoek en ervaring worden beantwoord en deels zullen deze als randvoorwaarden worden meegenomen in het traject.
Het uitvoeren van een refactoring traject kan een kostbaar en langdurig traject zijn, waarvan de uitkomst soms onzeker is. Het uitstellen van refactoring heeft vaak vergelijkbare oorzaken.
Deze argumenten zijn zeer valide en zullen afgewogen moeten worden om een besluit te nemen. Onze ervaring is echter dat de gevolgen van een refactoring wel te overzien zijn. Het is vaker een kwestie van het willen toevoegen van nieuwe functionaliteiten (en dus verbetering ten opzichte van de oude situatie), dan dat het ombouwen zelf een risicovolle en/of tijdrovende klus is. Voor wat betreft de betrouwbaarheid zal er veel aandacht besteed moeten worden aan Quality Assurance, oftewel het gestructureerd borgen van de kwaliteit. Voor wat betreft de kosten is het uitbesteden naar softwareontwikkelaars in Oost-Europa een optie die het verschil kan maken. Tarieven die de helft tot een derde van de tarieven in Nederland zijn, kunnen het verschil zijn tussen haalbaarheid en blijven uitstellen wat eigenlijk zou moeten. Een herberekening op basis van onze uitgangspunten is zeker de moeite waard.
Er zijn vele “klassiekers” die op een gegeven moment aan refactoring toe zijn. Niet alleen omdat het technisch noodzakelijk is, maar vaak ook omdat de ontwikkelaars op deze platformen eenvoudigweg niet meer te vinden zijn. Een refactoring naar een nieuw software platform, of een update naar een veel nieuwere omgeving brengt u nieuwe kansen.