Extern ontwikkelen

Wanneer een deel van uw applicatie door een extern bedrijf ontwikkeld wordt, gaat u een partnerschap aan waarbij u een significant deel van uw bedrijfscontinuïteit in de handen legt van een externe partij. Weet u bijvoorbeeld hoe uw software eruit ziet? Wat gebeurt er als de ontwikkelaars failliet gaan? Is de software eigenlijk wel van u? Ik betaal € 75,- per uur en de software is niet van mij? Wij hebben in het verleden projecten overgenomen waarbij de samenwerking met de ontwikkelaars stuk is gelopen. Als er geen duidelijke afspraken gemaakt zijn en u niet alle gegevens in uw bezit heeft, kan dit grote gevolgen hebben.

Om te voorkomen dat deze problemen ontstaan, maken wij duidelijke afspraken met onze klanten en zijn wij transparant in onze werkwijze en code. U weet precies waar u aan toe bent!

Eigendom

Op ontwikkelde software rust het auteursrecht van de softwaremaker. Dit geldt nog sterker voor software die expliciet voor u ontwikkeld is. Op het overdragen van een auteursrecht geldt volgens de Nederlandse wetgeving namelijk het schriftelijkheidsvereiste.

Wat houdt dit nu in? Als u geen schriftelijke overeenkomst heeft met de softwareontwikkelaars waarin expliciet vermeld staat dat u de eigenaar bent van de software, dan heeft deze partij het auteursrecht op de software. Dit betekent dus ook dat ze de software niet aan u hoeven over te dragen. Ook zijn zij vrij om de software te gebruiken in andere software pakketten.

Kijk voor meer informatie op bijvoorbeeld de website van Legal Dutch.

Certificaten en sleutels

Om een App in de store te plaatsen, moet deze ondertekend worden met een unieke sleutel. Alle updates moeten ook ondertekend worden met deze zelfde sleutel. Voor Android staat deze sleutel in een zogenaamde keystore, waarschijnlijk bij de ontwikkelaar op zijn computer. Het is van belang dat u al deze sleutels zelf ook opslaat. Op deze manier kunt u altijd uw app updaten mocht de ontwikkelende partij wegvallen. Wat is een keystore bestand?

Een Android applicatie wordt beheerd in de Google Play Console en een iOS applicatie in de ITunes store. Bent u de eigenaar van deze omgevingen? Wij zijn nu een aantal keer tegengekomen dat de App in de omgevingen van de ontwikkelende partij staat. Het beheer van deze Apps ligt dan buiten uw bereik. Uw ontwikkelaar kan in principe bepalen wat er met de App gebeurt.

De code

Kunt u bij de broncode? Heeft u een lokale backup van de code? Een software applicatie vertegenwoordigt in de meeste gevallen een significante investering in tijd en dus geld. Grote applicaties kunnen zeker wel 2000 of meer uur vertegenwoordigen. Wij merken regelmatig dat klanten geen idee hebben hoe de broncode eruit ziet en waar deze staat. Vaak weten ze ook niet of er backups gemaakt worden en waar deze opgeslagen worden. Omdat de investeringen in de software vaak zo groot zijn, speelt er hier een significant risico voor uw bedrijfscontinuïteit.

De code (deel 2)

In welke taal is uw applicatie ontwikkeld? Wordt deze regelmatig onderhouden? Of is de applicatie nog geschreven in Rails 2.0 of Asp? Een applicatie moet regelmatig onderhouden worden om bij te blijven met de huidige technieken. Er worden regelmatig veiligheid- issues gevonden in talen en raamwerken. Deze worden vaak alleen opgelost in nieuwere versies van de applicatie. Ook is het van belang dat u de code bekijkt of laat beoordelen door een andere ontwikkelaar. Zeker als u zelf geen kennis heeft van softwareontwikkeling is het belangrijk dat u de code laat bekijken. Goed opgezette code voldoet aan de industrie- of softwaretaalstandaarden en is makkelijk over te dragen aan een andere partij. Slecht opgezette code is dit niet. De kans is dan groot dat wanneer u het project aan een ander partij overdraagt deze u adviseren om alles opnieuw te doen.

Informatiebeveiliging

Wat gebeurt er nu als uw gegevens op straat komen te liggen? Wie is er verantwoordelijk voor dit lek? Het antwoord hierop is simpel. U bent hiervoor verantwoordelijk. U heeft zelfs de plicht om dit datalek te melden bij de Autoriteit persoonsgegevens (AP). Het is daarom belangrijk dat de software die u door een extern bedrijf laat ontwikkelen van een goede kwaliteit is. Bij een datalek zal de AP ragen welke maatregelen u heeft getroffen om het incident te voorkomen. Als u op dit moment pas in gesprek gaat met de ontwikkelende partij kan dit voor ongewenste verrassingen zorgen. Waarom moet ik verantwoording afleggen aan de Autoriteit persoonsgegevens? Ik maak de software toch niet?

Informatiebeveiliging is een hot item. Het is belangrijk dat u dit met de ontwikkelende partij heeft besproken. Zijn ze bijvoorbeeld ISO/IEC 27001 gecertificeerd? Wordt er een up-to-date versie van de softwaretaal gebruikt? Hoe gaat het bedrijf om met beveiligingsrisico's en bekende zwakke plekken in de gebruikte taal- of ontwikkelplatform? Wanneer u deze zaken pas meldt, nadat er een incident heeft plaatsgevonden, is dit te laat. De Autoriteit persoonsgegevens verwacht van u dat u verantwoord om gaat met uw en andermans data. U kunt dit uitbesteden, maar het blijft uw verantwoording.

De Bus factor

We moeten er natuurlijk niet aan denken, maar wat gebeurt er wanneer de persoon, die voor u ontwikkelt, overreden wordt door een bus? Of een positiever scenario, hij wint de lotto en stopt met werken. Is zijn kennis gedeeld binnen het bedrijf, kan een andere ontwikkelaar zijn werk meteen overnemen? Is zijn geleverde werk regelmatig bekeken en beoordeeld door een andere ontwikkelaar?

Hoe doen wij het dan?

Vanuit onze kernwaarden vinden wij het belangrijk dat we een langdurige relatie aangaan waarbij we allemaal profiteren. Wij vinden niet dat u bij ons moet blijven uit verplichting of omdat u niet anders kunt. Vanuit dit oogpunt hebben wij onderstaande punten geïmplementeerd om voor u de risico's te minimaliseren die het extern ontwikkelen van software met zich mee brengt. Om de risico's nog verder te beperken hebben wij ook een ISO/IEC 27001 certificaat en het bijbehorende informatiebeveiligingsbeleid. Wij denken dus vooraf mee over de risico's en hoe wij deze voor u kunnen minimaliseren.

  • Een overeenkomst waarin expliciet wordt vermeld dat u de eigenaar bent van de software.
  • ISO/IEC 27001 certificering om u te ontzorgen.
  • Toegang tot de broncode.
  • Toegang tot de servers waarop de applicatie staat.
  • Alle certificaten/sleutels/etc worden in uw naam aangevraagd.
  • Alle wijzigingen in de code zijn traceerbaar en voor u zichtbaar.
  • Alle code aanpassingen worden gedaan aan de hand van de door u bepaalde features. Ook zijn deze te herleiden naar diezelfde features.
  • Urenoverzicht met daarin gespecificeerd waaraan gewerkt is en hoeveel tijd dit heeft gekost.
  • Een ontwikkel-/ test- en productie-omgeving. Allemaal voor u benaderbaar.