App onderhoud: Beginners handleiding App Ontwikkeling

Hugo Melis

   

|

   

Laatste update 31-01-2023

   

|

   

Nederlands

Denk je eindelijk af te zijn van die veel vragende ontwikkelaar…. ben je nog niet klaar! Want, je app hangt nu in de lucht, maar die moet worden onderhouden. Ja, daar komt nog een hoop bij kijken. Er zijn een aantal taken die eens in de zoveel tijd of voortdurend zullen worden uitgevoerd. Sommige taken zullen worden uitgevoerd door de eigenaar van de app (jij dus) en sommige door de ontwikkelaar.

Deze verdeling van deze taken en overige zaken kunnen worden vastgelegd in een Service Level Agreement (SLA). Naast de taken die hier beschreven zijn, kun jij als eigenaar nog een flinke waslijst aan taken opstellen die je zelf zult moeten doen. Denk hierbij voornamelijk aan marketing (jep, dit is geen eenmalig dingetje) en meewerken aan de roadmap. Om je wat houvast te geven, hebben we een template opgezet voor een SLA en hebben we wat taken voor jou uitgewerkt. Daarnaast geven we je wat inzicht in mogelijke kosten die hieruit voort kunnen vloeien.


Dit is hoofdstuk 6 in de
Beginners handleiding voor App Ontwikkeling


Service Level Agreement (SLA) voor app

Wat is een Service Level Agreement (SLA) voor apps?

In de Service Level Agreement (SLA) beschrijf je voornamelijk de taak- en verantwoordelijkheidsverdeling. De mate van detailbeschrijving verschilt per persoon en per organisatie én hangt af van de complexiteit van je app. Omdat er best een aantal zaken zijn waar je aan moet denken bij het opstellen van een SLA, hebben we deze hieronder gedetailleerd toegelicht.

Wat zijn de onderdelen van een Service Level Agreement (SLA) voor apps?

Wat wordt in een SLA opgenomen? De voornaamste onderdelen van een SLA zijn:

  • Algemene informatie
    • Algemene scope van dienstverlening
    • Communicatiestructuur
    • Responsibilitymatrix
    • Service vensters
    • Contractperiode
  • Specificatie van ICT-dienstverlening
    • Systeembeschikbaarheid
    • Monitoren
    • Incidentmanagement
    • Probleemmanagement
    • Veranderingsmanagement
    • Continuïteitsmanagement
    • Onderhoudsmanagement
  • Overige onderdelen
    • Securitymanagement
    • Certificaatbeheer
    • Garanties
    • Serverruimten
    • Crisisbeheersing
    • Communicatiestructuur
    • Rapportage- en overlegstructuur
    • Wijze van betaling
    • Broncode
    • Berekening van tarieven

Service Level Agreement (SLA): Wat houdt ‘algemene informatie’ in?

Algemene scope van dienstverlening

Hier wordt beknopt beschreven welke diensten de ontwikkelaar zal gaan uitvoeren. Deze staan vervolgens in detail uitgewerkt bij ‘specificatie van dienstverlening’.

Communicatiestructuur

Hier staat schematisch weergegeven welke personen contact met elkaar zullen hebben (tussen jouw organisatie en de app ontwikkelaar). De voornaamste communicatieonderwerpen staan per contactpersoon beschreven. Hier staan ook de contactgegevens van de desbetreffende personen. Dit kan eruit zien zoals het voorbeeldschema hieronder:

Contactpersoon AContactpersoon B
(binnen bedrijf ontwikkelaar)
OnderwerpCommunicatiekanaal
EindgebruikersKlantenserviceProblemen met de appFAQ/chatbot/ telefonisch/whatsapp
Applicatiebeheerder (bedrijf eigenaar)Product ownerFunctionele en operationele vragenVideocall
Directie (bedrijf eigenaar)Hoofd ontwikkelaarStrategische vragen en veranderingen van (functies van) de appFace-to-face
Figuur 6.1 (communicatiestructuur SLA)

Responsibility matrix

In de responsibility matrix staan de specificaties van dienstverlening schematisch weergegeven, gekoppeld aan de persoon of het bedrijf die hier verantwoordelijk voor is.

Service vensters

