"door software refactoring brengen wij uw legacy naar een hoger niveau"Onderzoek, advies en uitvoer van het ombouwen of herbouwen van uw software applicaties naar de modernste platformen.
- FoxPro en Visual FoxPro
- Delphi
- VB6 und VB.NET
- Web-Portering
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 to 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.
Bas Strijker - Directeur operations
Bij Technosoft zijn wij ooit begonnen met het refactoren van een aantal van onze eigen applicaties waaronder onze ERP-Projectmanagementapplicatie. Eigenlijk betrof het een complete rewrite op basis van een nieuwe technology stack, maar wel ter vervanging van een bestaande applicatie. Met deze ervaring zijn we andere bedrijven gaan ondersteunen bij het refactoren of nieuw bouwen van hun software. Dit zijn vaak langjarige trajecten en voor een aantal klanten zijn wij hier al jaren mee bezig.
Een traject van refactoring of rewrite heeft vele facetten. In het begin wordt er veel aandacht besteed aan het doorgronden van de uitgangssituatie en het neerzetten van de juiste architectuur en aanpak. Eventuele integratie en migratie, vaak onontkoombaar, zijn hierbij ook belangrijke aspecten. Als deze fase is doorlopen kan er gestart worden met de eerste fase van de ontwikkeling. Onze mensen zijn gewend aan het werken in verschillende nieuwe omgevingen en gaande het traject wordt er kennis opgebouwd van het toch vaak specifieke domein van de klant. Die ervaring gaat dan meetellen in verdere ontwikkeling.
Wij vinden het heel belangrijk dat wij pro-actief zijn in een samenwerking. Het is ook onze taak om de opdrachtgever scherp te houden, te wijzen op zaken die niet goed gaan of beter kunnen en te komen met nieuwe inzichten. Hiermee leggen we de basis voor een echt partnership.
Met onze jarenlange ervaring denken wij graag met u mee over de mogelijkheden van het refactoren van uw software.