Als softwareontwikkelaar zien we dat de problemen van onze klanten vaak zijn terug te voeren naar een aantal veelgemaakte fouten. In deze blog zetten we op een rij welke dat zijn, en hoe je ze kunt voorkomen
1. Er is nog geen (getest) proces waar je de automatisering op kan baseren.
Als je gaat proberen een systeem te bouwen dat niet is gebaseerd is op een proces dat al uitvoerig is getest, dan ga je merken dat je een systeem krijgt dat niet aansluit op de wensen van de gebruiker. Want het systeem zal waarschijnlijk niet aansluiten op wat er werkelijk gebeurt op de werkvloer.
Neem als voorbeeld een systeem voor een bibliotheek die de voorraad van boeken bijhoudt. Het probleem van dit systeem? De werkelijk voorraad komt vaak niet overeen met wat het systeem aangeeft. Dat komt bijvoorbeeld omdat niet alle boeken worden uitgeleend, maar in plaats daarvan weggegeven, of mensen raken het kwijt. Op het moment dat er in dit systeem geen mogelijkheid is om dit in te voeren, matcht het niet meer met de werkelijkheid.
Zou je dit soort problemen willen voorkomen, dan moet je het proces eerst goed testen door om te beginnen de vraag te stellen: waar gaan onze boeken heen? Dit kun je bijvoorbeeld een week lang uitgebreid op papier bijhouden, of in Excel. Of doe gedachte-experimenten waarmee je bedenkt wat er allemaal met een boek kan gebeuren op het moment dat het de bibliotheek verlaat. Pas als je je proces heel precies in kaart hebt gebracht, kun je bedenken wat het systeem allemaal nodig heeft.
2. Je wil alles in één keer automatiseren
Dit is vaak het gevolg van wishful thinking. Men wil een supersysteem bouwen, ziet de voordelen ervan helemaal voor zich. Maar de werkelijkheid van zo’n supersysteem is vaak anders. Om weer het boekensysteem voor de bibliotheek als voorbeeld te nemen: stel, je wil een systeem maken waarbij je niet alleen bijhoudt welke boeken worden uitgeleend, maar waarmee tegelijk een bibliotheeklid een boek kan lenen, het lid een pasje ontvangt, facturen worden verzonden, enzovoort. Eigenlijk alles wat je in een bibliotheek zou kunnen automatiseren. Maar het probleem is, als je dit allemaal er in een keer in probeert te proppen, dan ga je ook veel fouten in het systeem tegenkomen. Er komen ongetwijfeld dingen voorbij waar je niet op had geanticipeerd. Bijvoorbeeld het punt dat boeken soms kwijtraken, en niet worden ingeleverd. Zoiets realiseer je je misschien pas gaandeweg. Maar als er op dat moment al een enorm systeem is gebouwd, is het een stuk moeilijker om het hierop aan te passen.
Begin daarom klein. In het geval van de bibliotheek bijvoorbeeld gewoon met een simpele lijst met boeken, en een logboek waarin iedere actie die mogelijk is voor een boek wordt bijgehouden. Van hieruit kun je stap voor stap de functies toevoegen die je nodig hebt.
3. Je wil te veel toeters en bellen
Met toeters en bellen hebben we het over gadgets, de nieuwste technologieën. Van een autogarage hebben wij eens de vraag gehad om een offerte voor een automatisch systeem dat kentekens scant. In dat systeem zou dan bijvoorbeeld elke ‘diagnose’ die gesteld wordt aangeklikt kunnen worden het systeem, waarbij je vervolgens met een druk op de knop de nodige onderdelen zou kunnen bestellen. Klinkt handig, en heel high-tech. Maar in werkelijkheid zullen de automonteurs daar niet op zitten te wachten. Elke klant is immers weer anders. En auto’s met hetzelfde probleem hebben misschien niet dezelfde behandeling nodig. Ook met zo’n systeem zou je een mismatch krijgen met de werkelijkheid. Vraag jezelf altijd af: hebben de toeters en bellen een toegevoegde waarde? En zullen ze het gewenste effect hebben?
4. Je gaat zelf programmeurs aannemen zonder enige ervaring in het leiden van softwareprojecten
Dit is een veelgemaakte fout waar we recent een blog aan hebben gewijd. Programmeurs zijn geen ontwikkelaars, designers en project managers in één. Je kunt niet van programmeurs verwachten dat ze eigenhandig jouw hele softwareproject realiseren. Jij moet kunnen inzien wat, en wie, er nodig is om het uiteindelijke doel te realiseren. Zonder ervaring in het leiden van softwareprojecten lukt dat vaak niet.
5. Je onderschat hoeveel werk het is
Een softwareproject wordt vaak last minute gestart, vaak omdat men het uitstelt. Vaak omdat in eerste instantie geen prioriteit is. En niet iets is wat ‘pijn’ doet. Het is een latente behoefte. Maar op het moment dat de behoefte aan die software dringend wordt, is het al te laat.
Mensen onderschatten dan vaak hoe lang het duurt, denken dat ze in twee weken een heel systeem gebouwd hebben. De werkelijkheid valt vaak tegen. En omdat de hoeveelheid werk wordt onderschat, vallen de kosten vaak ook nog tegen. Verken het idee van het project daarom al ver voordat het dringend wordt. Neem een plan of idee al direct serieus, ook al lijkt het voor een verre toekomst, want het kan jouw bedrijf laten slagen of falen.