Hier wordt beschreven wanneer de customer service of de app ontwikkelaar beschikbaar zijn voor dienstverlening. Daarnaast staat beschreven wanneer de app door de ontwikkelaar handmatig of automatisch wordt gemonitord.

Contractperiode

De periode waarover dit contract geldig zal zijn, met mogelijkheid tot verlenging.

Specificatie van dienstverlening

In de specificatie van dienstverlening staat gedetailleerd beschreven welke ICT- en overige gerelateerde diensten de ontwikkelaar zal uitvoeren. Onderdelen van deze diensten staan hieronder uiteengezet.

Wat zijn ICT-serviceprocessen, beschreven in een SLA?

Systeembeschikbaarheid

Hier wordt beschreven wanneer het systeem waarop de app draait, beschikbaar is. Zo wordt bijvoorbeeld beschreven dat het systeem vaak 24 uur, 7 dagen per week beschikbaar is, met uitzondering van noodzakelijk onderhoud.

Monitoren

Hier wordt beschreven hoe en wanneer alle onderdelen van de app in de gaten worden gehouden. Denk hierbij aan de servers, verbindingen, etcetera.

Incidentmanagement

Bij incidentmanagement wordt beschreven wie wat oplost en wanneer dit gebeurt. Dit wordt bepaald aan de hand van een classificatiematrix (kans x impact) met daaraan een indicatie van responstijd gekoppeld (in uren of dagen). Daarnaast staat beschreven wanneer incidenten moeten worden gecommuniceerd.

Probleemmanagement

Met probleem wordt bedoeld: de oorzaak van incidenten. Wanneer wordt geconstateerd dat een probleem zorgt voor een herhaaldelijk incident, worden deze problemen gebundeld en wordt gekeken wie dit kan oplossen en hoe dit kan worden gedaan.

Veranderingsmanagement

Bij ‘veranderingsmanagement’ wordt beschreven hoe de ontwikkelaar ervoor zorgt dat de wijzigingen die plaatsvinden, zo min mogelijk zullen zorgen voor verstoringen of afwijkingen in de app. Dit doet de ontwikkelaar door het toepassen van goede methoden en technieken tijdens de voorbereiding, bouw, test en implementatie van nieuwe of gewijzigde configuratie items (CI’s).

Ook binnen wijzigingsmanagement wordt Configuratie Management Database Beheer (CMDB) weergegeven. Deze houdt bij welke CI’s er zijn, hoe deze met elkaar verbonden zijn en welke wijzigingen er hebben plaatsgevonden.

Binnen ‘wijzigingen’ kan onderscheid worden gemaakt tussen:

  • Standaard wijzigingen (bijvoorbeeld wachtwoord wijzigingen)
  • Niet-standaard wijzigingen (bijvoorbeeld ongeplande updates)

Bovenstaande kan schematisch worden weergegeven zoals in het voorbeeld hieronder.

Standaard wijzigingen

PrioriteitOmschrijvingSoort taakDoorlooptijd
1xxx
2xxx
Figuur 6.2 (schema standaard wijzigingen)

Niet-standaard wijzigingen

PrioriteitOmschrijvingSoort taakReactietijd
Wijzigingsverzoek xx
Noodwijzigingsverzoek xx
Figuur 6.3 (schema niet-standaard wijzigingen)

Continuïteitsmanagement

Hier wordt beschreven hoe de ontwikkelaar ervoor zorgt dat de gebruikers en betrokkenen zoveel en zo goed mogelijk gebruik kunnen maken van de functies die de app biedt, ook bij belemmerende omstandigheden zoals het verbreken van contact met het netwerk.

Onderhoudsmanagement

Hier wordt beschreven wanneer de app ontwikkelaar diensten zal leveren op het gebied van onderhoud. Dit houdt in:

  • Updates
  • Bug fixes
  • Prestatieverbeteringen

Wat zijn overige onderdelen van een Service Level Agreement?

Securitymanagement

Bij securitymanagement wordt gedetailleerd beschreven hoe ervoor wordt gezorgd dat de beveiliging op orde is. Het is belangrijk dat hier wordt beschreven wie waarvoor verantwoordelijk is. Over het algemeen wordt dit beschreven in de verwerkingsovereenkomst (i.v.m. de AVG), welke hier ook te vinden is.

