Wilt u automatisch updaten?
Als een productsoftwarebedrijf begint, heeft het meestal een paar klanten bij wie het product draait.
Het bedrijf is druk met het ontwerpen van het product, het uitbreiden van het klantenbestand, met simpelweg het overleven van die eerste spannende jaren. Het bedrijf zal verder groeien en nieuwe versies van het product uitbrengen en installeren bij nieuwe klanten. Plotseling vraagt een oude klant of ook hij de nieuwste mogelijkheden in zijn installatie kan krijgen. Er doemen dan een paar onschuldig uitziende problemen op. De database van de oude klant moet geconverteerd worden, de klantspecifieke aanpassingen moeten bruikbaar zijn op de nieuwe versie en de klant moet zonder al te veel moeite weer snel verder kunnen met de nieuwe versie (misschien zelfs wel zonder onderbreking). Een support engineer zal even langskomen om de nieuwe versie te installeren en alle problemen zijn, na uitvoerig testen, opgelost.
Een productsoftwarebedrijf ontdekt de aard van de problemen pas als er grotere hoeveelheden klanten voor de deur staan. Het is dan namelijk niet meer rendabel naar elke klant een medewerker te sturen die ook andere dingen kan doen, zoals productontwikkeling, klantenondersteuning op afstand en productverkoop. Dit is meestal het punt waarop besloten wordt een simpele updateapplicatie aan te schaffen, zoals WiseInstall, AppDeploy of InstallShield.
Bij het doorvoeren van een updatetool blijkt hoeveel informatie er eigenlijk nodig is en hoe weinig informatie er binnen het bedrijf aanwezig is over de verschillende versies van de producten. Oude datamodelversies zijn onvindbaar, er zijn geen potentiële problemen bekend, het is niet bekend welke versies bij welke klanten draaien et cetera. Deze kennis is echter essentieel om ervoor te zorgen dat klanten probleemloos kunnen updaten. Een recente benchmarkenquête heeft aangetoond dat gemiddeld 9 procent van de updates problemen oplevert voor klanten (zie kader). Een productsoftwarebedrijf ondervindt problemen op de volgende vier gebieden: releasen, uitleveren, installeren en ‘activeren en gebruiken’.
Bij het releasen (1) van een softwareproduct moet het bedrijf in staat zijn een nieuwe versie van zijn product uit te leveren aan zijn klanten. Dat betekent dat het bedrijf zijn planning op orde moet hebben, de release op tijd intern en extern moet aankondigen, regelmatig updates moet uitbrengen en rekening moet houden met versies van afhankelijke producten van derde partijen. Een probleem ontstaat wanneer een bedrijf software uitlevert met een virus. Andere problemen die veel voorkomen zijn planningsproblemen (Windows Vista), het uitbrengen van incomplete producten en het uitlekken van illegale versies.
Bij het uitleveren (2) van een softwareproduct moet het bedrijf in staat zijn een nieuwe versie van zijn product bij de klant af te leveren zonder problemen. Dit gaat vaak mis door slechte verbindingen, een trage klantorganisatie of slechte communicatie met klanten over updates en nieuwe producten.
Bij het installeren (3) van een nieuw product of een update van een product is de omgeving van de klant bepalend voor het succes van de installatie of update. Zo zijn er de triviale eisen van genoeg harddiskruimte, de juiste hardware en het juiste operatingsysteem. Het wordt complexer als er ook eisen zijn aan beschikbare libraries, meegeleverde libraries (de DLL Hell voor MS Windows) en componenten van derden. Als laatste is de geïnstalleerde versie van het product belangrijk: kan men de instellingen en gegevens klakkeloos overnemen of is in de tussentijd het datamodel geëvolueerd? Veelvoorkomende problemen zijn missende taalbestanden (waardoor men alleen codes ziet als “[NoCDinDriveError]”), niet opstartende programma’s (component X kon niet gevonden worden) en het niet meer compatibel zijn van de bestanden (denk aan Microsoft Office 2003 vs Office 2007).
Als een klant de software wil activeren en gebruiken (4), ontstaan er ook nieuwe problemen. Soms zijn de licentiebeschermingsmechanismen te streng waardoor de klant het product niet kan gebruiken. Daarnaast is het lang niet altijd duidelijk welke kennis van een klantconfiguratie doorgespeeld kan en mag worden voor foutenanalyse. Als laatste weten productsoftwarebedrijven meestal niet hoe hun producten gebruikt worden. Hierbij zijn automatische loggingfunctionaliteiten en automatische foutenrapporten nodig om het bedrijf te informeren over het klantgebruik van de software. De vraag blijft natuurlijk wel welke kennis klanten met softwarebedrijven willen delen.
Om problemen tegen te gaan, moet een productsoftwarebedrijf de kennis over producten en klanten expliciet beheren. Als een bedrijf precies weet wat bij de klant draait, welke componenten de klant wil en bekende potentiële problemen kan afvangen, kunnen updates geautomatiseerd worden en tegen lage kosten worden uitgevoerd (soms zelfs at runtime, wat te vergelijken is met het verbeteren van een automotor tijdens het rijden). Aan de andere kant is er een gebrek aan goede procesbeschrijvingen en ondersteunende tools en applicaties. Dit dwingt bedrijven dan weer om zelf oplossingen te bouwen, die vaak veel meer geld kosten dan nodig.
Om groeiende productsoftwarebedrijven niet tegen een plafond te laten lopen als de kosten per klant te hoog worden, zijn oplossingen en voorlichting nodig. Er moeten tools worden ontwikkeld om de Nederlandse productsoftwaremarkt te ondersteunen (zie kader). Op het gebied van productuitlevering moeten productsoftwarebedrijven zich bewust worden van de problemen die ze in de toekomst kunnen tegenkomen en van de oplossingen die al voorhanden zijn. Alleen als op deze vlakken stevig aan de weg wordt getimmerd, kan de Nederlandse productsoftware-industrie haar goede internationale positie behouden en versterken.