Migratie van een SaaS-applicatie
Er komt veel kijken bij het opzetten en uitbouwen van een SaaS applicatie . Als ondernemer moet je met tientallen aspecten rekening houden. Je idee moet tot in de puntjes kloppen, de techniek moet het idee perfect ondersteunen en je moet de juiste mensen om je heen verzamelen om jouw applicatie aan de man te brengen. Naast de applicatie zelf speelt ook de zakelijke kant een rol: Hoe financier je de ontwikkeling? Hoe groei je hard, maar niet té hard? En welke juridische aspecten spelen een rol? In Succes in SaaS ga ik, Maurits Dijkgraaf, SaaS specialist bij PAQT, in gesprek met diverse experts, om meer te weten te komen over de onderliggende uitdagingen bij het ontwikkelen van SaaS. In deze editie spreek ik met Arlon Antonius over migratie van een bestaande SaaS applicatie naar een nieuwe techpartner. Als Software Architect weet hij alles over de mogelijkheden en onmogelijkheden van overstappen naar een andere leverancier. Waar moet je - soms al vanaf de start van jouw SaaS-onderneming - rekening mee houden om met jouw oplossing over te kunnen stappen naar een nieuwe partner?

Voor we het hebben over de mogelijkheden om over te stappen en eventuele obstakels en uitdagingen waarmee je te maken krijgt, is het belangrijk om te weten waarom je als SaaS ondernemer überhaupt over zou willen stappen naar een andere techparter. Arlon en ik komen daarbij samen tot een paar veelvoorkomende motivaties.
Betere kwaliteit
Een nieuwe technische partner kan bijvoorbeeld een hogere kwaliteitsstandaard bieden dan jouw huidige ontwikkelaars en daarmee in staat zijn om beter te voldoen aan jouw behoefte wat betreft prestaties, veiligheid en uptime. Soms hebben zij die kwaliteit zelfs geborgd in certificeringen, zoals ISO 9001 en 27001. Wanneer je oplossing groeit, wordt het steeds belangrijker om een stabiele applicatie aan de vele gebruikers te bieden. Waar in de start-up fase bugs nog zeldzaam, of snel verholpen waren, komen ze steeds vaker voor wanneer een applicatie groeit. Wanneer je ontwikkelaars teveel tijd besteden aan het oplossen van problemen, verdwijnt ook de ruimte om je applicatie verder door te ontwikkelen. Omdat veel ondernemers juist in deze groeifase hun oplossing verder willen ontwikkelen, is dit een reden om over te stappen.


Hogere capaciteit en ontwikkelsnelheid
De kwaliteitsslag kan ook zitten in meer flexibiliteit en schaalbaarheid. Heeft de nieuwe techpartner bijvoorbeeld meer capaciteit, in de vorm van meerdere of grotere teams, dan ben je in staat om je SaaS-applicatie gemakkelijker te laten groeien en sneller aan te passen aan veranderende behoeften. Zeker wanneer je een succesvolle oplossing met veel potentie in handen hebt, kan dit een doorslaggevende factor zijn in je besluit om te switchen.
Zekeren van continuïteit
Wanneer je SaaS oplossing steeds succesvoller wordt, wordt ook de belasting van jouw ontwikkelaars groter. Wellicht heb je de oplossing in huis ontwikkeld, of samen met één of enkele betrokken developers. Een goed uitgangspunt in de start-upfase. De basis is neergezet, maar nu de applicatie succesvol is, wordt ook het risico groter. Je komt nu in de opschaalfase. Waar leg je dan de verantwoordelijkheid voor de techniek van jouw oplossing? Welk risico loop je wanneer één van jouw developers stopt of geen tijd meer heeft?
Door de technische verantwoordelijkheid neer te leggen bij een grotere, stabiele en leveringszekere partner, krijg je zelf de ruimte om te focussen op sales en marketing van je oplossing. Iets wat in deze nieuwe fase van jouw SaaS-oplossing belangrijk is. Het voordeel is bovendien dat alle expertise op gebied van code, veiligheid, privacy en scope aanwezig is bij een goede techpartner. Hierdoor kom je samen sneller verder en ben je verzekerd van continuïteit van je oplossing.
De stappen om over te stappen.
Wanneer je als SaaS-ondernemer besluit over te stappen, wil je dat dit zorgvuldig gebeurt. En liefst maar één keer. Daarom is de selectie van een goede partner essentieel. Hier komen we later op terug. Eerst vertelt Arlon wat er technisch nodig is om een migratie succesvol te laten verlopen.