Op basis van deze overeenkomst is over het algemeen de eigenaar de verantwoordelijke (de controller), en de ontwikkelaar de verwerker (de processor). Dit betekent dat de eigenaar verantwoordelijk is voor de beveiliging van de app en de ontwikkelaar zorgt voor een goede uitvoering hiervan.

Naast de beveiliging zelf, kan hier worden vastgelegd dat de ontwikkelaar ondersteuning zal bieden wanneer de eigenaar verplichte audits moet aandragen.

Certificaatbeheer

Hier staat beschreven welke partij voor welke certificaten verantwoordelijk is, en wie hiervoor gemachtigd is.

Garanties

Hier staan garanties beschreven die de ontwikkelaar dient na te leven. Denk hierbij aan:

  • Hoelang mag er een storing zijn?
  • Op welke apparaten en welke versie van besturingssystemen moet de app altijd werken?
  • Aan welke snelheid moet de app voldoen? (Gegevensoverdracht, responstijd of verwerkingssnelheid)?
  • Wat is de veiligheidsgarantie?
  • Welke maatregelen zijn gegarandeerd bij verstoring van continuïteit?
  • Wat is de kwaliteit garantie/Quality Assurance (QA)?

Serverruimten/hosting

Hier wordt beschreven welke serverruimten worden gebruikt. Daarnaast wordt beschreven welke diensten worden uitgevoerd op het gebied van hosting, zoals databeheer, monitoren van serverprestaties, beveiligen van hostingomgeving en het toepassen van patches en updates.

Crisisbeheersing

Bij crisisbeheersing wordt beschreven hoe wordt omgegaan met een grootschalig incident. Zo wordt beschreven wie welke verantwoordelijkheden heeft welke protocollen/procedures worden toegepast.

Rapportage- en overlegstructuur

Bij de rapportagestructuur staat beschreven wat wanneer wordt gerapporteerd vanuit de ontwikkelaar naar de eigenaar. In de overlegstructuur staat vervolgens beschreven wanneer overleg en evaluatie plaatsvindt.

Broncode

Hier beschrijf je wie eigenaar is van de broncode van je app. Zorg ervoor dat jij dit zelf bent, zodat je deze kunt hergebruiken bij ontevredenheid of faillissement/stoppen van de ontwikkelaar.

Berekening van tarieven

Hier staat de berekening weergegeven van de kosten van het onderhoud van de app, uitgevoerd door de ontwikkelaar. Er is een onderscheid te maken tussen vaste kosten en variabele kosten.

  • Vaste kosten: Alle diensten om de beschreven garanties te kunnen hanteren/leveren.
  • Variabele kosten: Additionele kosten die afhankelijk zijn van de vraag van de klant. Bijvoorbeeld het uitvoeren van niet-standaard updates, of het toevoegen van functies.

De berekening van deze kosten kan natuurlijk worden bepaald door de ontwikkelaar zelf, en kan daarnaast worden onderhandeld met de klant. Wij hanteren over het algemeen de volgende opstelling:

Vaste kosten

Wij baseren de kosten voor vast onderhoud op het aantal uur dat we eraan besteden. De klant kan hierin een keuze maken tussen een ‘brons’, ‘zilver’ of ‘goud’ servicepakket. Afhankelijk van deze keuze, wordt het aantal uren bepaald die wij minimaal zullen besteden aan het onderhoud van de app, tegenover een percentage van het ontwikkelingsbudget.

Variabele kosten

Het is lastig om een berekening te geven van de variabele kosten, omdat deze afhankelijk zijn van een groot aantal factoren. Wij kunnen bijvoorbeeld op basis van een uitgewerkte roadmap een indicatie geven van de kosten om nieuwe functies te ontwikkelen, maar dit kan afwijken van de daadwerkelijke kosten. Deze zijn daarom niet vastgelegd in dit contract (wel kan een schatting worden gegeven).

Wijze van betaling

Hier wordt beschreven op welke voorwaarden de eigenaar aan de betalingsverplichting moet voldoen. Dit kan zijn:

  • De manier van betaling
  • De periode waarin de betaling wordt voldaan

Taken

