Kings Code: Science

Afhankelijk van uw softwareleverancier;

Hoe voorkomt u
een vendor lock-in?

Als het gaat over bedrijfskritische software wilt u als ondernemer of verantwoordelijke zoveel mogelijk risico’s voorkomen. Wat gebeurt er bijvoorbeeld als uw softwareleverancier niet meer voor u kan werken? Moet u dan opnieuw beginnen met de ontwikkelingen en investeringen? Zijn er andere bedrijven die de software willen en kunnen overnemen? In onderstaand artikel leg ik uit hoe u dit soort risico’s zo klein mogelijk kunt houden.

Hoe voorkomt u een vendor lock-in Wat is het?

Het volledig afhankelijk zijn van een softwareleverancier wordt vendor lock-in genoemd. In feite wordt u gegijzeld door uw eigen softwareleverancier en worden uw keuzes een stuk beperkter. Overstappen naar een andere leverancier wordt een lang en kostbaar proces. Een prijs opvragen bij een concurrent is dan ook geen optie meer. Voor veel bedrijven is de afhankelijkheid zó groot geworden dat haar voortbestaan zelfs afhangt van de samenwerking met de softwareleverancier. Hoe zorgt u er dan voor dat software relatief eenvoudig door anderen kan worden overgenomen? Nou, dat is eigenlijk best eenvoudig met de onderstaande tips.

Intellectueel eigendom

Eigenlijk is het vreemd dat dit nog geregeld moet worden in de softwarewereld. U huurt een ontwikkelaar in, u betaalt deze per uur, maar wat hij ontwikkeld heeft blijft zijn eigendom. Helaas is dit juridisch gezien écht zo. Zorg er dus altijd voor dat uw softwareleverancier contractueel het intellectueel eigendom overdraagt. Zo heeft u zelf altijd het recht op de ontwikkelde code. In sommige gevallen zal een ontwikkelaar hier niet mee akkoord gaan. Delen van de applicatie kunnen namelijk generiek voor meerdere klanten zijn ontwikkeld. Maar ook dat is vrij eenvoudig te ondervangen met een licentieovereenkomst. Zo kunt u afspreken dat specifieke delen wél gebruikt en uitgebreid mogen worden, maar niet mogen worden gedupliceerd. Omdat we geen voorstander zijn van de wetgeving rondom intellectueel eigendom als het gaat om software-op-maat, dragen we deze standaard over na betaling van de facturen. Dat is wel zo eerlijk.

Toegang

Ok, dus het eigendom is geregeld. Maar wat als de ontwikkelaar niet meewerkt, of niet mee kan werken? Dan mág u wel bij de code, maar kunt u er niet bij. Met een juridische procedure is dat vast en zeker te regelen. Maar dan zijn we een paar maanden verder en blijft de ontwikkeling van de applicatie stilliggen.

Data

De data van een webapplicatie wordt vaak opgeslagen in een database. Zonder deze data zal de applicatie waarschijnlijk niet werken. Probeer ervoor te zorgen dat u hier toegang tot heeft. Zelf heeft u daar niet zoveel aan, maar een andere ontwikkelaar kan hier zeker mee uit de voeten. Is dit geen optie, dan is het aan te raden om een exportmogelijkheid te laten ontwikkelen. Met deze export moet de volledige dataset uit de applicatie gedownload kunnen worden.

Broncode

Het opvragen van de inloggegevens van de hostingomgeving is al een mooie start. Als zich iets voordoet dan kunt u in ieder geval bij de huidige stand van de applicatie. Maar er is nog een betere optie. Iedere serieuze ontwikkelaar werkt met een versiebeheersysteem zoals Git. Elke wijziging wordt in dit systeem herstel- en traceerbaar vastgelegd. Probeer daarom met de ontwikkelaar af te spreken dat deze ontwikkelt op een versiebeheersysteem waar u zelf de controle over hebt en waar de ontwikkelaar toegang tot krijgt. Daarmee is het eenvoudig om de toegang van de ene ontwikkelaar te stoppen en een andere ontwikkelaar toe te laten.

Code kwaliteit

Regelmatig krijgen we de vraag of we een bestaande applicatie kunnen overnemen en verder ontwikkelen. Mijn eerste vraag is dan of we de broncode mogen inzien. Vaak blijkt de code dan alleen logisch in elkaar te zitten voor de oorspronkelijke ontwikkelaar. Anderen zullen de code of logica helemaal niet begrijpen. Helaas merken we dat veel ontwikkelaars lak hebben aan standaarden. De PHP Framework Interop Group heeft een uitgebreide set standaarden opgesteld hoe software overdraagbaar én veilig moet worden geprogrammeerd. Het gebruiken van deze standaarden is niet alleen interessant om vendor lock-in tegen te gaan, maar ook om met meerdere personen aan dezelfde applicatie te kunnen werken. De code is direct leesbaar en een stuk begrijpelijker.

Maar met standaarden alleen zijn we er nog niet. Moderne applicaties worden vandaag de dag gemaakt met herbruikbare componenten uit open source frameworks. Deze frameworks en haar componenten worden wereldwijd door honderden zo niet duizenden professionals getest en beoordeeld. Wordt er door de gemeenschap enig veiligheidsrisico vastgesteld dan wordt dit direct wereldwijd gedeeld en worden oplossingen publiek gepubliceerd.

Ondanks alle voordelen uit de vorige alinea zien we dat veel ontwikkelaars er nog steeds voor kiezen om eigen software te ontwikkelen dat dient als basis voor hun oplossingen. Ambitieus, maar tegelijkertijd ook erg onverstandig omdat een andere ontwikkelaar er niet mee zal kunnen werken. Maar vooral onverstandig, omdat er geen gebruik wordt gemaakt van collectieve kennis over veiligheidsrisico’s. Om veiligheidsrisico te voorkomen is het verstandig om een partij te zoeken die ontwikkelt met een industriestandaard framework zoals Laravel, Symfony of Yii. Dat heeft vele voordelen waaronder veiligheid en overdraagbaarheid. Een ontwikkelaar die ervaring heeft met een van deze frameworks zal er daarnaast direct aan de slag kunnen. Dus kortom, dwing af dat een ontwikkelaar zich houdt aan standaarden en gebruik maakt van een populair framework.

Kennis

In al die jaren dat u met een ontwikkelaar of softwarebedrijf heeft gewerkt, is er een enorme hoeveelheid aan kennis in het hoofd van de ontwikkelaar ontstaan. Dat is moeilijk over te dragen, vooral als de ontwikkelaar buiten beeld is. Zorg daarom voor goede documentatie! Niet alleen van de techniek, maar ook van alle processen en beslissingen die in het verleden zijn genomen. Het kost tijd om dit te maken en veel ontwikkelaars zitten hier niet op te wachten. Toch maakt het de overdraagbaarheid van de applicatie vele malen beter.

En wij dan?

Voor sommige softwareleveranciers zal vendor lock-in onderdeel uitmaken van het verdienmodel. Maar bij Kings Code zitten we daar niet op te wachten. Ontwikkelen is pas echt leuk wanneer je dat samen met een tevreden klant kunt doen. Het is voor mijn team en mezelf dan ook de uitdaging dit zo te houden! Al onze applicaties worden volgens de richtlijnen uit dit artikel ontwikkeld. De enige reden dat onze klanten steeds weer terugkomen is omdat ze dat graag willen. En dát is onze missie!