Code assessment
‘Het begint eigenlijk altijd met een code assessment van je huidige oplossing’, vertel Arlon. ‘De partij die jij op het oog hebt als ontwikkelpartner, zal toegang vragen tot de code van je huidige oplossing, om zo te kunnen beoordelen hoe deze in elkaar zit. Daarbij wordt naast de code ook gekeken naar bijvoorbeeld de werkwijze en hoe tests zijn ingericht. Is er een gestructureerde OAP-straat? Worden er consequent coding standaarden gebruikt? Wat wordt er gedekt door automatische tests? Door dit soort vragen te beantwoorden, kan jouw nieuwe techpartner een goede inschatting maken van de staat van de applicatie. Grofweg kunnen daar drie conclusies uit voortkomen.’
Optie 1: De huidige applicatie is afgeschreven.
‘Dit is de meest extreme uitkomst. De code is bijvoorbeeld verouderd, of is niet geschikt om op grotere schaal toe te passen. In zo’n geval zal de nieuwe partner een voorstel doen om te herbouwen. Dit kan in één keer, of modulair. In dat laatste geval koppel je nieuwe modules aan de oude applicatie, die stuk voor stuk delen van de oude applicatie vervangen. Zodra alle delen vervangen zijn, kun je voorgoed afscheid nemen van de oorspronkelijke versie van je SaaS en heb je een gloednieuwe, schaalbare oplossing in handen.’
Optie 2: Een goede basis, met achterstallig onderhoud
‘Soms blijkt bij een code assessment dat de basis van een applicatie goed is om op voort te bouwen, maar dat de huidige kwaliteit te laag is. Meestal komt dit omdat de oplossing jouw ontwikkelaars al een tijdje boven het hoofd gegroeid is en er te weinig tijd of capaciteit was om onderhoud te doen. In zo’n geval wordt meestal een plan opgesteld voor de doorontwikkeling van de huidige applicatie, naast een plan voor het inhalen van achterstallig onderhoud. Liefst zou een developer uiteraard eerst al het onderhoud doen, alvorens verder te bouwen, maar met de bedrijfsdoelstellingen in het achterhoofd is dat vaak niet realistisch. Samenwerking met de oude ontwikkelaars is hier een mogelijke keuze. Waar de nieuwe partij start met de ontwikkeling van nieuwe functies voor toekomstige groei, richt de oude partij zich dan nog puur op het onderhoud.’
Optie 3: De huidige oplossing is in goede staat
‘De mooiste uitkomst van een code assessment, is wanneer de oplossing in goede staat verkeert. In zo’n geval kan je snel vervolgstappen plannen en is er minimaal onderhoud nodig om verder te gaan met het uitbouwen, verbeteren en vergroten van de oplossing.’