Naast de taken die de app ontwikkelaar uitvoert om je app te onderhouden, zul je hier zelf ook tijd en moeite in moeten steken. De taken die jij voornamelijk zult gaan uitvoeren zijn:

  • Marketing/communicatie
  • Meewerken aan de eerder opgestelde roadmap

Wat zijn marketingtaken die ik moet uitvoeren na lancering van mijn app?

Zoals uitgebreid beschreven in hoofdstuk 3 (lancering), heb je vóór lancering van je app een marketingstrategie en marketing(communicatie)plan opgesteld. Deze is voor een deel al in gang gezet, maar er zijn veel taken die je juist ná lancering zult gaan uitvoeren. Dit is namelijk geen eenmalig ‘dingetje’.

In feiten ga je in deze fase je marketingcommunicatieplan uitvoeren. Dit doe je op basis van je (zoals in hoofdstuk 4 beschreven) marketingstrategie:

  • Doelgroep
  • Waardepropositie
  • Positionering
  • Doelstellingen
  • 4 P’s

Je marketingcommunicatieplan is simpel gezegd het plan dat je bedenkt om je doelstellingen te behalen, zoals beschreven in hoofdstuk 4 (lancering). Dit plan bestaat uit:

  • Budget
  • Marketingkanalen
  • Marketingmiddelen
  • Content

Bovenstaande onderdelen zijn vervolgens gekoppeld aan verantwoordelijkheden en KPI’s, en staan gepland in een vooraf opgestelde tijdlijn. Deze tijdlijn gaat over de periode wat valt onder ‘onderhoud’ van de app.

Dus ‘uitvoeren van marketingcommunicatieplan wat houdt dat in?

  • Doelstellingen nastreven (door het uitvoeren van onderstaande)
  • KPI’s analyseren (om te kijken of de doelstellingen worden nagestreefd)
  • Doelstellingen en strategie aanpassen en bijwerken (op basis van de analyses)
  • Content beheren, creëren, updaten en posten
  • Klantenservice
  • App Store Optimization (ASO)
  • Search Engine Optimization (SEO)
  • App Indexing

Doelstellingen en KPI’s

Het doel van een marketing/communicatieplan is om de doelstellingen te bereiken. Je doelstellingen worden bereikt door de marketinginspanningen die je uitvoert. Door het analyseren van je KPI’s kun je vervolgens checken of dit is gelukt of voorspellen of dit gaat lukken. Op basis hiervan kun je beslissingen maken op het gebied van marketing en kun je dus je marketing/communicatieplan en -strategie aanpassen.

Content

Er is een onderscheid dat gemaakt kan worden binnen het onderwerp ‘content’. Namelijk content dat hoort bij jouw app (waar het uiteindelijk allemaal om draait natuurlijk) en content dat wordt gebruikt op de marketing/communicatiekanalen.

App content

De app content moet worden bijgehouden en beheerd. Dit kan worden gedaan door een Content Management Systeem (CMS-systeem). In dit systeem kun je zelf gemakkelijk bestaande content bijwerken en nieuwe content toevoegen. Het is ook mogelijk dat een deel van je content automatisch wordt bijgehouden door de back-end van je app. Lees in hoofdstuk 4 (ontwikkeling) meer over de onderdelen van een app, zoals CMS-systemen en de back-end.

Marketing/communicatie content

In je marketing/communicatieplan heb je beschreven welke kanalen je zult gaan inzetten, wanneer je dit gaat doen en wie hiervoor verantwoordelijk is. Mogelijk heb je zelfs al een opzet gemaakt van de content die je in deze fase kunt gaan uitbreiden en posten. Dan is het nu aan jou om dit te gaan uitvoeren, zodat je deze daadwerkelijk kunt gaan posten op de marketing/communicatiekanalen. Dit kunnen kanalen zijn waarvan jij eigenaar bent (zoals je website) maar ook externe kanalen (zoals advertenties, of het nieuws). Lees meer uitgebreide tips over marketing/communicatiekanalen en -content in hoofdstuk 3 (lancering).

Klantenservice

