22
jan
2019
Door Danny Hoeve op 22 januari 2019 local_cafe 5 min.

Vandaag de dag is vernieuwing van technologie de normaalste zaak van de wereld. We willen sneller, makkelijker, beter en fijner. Veel consumenten weten niét wat daar zoal bij komt kijken. Daarom een kijkje achter de schermen. In dit geval het omzetten van een applicatie naar een nieuwe omgeving.

Bij de huidige consument staat een vloeiende ervaring hoog op de wensenlijst. Zeker bij het bezoeken van online pagina’s. Zo zijn er bijvoorbeeld standaarden ontwikkeld waarin een request normaliter moet worden afgehandeld. De strekking ervan is dat gebruikers steeds ongeduldiger worden en applicaties daarom steeds vloeiender moeten draaien. Dit geeft een enorme druk op de servers en op technologieën die ontwikkelaars moeten inzetten om aan deze wens tegemoet te komen.

Nieuwer en beter

Het ontwikkelen en toepassen van nieuwe technologieën om die consumentenwensen voor en mét bedrijven te beantwoorden, dát is nou precies ons ding. Clever coding, stunning results is immers niet zomaar ons motto. Bij Arcady leren we daarom continu, van mensen en van nieuwe ontwikkelingen. Die kennis vertalen we naar nieuwe technologieën, naar slimme oplossingen én naar nieuwe kansen voor onze klanten.

Het kan dus altijd nieuwer en beter. Zo klopten steeds meer klanten bij ons aan omdat verschillende features niet helemaal werkten zoals zij dat graag wilden. Ook met oog op de best mogelijke en meest voordelige user experience van hun klanten. Natuurlijk moet zo’n nieuwe oplossing ook voor ónze klant de meest voordelige zijn. Overstappen naar een andere, nieuwe technische omgeving is dan een slimme en rendabele zet.

(Onderh)oud

Als goed voorbeeld: het AngularJS framework. AngularJS bestaat nog niet eens zo lang, maar is inmiddels bijna verouderd en ingehaald door de meer superieure Angular variant. De Long Term support van AngularJS zal binnenkort aflopen en vooral Angular zal actief doorontwikkelen. Reden genoeg om te kijken naar een eventuele migratie en distantiëring van AngularJS met al zijn oude technologieën. Maar hoe pak je deze migratie aan? Welke manieren bestaan er en welke is de beste voor welke situatie?

De eerste stap voor een migratie? Dat is kijken of het überhaupt nodig is om te migreren. Soms is de noodzaak zo klein waardoor het beheren van de applicatie genoeg is voor de klant. Je kiest dan voor maintaining. Je bouwt niet per se nieuwe features, en als ze wel worden geïmplementeerd wordt er door de Product Owners rekening gehouden met eventuele technische belemmeringen (vanwege de oude technologie). Afijn, voor een ontwikkelaar betekent dit voornamelijk dat er geen vooruitgang is, deze situatie heb je dan dus liever niet.

Klaar voor de toekomst

Wil je wél dat er migratie plaatsvindt omdat er vooruitgang moet zijn? Kies dan voor een hybride applicatie. Deze situatie is vooral interessant voor grote Enterprise applicaties waar ontwikkeling niet zomaar mag stoppen. Je zorgt er in dit geval voor dat je een applicatie hebt draaien die hybride AngularJS en Angular draait. Tegelijk ontwikkel je alle nieuwe componenten in Angular. Langzaam zal dan AngularJS verdwijnen en je hebt een applicatie die klaar is voor de toekomst. Totdat er weer iets nieuws komt.

Een derde oplossing is het totaal opnieuw schrijven van een applicatie. Hierbij kun je afkijken bij de huidige applicatie óf je kunt het wiel opnieuw uitvinden en daarbij tot nieuwe inzichten komen. Deze optie is prima als je geen actieve ontwikkeling hebt in de front-end en je je kan veroorloven om een tijdje ‘stil te staan’. Je hebt dan wel een volledig nieuwe situatie met de nieuwste technologieën. Daarbij zal de ontwikkeling van nieuwe features ontzettend snel verlopen.

Het een én het ander

De opties hierboven komen met voordelen én nadelen. Het omzetten van een oude naar een nieuwe omgeving vraagt flink wat voorbereidend werk voor het ontwikkelteam. Ook is er ervaring en onderzoek nodig. Tijd is immers geld, en de business ziet er vaak nog niet zo snel het nut van in. De vruchten hiervan plukken ze voornamelijk in de toekomst. Het ontwikkelaarsteam zou daarom goed zijn best moeten doen om ze te overtuigen.

De laatste optie die je kan overwegen is een hybrideversie, tussen rewrite en een migratie in. Deze noemen we gemakshalve een partial rewrite. Je hebt daarbij de voordelen van een totale rewrite en tegelijk de voordelen van continue doorontwikkeling van een migratie. Een partial rewrite houdt in dat je een nieuwe applicatie bouwt. Daarbij wordt het nieuwe component, wanneer deze moet worden aangeroepen vanuit de applicatie, naar het nieuwe component geredirect. Je kunt dan langzaam aan nieuwe componenten bouwen in de nieuwe (schone) architectuur. Tegelijk, en dat is een belangrijke, zorg je ervoor dat klanten geen problemen ondervinden.

Oplossingen voor morgen

Het is zeker niet makkelijk om zo’n keuze te maken voor het bedrijf. We hebben dan wel enkele scenario’s beschreven, maar sommige applicaties en architecturen zitten heel anders in elkaar. Juist ook dan is een goed advies van groot belang. Arcady heeft jaren ervaring met migraties, rewrites en partial rewrites. We helpen je hier graag bij. Een oplossing die past, die vinden we altijd. En we bouwen hem ook nog. 

Meer weten? Of zin om een keer te sparren over de beste oplossingen voor morgen? Bel ons gerust. Onze Arcadians zitten vol vernieuwende ideeën en adviezen.