Migreren van traditioneel naar reactive in OutSystems

OutSystems

Het ware potentieel van continue ontwikkeling ontketenen

“In het voortdurend veranderende landschap van digitale transformatie is het essentieel om voorop te blijven lopen om concurrerend te blijven”; elke leider in de industrie zou dit moeten weten, en weet dit waarschijnlijk ook. Op strategisch niveau is dit zichtbaar wanneer je kijkt naar de nieuwe trends zoals AI of, iets verder terug, de opkomst van blockchain. Wanneer er een grote nieuwe digitale trend is, springt iedereen erop en probeert degene te zijn die een manier kan vinden om deze in hun industrie te gebruiken om te “disrupten”.

Ironisch genoeg hebben we een andere houding ten opzichte van applicaties die we in het verleden hebben gebouwd. We hebben nog steeds veel legacysoftware in alle sectoren.

Nu zien we dat OutSystems zo volwassen wordt dat we zelfs legacy-systemen hebben die binnen het OutSystems-platform zijn gebouwd, in de vorm van applicaties gebouwd op de traditionele architectuur. Dit soort applicaties verdient ook aandacht, vooral omdat ze de “low hanging fruits” zijn in digitale transformatie; waarom zou je je alleen richten op het opnieuw uitvinden van het wiel als je het wiel dat je al hebt drastisch kunt verbeteren voor een fractie van de kosten?

OutSystems Reactive, de volgende stap in het creëren van de beste omnichannel-ervaring

Laten we beginnen met wat er te winnen valt bij het migreren van traditioneel naar reactive; hoe ziet deze “verbetering van het wiel” eruit? Allereerst is de reactive architectuur veel beter schaalbaar, niet alleen voor jouw klanten, maar ook voor jouw ontwikkelingsteam. Als je wilt overleven in de huidige markt, moeten bijna alle bedrijven een vorm van e-commerce hebben, meestal vertegenwoordigd door een omnichannel-ervaring via web en mobiel.

Klantzijde

Aan de klantzijde betekent schaalbaarheid dat je meer mensen tegelijkertijd kunt bedienen. De nieuwe architectuur bereikt dit door de communicatie tussen de apparaten van de gebruiker en jouw servers te verbeteren, door gebruik te maken van de nieuwste front-end technologieën om de gebruikerservaring te verbeteren en de dataverkeer tussen server en client te optimaliseren.

Veel van deze voordelen zijn afhankelijk van de verschillende behandeling van de front-end en server tussen deze twee architecturen. Traditioneel heeft geen “client-side,” dus herkent het het apparaat van de gebruiker niet als zijn computer, maar als een ontvanger voor je pagina’s.

Met reactive maken we gebruik van de verbeterde mogelijkheden van apparaten en kunnen we veel van het werk op het apparaat zelf doen in plaats van al het werk op je server te doen en vervolgens het resultaat naar het apparaat te sturen om weer te geven. Dit vertaalt zich naar snellere feedback voor de gebruiker, minder belasting van je servers en een prettigere algehele ervaring.

Ontwikkelaarszijde

Aan de ontwikkelaarszijde kun je met reactive componenten en elementen creëren die zowel op mobiele als webkanalen gebruikt kunnen worden. Je team ontwerpt en bouwt een component één keer, en dan kunnen ze deze voor beide kanalen gebruiken zonder een aparte set componenten voor elk kanaal nodig te hebben. Dit bespaart niet alleen ontwikkeltijd, maar vermindert ook technische schuld en vereenvoudigt het onderhoud van je omgeving.

Reactive introduceert de concepten ‘asynchrone gegevensophaling’ en ‘events’. Dit betekent dat ontwikkelaars deze nieuwe mogelijkheden kunnen gebruiken om veel meer flexibiliteit te hebben bij het implementeren van complexe gegevenspatronen of bij het bepalen wanneer ze een zogenaamde hook willen gebruiken om een deel van hun code te activeren.

Evolutie

Naast schaalbaarheid is evolutie een andere essentiële functie. In het huidige online landschap hebben gebruikers bepaalde “universele verwachtingen” ontwikkeld met betrekking tot hun interactie met online applicaties. Als je niet meegroeit met deze stijgende verwachtingen, zullen mensen je kanaal uiteindelijk als ‘onhandig’ ervaren en verder zoeken. Deze trend vertraagt niet, maar versnelt juist.

Denk aan hoe het gebruik van algoritmes zich de afgelopen jaren heeft ontwikkeld, waarbij personalisatie tegenwoordig de focus is. We willen de klantreis tegenwoordig zo persoonlijk mogelijk maken, terwijl mediaconsumptie vroeger meer een passieve ervaring was. Een andere verandering is dat we vroeger zoveel mogelijk functies op het scherm wilden hebben, maar nu zien we een trend in minimalistisch design en het verwijderen van zoveel mogelijk rommel.