Als het goed is gaat uiteindelijk jouw doelgroep gebruik maken van jouw app. Een aantal doelstellingen heb je op dit moment al behaald want je hebt er een paar binnen, bingo! Ondanks dat dit een goede vangst is, laten we deze gebruikers niet aan hun lot over. Het is belangrijk dat je, zoals beschreven in hoofdstuk 3 (lancering), beschikt over een goed klantcontact systeem. Zorg dat het duidelijk is op welke manier de gebruikers jou of je klantenservice medewerkers kunnen bereiken. Naast de communicatie die plaatsvindt tussen jou en de gebruikers, is het verstandig om een goede FAQ of knowledge te bieden. Zorg er daarom voor dat deze regelmatig wordt geüpdatet.

ASO, SEO en app indexing

ASO, SEO en APP indexing lijken veel op elkaar en hebben ook een aantal dezelfde uit-te-voeren taken. Echter zijn er wel degelijk verschillen (eigenlijk zit dit ‘m ook in de naam, maar goed: even voor de duidelijkheid):

  • ASO: Optimaliseren van de zoekscore van de app in de app stores, met als doel het verhogen van organische downloads.
  • SEO: Optimaliseren van de zoekscore van de website van de app op zoekmachines (zoals Google), met als doel meer organisch verkeer.
  • App Indexing: Optimaliseren van de zoekscore van de app op zoekmachines (zoals Google) met als doel meer organische downloads.

Ook al hebben deze drie zoekscore-verbeteraars een ander doel: ze versterken elkaar zeker.

Er zijn een aantal optimalisatietechnieken die voor alle drie de methoden hetzelfde zijn, namelijk:

  • Kwalitatieve content
  • Verzamelen van goede boordelingen en reviews
  • Meta: Metadata (ASO) en meta-tags (SEO en App Indexing)
  • Titel: Optimaliseren van app titel (ASO en App Indexing) en optimaliseren van website titel (SEO)
  • Optimaliseren van beschrijving en trefwoorden
  • Deeplinks

Naast bovenstaande zijn er wat extra optimalisatietechnieken die per methode kunnen worden ingezet. Dit zijn:

App Indexing

  • App Indexing API’s integreren (zoals Firebase App Indexing of Apple’s Core Spotlight)
  • URL-schema’s

SEO

  • Backlinks

ASO

  • Aantrekkelijk app icoon
  • Aanwezigheid van screenshots en video’s
  • Goede omschrijving van de appdoelen en -functies

Zorg dat je bovenstaande taken goed en uitgebreid uitvoert. Daarnaast kun je (zoals eerder beschreven) de prestaties in de gaten houden door KPI’s, waardoor je continue aanpassingen kunt doorvoeren om deze methoden verder te optimaliseren.

Welke taken komen kijken bij het uitvoeren van de opgestelde roadmap?

Tijdens de ontwerp- en ontwikkelingsfase zijn keuzes gemaakt over de ontwikkeling van de app. Lees hier meer over in hoofdstuk 3 (ontwerp) en hoofdstuk 4 (ontwikkeling). Op basis van deze keuzes is een roadmap opgesteld. Dit houdt in: een voorspelling van aanpassingen en toevoegingen van functies aan de app, na lancering.

Hoewel de ontwikkelaar de taak heeft om de app daadwerkelijk verder te ontwikkelen, speel jij in dit proces ook een rol. Jij houdt KPI’s in de gaten en bekijkt samen met de ontwikkelaar wat slimme keuzes zijn. Uiteindelijk zul jij de definitieve opdracht geven aan de ontwikkelaar.

Kosten

Wat zijn de kosten voor (het onderhoud van) een app?

Wanneer je denkt aan kosten van een app, denk je wellicht meteen aan de ontwikkeling/programmering van de app. Maar, zoals ook al gezien in hoofdstuk 3 (lancering), komen hier meer kosten bij kijken. Ook ná lancering zul je geld moeten uitgeven aan het onderhoud van de app. Om hier goed op voorbereid te zijn hebben we de meest voorkomende kosten hieronder voor je op een rijtje gezet:

  • App store kosten
  • Kosten voor Service Level Agreements (SLA) (lees hier meer over eerder in dit hoofdstuk)
  • Ontwikkelkosten
    • Updates
    • Nieuwe functies
  • Hostingskosten
  • Datakosten
  • Marketingkosten

Hoeveel kost een app in de app stores?