Plan van aanpak en voorbereidingen
‘Wanneer de bevindingen op papier staan, is een plan van aanpak de volgende stap’, vertelt Arlon verder. ‘Hoe ga je de overstap maken? Welke code moet er worden herschreven? Welke risico’s zijn er en hoe ondervang je die? Door dit gezamenlijk op een rij te zetten, kan jouw nieuwe partner de werkzaamheden efficiënt inrichten en voor een soepele migratie van jouw SaaS-oplossing zorgen.
Zodra het plan staat, wordt met de voorbereidingen gestart. Het hangt van de hosting af of een applicatie ook fysiek verhuisd moet worden. Wanneer gebruik wordt gemaakt van cloud hosting via Kubernetes is fysieke migratie bijvoorbeeld niet altijd nodig, maar bij traditionele hosting is dit wel het geval en zal een nieuwe server ingericht moeten worden.
Binnen een OAP-omgeving wordt een testomgeving ingericht voor de applicatie. Deze omgeving dient ervoor om te testen of jouw SaaS overeind blijft na migratie. Hier kunnen gelijk de noodzakelijke aanpassingen gedaan worden om te zorgen dat jouw SaaS na de overstap normaal blijft functioneren. Wanneer alles klopt, wordt het overzetten naar de productieomgeving gepland, oftewel de livegang. Als alle voorbereidingen goed zijn getroffen, duurt dat omzetten vaak maar een kwartier, al is dat natuurlijk afhankelijk van de complexiteit en grootte van jouw SaaS.’
Wanneer is overstappen een probleem?
Er zijn een aantal zaken die het lastig kunnen maken om over te stappen, wanneer je deze niet vooraf goed hebt geregeld. Allereerst is er de juridische kant van SaaS, waarover ik voor Succes in Saas eerder sprak met advocaat en SaaS-ondernemer Maurits Geelkerken. Zorg vanaf de allereerste ontwikkeling dat je het intellectueel eigendom van je oplossing goed hebt vastgelegd, zodat je niet vastzit aan de ontwikkelaars die het gebouwd hebben. Door dit vast te leggen in de contracten met je ontwikkelaars, zorg je dat je de migratie-optie altijd openhoudt en niet klem komt te zitten in juridisch getouwtrek.
Een andere lastigheid kan het gebrek aan tijd of geld zijn. Hoe goed een nieuwe partner ook is: deze zal altijd tijd nodig hebben om jouw ambities en oplossing te leren kennen. Dit vraagt ook om een tijdsinvestering van jouw kant. Doorontwikkelen van een applicatie vraagt bovendien om een financiële investering. Deze betaalt zich op termijn uit, maar zonder eigen geld, of betrokken investeerders loop je vast. Wil je meer weten over het aantrekken van investeerders voor jouw SaaS, lees dan vooral het Succes in SaaS-artikel met investeerder Reinder Lubbers terug.
Tot slot is de code een mogelijke drempel om over te stappen, zo vertelt Arlon: ‘De programmeertaal bepaalt welke ontwikkelaars kunnen werken met jouw oplossing. Mijn advies is altijd om voor een universele taal te kiezen die veel gebruikt wordt in de wereld. Bijvoorbeeld PHP en Javascript. Veel programmeurs kennen deze talen en kunnen dus ook aan jouw oplossing werken. Maak hierin al bij de start een goede keuze. Uiteraard hoef je als SaaS-ondernemer de oplossing niet zelf te bouwen, maar door je goed te laten informeren over de standaarden die jouw developers gebruiken, weet je ook hoe flexibel je bent om andere developers in te schakelen voor de verdere ontwikkeling van jouw oplossing.’
Hoe selecteer je een goede techpartner?
De keuze voor een goede techpartner is een persoonlijke. Uiteraard dien je de partij te beoordelen op kwaliteit. Kunnen ze waarmaken wat jij wilt bereiken? Hoe zijn de referenties? Hebben ze ervaring met jouw type oplossing? Neem de tijd om dit goed te onderzoeken en beoordelen. Eventueel kan je een code assessment van jouw oplossing laten uitvoeren door meerdere partijen. Dit is meestal een losstaand proces, dat jou de gelegenheid geeft om alvast aan de manier van werken te proeven, zonder direct veel tijd of geld te moeten investeren.


Maar kwaliteit van het werk is niet het enige aspect. Een techpartner is namelijk ook een langdurige samenwerkingspartner. Jouw oplossing gaat een nieuwe fase in, waarbij jij zal focussen op de sales en de markt, terwijl je kan vertrouwen op je partner voor de techniek. Een goede klik met het team dat jouw oplossing gaat ontwikkelen is daarom van groot belang. Ga met ze in gesprek. Ontdek of je op één lijn zit. Praat daarbij ook met teamleden (developers) en niet alleen met een salesmanager. Deze zal na verloop van tijd op de achtergrond verdwijnen, dus de klik met jouw team is belangrijker. Let niet alleen op kwaliteit, maar zorg ook dat je een goed gevoel hebt bij jouw team. Dan bereik je vanzelf Succes in SaaS.

Vragen?
We staan voor je klaar om ze te beantwoorden.