De conclusie is dat het gedrag en de behoeften van klanten voortdurend veranderen, en OutSystems erkent dit door hun UI/UX-toolset up-to-date te houden. In tegenstelling tot traditioneel betekent dit dat wanneer je reactive gebruikt, je toegang hebt tot alle nieuwste functies uit de toolbox die OutSystems voor je team biedt en daardoor gemakkelijk kunt bijblijven met de nieuwste trends in widgets en UI-patronen. OutSystems blijft zich ontwikkelen om bij te blijven met de nieuwste trends, maar om van die inspanning te profiteren, moeten je applicaties ook evolueren.

Hoe upgrade je je traditionele applicatie naar een reactive applicatie?

Hopelijk begrijp je nu de noodzaak om te upgraden, maar het accepteren daarvan is slechts de eerste stap. Nu moet je de werkzaamheden uitvoeren om de applicaties van traditioneel naar reactive te upgraden. Gelukkig gebruiken beide architecturen nog steeds hetzelfde OutSystems-platform, dus een upgrade is beheersbaar met de juiste planning en voorbereiding.

Je moet je bestaande applicatieportfolio evalueren, potentiële kandidaten voor migratie identificeren en afhankelijkheden tussen applicaties documenteren. Wanneer de inhoud van de omgeving duidelijk is, kun je deze gebruiken als input om tijdlijnen, resources en potentiële mijlpalen te plannen.

Bij het beslissen welke applicatie je als eerste moet upgraden, is het raadzaam om klein te beginnen; kies een applicatie die gemakkelijk te isoleren is, een eigen levenscyclus heeft en bij voorkeur veel van je aangepaste widgets gebruikt, als je die hebt. Wanneer je een applicatie eenvoudig kunt isoleren, zal deze niet interfereren met je bestaande applicaties, waardoor je vertragingen door afhankelijkheden met applicaties die nog niet kunnen worden geüpgraded, kunt vermijden.

Dit stelt ontwikkelaars en gebruikers in staat om geleidelijk te wennen aan de vele veranderingen die met de upgrade gepaard gaan, waardoor het proces beheersbaarder wordt. Het zien slagen van projecten, zelfs in kleine stappen, zal helpen de acceptatie van verandering te verbeteren.

Een extra voordeel is het vinden van een applicatie die veel aangepaste widgets en UI-patronen gebruikt. Dit dwingt je om deze elementen opnieuw te ontwerpen voor reactive gebruik. Zodra dat initiële werk is gedaan, kunnen deze elementen worden gebruikt voor elke andere applicatie die daarna wordt geüpgraded.

Na het refactoren van de code moet je de applicatie grondig testen. De applicatie maakt gebruik van een geheel andere architectuur, dus je moet sommige onderdelen tijdens het refactoren vertalen. Geautomatiseerde testframeworks kunnen helpen dit proces te stroomlijnen. Het hoeft echter niet alleen op technisch niveau te werken; het moet zijn “karakter” behouden. Je moet de nieuwe applicatie testen en valideren met gebruikers om te controleren of deze nog steeds aanvoelt zoals bedoeld.

De laatste stap is om de geüpgradede app in productie te nemen, de prestaties te monitoren, potentiële knelpunten te identificeren en paraat te staan voor eventuele problemen. Vooral in de eerste paar dagen beïnvloeden je reactievermogen op problemen en de snelheid waarmee je deze aanpakt en oplost direct de acceptatie van de nieuwe applicatie door gebruikers. Monitoring kan je helpen problemen te ontdekken en proactief op te lossen voordat ze een probleem worden.

Hoe LINKIT kan helpen 

Je denkt misschien: “Nu ik weet wat ik moet doen, waarom heb ik dan nog iemand anders nodig?”. Het is gemakkelijk om dit door te lezen, de stappen te volgen en je een weg erdoorheen te banen, maar dit werkt alleen op de korte termijn. Onthoud dat continue verbetering geen afgebakend project is; het is een proces dat doorgaat, zelfs nadat je de deliverables hebt afgerond.

Hoewel je nu toegang hebt tot alle nieuwste technologieën en tools van OutSystems, is het belangrijkste om die tools optimaal te benutten door je medewerkers te ontwikkelen. Wanneer je samenwerkt met LINKIT, krijg je toegang tot ontwikkelaars die al jaren met reactive werken, de nieuwe manier van denken begrijpen en dit kunnen overbrengen op je medewerkers, zodat zij in de toekomst zelf beter gebruik kunnen maken van deze nieuwe architectuur.

Je kunt ook gebruikmaken van onze uitstekende platform engineers, die uitgebreide kennis hebben van hoe OutSystems onder de motorkap werkt. Zij kunnen je helpen tijdens de laatste stap van de upgrade om de soepele implementatie van de vernieuwde applicaties te faciliteren en je onderhoudsteam de tools geven die ze nodig hebben om de ogen en oren van je digitale landschap te zijn. Uiteindelijk heb je een robuuste partner om op te leunen bij het zetten van je eerste stappen in dit uitdagende en essentiële proces, waardoor je IT weer nieuw leven wordt ingeblazen en je klaar bent voor de toekomst.