Zowel de Google Play Store als de App Store, vereisen betalingen voor lidmaatschap. Lidmaatschap van de App Store kost jaarlijks 99 dollar, en lidmaatschap van de Google Play Store kost eenmalig 25 dollar. Lees hierover meer in hoofdstuk 5 (lancering).

Wat zijn de kosten voor Service Level Agreements (SLA)?

Vóór de lancering van de app zal (zoals eerder beschreven in deze paragraaf) een SLA worden opgesteld. Hier worden onder andere taken en toegewezen verantwoordelijken beschreven, met betrekking tot het onderhoud van de app.

In deze SLA wordt onderscheid gemaakt tussen:

  • Vaste kosten
  • Variabele kosten

Vaste kosten zijn gebaseerd op een vooraf bepaald aantal uur dat de ontwikkelaar zal besteden aan standaard onderhoud van de app, om garanties te kunnen hanteren/leveren. De taken die hierbij horen staan beschreven in de SLA.

Variabele kosten zijn de extra kosten die worden gemaakt voor niet-standaard taken. Lees hier hieronder meer over, onder het kopje ‘ontwikkelingskosten’.

Wat zijn ontwikkelingskosten?

Onder ontwikkelingskosten wordt verstaan ‘kosten die worden gemaakt om niet-standaard onderhoud taken uit te voeren‘. De meest voorkomende taken die hierin voorkomen zijn:

  • Uitvoeren van updates
  • Toevoegen van nieuwe functies

De kosten die hierbij horen kunnen zeer uiteenlopen, mede afhankelijk van de complexiteit de taak. Deze kosten kunnen vooraf zijn vastgesteld, maar kunnen ook later worden besproken en bepaald.

Wat zijn hostingkosten?

Hostingkosten zijn kosten voor het hosten van de app op een server of cloudplatform. De hoogte van deze kosten is afhankelijk van de gekozen hostingmethode en de grootte van de app. Zoals je mogelijk al hebt gelezen in hoofdstuk 4 (ontwikkeling) kan er een onderscheid worden gemaakt tussen:

  • Hosten van eigen back-end (onderhouden van een back-end, gebouwd door de app ontwikkelaar)
  • Hosting provider (MBaaS) (gebruik maken van een, bij wijze van spreken, kant-en-klare back-end, zonder deze zelf te hoeven bouwen en onderhouden)

Wat zijn kosten voor een eigen back-end? De hostingskosten van een eigen back-end worden betaald aan de ontwikkelaar. De kosten zijn vaak eenmalig hoog, omdat de ontwikkelaar de back-end handmatig moet bouwen. Echter is dit vrijwel eenmalig en lopen de kosten niet op bij meer gebruikers van de app.

Wat zijn kosten voor een (M)BaaS? Wanneer gebruik wordt gemaakt van een MBaaS, wordt dit betaald aan de provider (service verlener). Deze betaling is een soort abonnementsvorm waarbij de kosten oplopen bij een hoger aantal gebruikers.

Vaak wordt gekozen om in eerste instantie gebruik te maken van een MBaaS, om vervolgens over te stappen naar een eigen back-end bij veel gebruikers. Op deze manier worden eerste instantie kosten bespaard. Daarnaast kan de investering van een eigen back-end op dat moment worden gedaan met een rustiger gevoel, omdat al bewezen is dat de app gebruikers genereert.

Wat zijn marketingkosten?

Om het marketing/communicatieplan uit te kunnen voeren zullen kosten worden gemaakt. Denk hierbij aan:

  • Kosten voor marketingkanalen (zoals advertenties)
  • Kosten voor marketingtools (zoals Google Analytics)
  • Inspanningskosten voor het uitvoeren van taken, in deze paragraaf beschreven onder het kopje ‘marketing’

Lees meer over marketing bij hoofdstuk 4 (lancering), of in deze paragraaf bij het kopje ‘marketing’.

Hugo Melis    

App Strateeg @ Glamorous Goat (of, in gewoon Nederlands, ik ga met klanten in gesprek over hun app idee en kom met strategieën om er samen de beste app van te maken).

Deel Artikel

Artikel geschreven door

Hugo Melis 

App Strateeg @ Glamorous Goat (of, in gewoon Nederlands, ik ga met klanten in gesprek over hun app idee en kom met strategieën om er samen de beste app van te maken). 

Vind je dit goede content? Kom voor ons schrijven…