View profile

Deadline gemist - business as usual

Jos van Essen
Jos van Essen
Eén van de verzoeken die kwam na mijn oproep om vooral onderwerpen in te zenden was het onderwerp ‘deadlines’. In de vorm van een vraag: waarom lukt het mijn team niet om iets op tijd op te leveren?
Nog los van de persoonlijke problemen die je kunt ervaren bij het halen van deadlines (hier de beste TED talk over dit onderwerp) wou ik in deze nieuwsbrief wat meer inzoomen waarom het lastig is om goede producten digitale producten binnen een gestelde tijd af te maken.
Om het allemaal een beetje levendig te maken heb ik een (oud) voorbeeldje van stal gehaald: CatBNB. Dit was ooit een mockup om iets heel anders.
(overigens, ik zag deze week PetBNB, iemand is er met dit idee vandoor gegaan, maar dan voor honden.)
(overigens2 - heb je onderwerpen die je besproken wil zien? Gewoon ‘reply’ drukken en antwoord sturen)

CatBNB mockup
CatBNB mockup
Enfin, als je naar dit screenshot kijkt dan snap je het idee misschien wel: jij gaat op vakantie en je wil je kat onderbrengen bij een betrouwbare oppas: CatBNB.
Cool, laten we dit project even bouwen. Ik heb een legertje van drie ontwikkelaars klaar staan om aan de gang te gaan. Voor het gemak heten ze Bert, Bart en Bort. Daar gaan we, ga je mee?
We hebben onszelf een week de tijd gegeven. Het is nu maandag.
Maandag
We beginnen met brainstormen over de functionaliteit en komen na een goeie 1,5 uur op een aantal zaken die we moeten hebben:
  • Kaart met daarop kattenliefhebbers die kunnen oppassen
  • Kattenoppassers-profielen
  • Een inlog voor de kattenoppassers om een profiel te maken
Ok, dat wordt een makkie. Na nog een kwartiertje bedenken we dat we alles vrij eenvoudig willen houden dus we kiezen voor de kaarten het geweldige Mapbox en voor de technologie React. Gewoon, omdat we daar nog nooit iets mee hebben gedaan en het cool lijkt om daar ervaring mee op te doen.
Maandagmiddag ontwikkelt een van ons de front-end en de schermen die er zijn. Er missen echter een paar schermen, want er zijn geen duidelijke formulieren om je als kattenliefhebber aan te melden. Tijd om de designer te vragen.
De ontwikkelaar die aan de backend is begonnen heeft bedacht dat dit het beste kan in Express, maar dat kan de rest van het team nog niet.
Dinsdag
Bart heeft griep - of corona - en blijft thuis. Hij kan dus niet verder met de backend. De designer heeft nog niet gereageerd en ook niet alle schermen voor de mobiele weergave blijken aanwezig. Bert wil een CSS framework gebruiken en gebruikt Tailwind. Dat heeft Bort echter nog nooit gebruikt, en hij vindt t nogal gedoe.
Woensdag
Bart is gelukkig negatief getest en kan aan de backend werken. Bert probeert de code verder om te zetten naar Tailwind en praat een conflictje met Bort uit over dit onderwerp. Bart kan het allemaal weinig schelen want hij heeft een heel gaaf backend idee. Het wordt allemaal schitterend en maandag kan ie live. We worden rijk 🤑
Donderdag
De designer heeft eindelijk gereageerd op de eerste vraag voor de onboarding-flow. Maar nu missen er ook velden die wel in de designs zitten. Hoe moeten we nu verder? Bort kan niet verder want hij zit te wachten op de backend van Bert. Iemand noemt de livegang van maandag. Het kan nog steeds toch, als we vrijdag alles afmaken?
Vrijdag
Er poppen nog wat dingetjes op: er moet een cookie-verklaring komen. En moeten er ook niet nog wat meet-codes op? De jongen die de marketing zou doen komt ook nog binnen met koffie waar een barista duidelijk tijd in heeft zitten: er moeten ook nog meer meetpixels op, anders kan de social campagne niet live. Bert, Bart en Bort beginnen te knarsetanden want dit is niet veel werk, maar wel irritant. Opgelucht drinken ze vrijdagmiddag een IPA van een brouwerij waar ik de naam niet van weet. Maandag kan ie live.
Maandag
Bert, Bart en Bort hebben de nieuwbrief van vorige week gelezen en willen de site live zetten met een deployment-straat. Maar dat blijkt nog knap ingewikkeld. En bovendien moeten er nu twee applicaties worden neergezet: de backend en de front-end. En daarbij heeft Bart ook bedacht dat ie nog tweaks wil doen aan de mobiele site. Het wordt een frustrerende dag waarbij er nog een aantal mensen komen testen en hele vreemde bugs vinden. Bijvoorbeeld door in browsers te testen die Bert Bart en Bort niet gebruiken (Edge). Of door de website op een oude laptop te bekijken. Het meisje in de keuken blijkt een iPhone SE te hebben. De testsite blijft bij haar wit. Vreemd. De designer komt langs om te kijken of zijn designs wel goed zijn en er blijken nog op meerdere plekken verkeerde lettertypes te staan. Bort heeft zijn vrouw gesproken: zij wil wel als katten-vrijwilliger op de site, maar niet op de kaart want dat vindt ze privacy-schendend. De rest van het team is het daar eigenlijk wel mee eens en ze breiden de radius van de kaart uit: voortaan kun je niet meer exact zien waar iemand woont. Rond 4 uur vraagt iemand hoe het zit met de livegang, maar Bert Bart en Bort zijn nog bezig met het slotje (het SSL certificaat) en ze snappen nog niet helemaal waarom de twee containers elkaar niet kunnen vinden in het cluster. Om 5 uur blijkt er nog hip bier van vrijdag te zijn. De deadline is gemist maar de drie vrienden hebben wel een leuke tijd gehad.
Deadlines missen we allemaal. Maar waarom gaat dat altijd zo?
Er zijn een aantal redenen waarom digitale projecten lastig te vangen zijn:
  • Voorbereiding: in dit geval is de voorbereiding met alle schermen niet goed doorgesproken en blijkt pas tijdens het ontwikkelen dat er informatie mist. Dit vertraagt. Het creatieve proces laat zich moelijker sturen dus dit is een voortdurend aandachtspunt.
  • Complexiteit: zoals je hierboven ziet komen er - zelfs voor een eenvoudige app - vrij veel zaken bij elkaar die allemaal lekker samen moeten gaan werken. Wanneer je deze zaken op een laat moment in t project samenbrengt maak je het gelijk heel spannend.
  • Om een deadline te halen moeten er veel dingen achter elkaar goed gaan, maar dit is met techniek lang niet altijd het geval. Zeker bij complexe problemen kan de voortgang soms een tijdje zoek zijn. Ook dit is deels met betere voorbereiding te tackelen zoals het verder uitwerken van user-stories.
  • Onvoorziene bugs en features. Doordat het team vrij laat in het proces nog belangrijke zaken moet fixen wordt de deadline steeds ingewikkelder
  • Nieuwe- en onbekende tech gebruiken. Veel ontwikkelaars hebben de onbedwingbare neiging om voor nieuwe projecten ook nieuwe - en soms exotische - tooling te gebruiken. Dit is eigenlijk nooit sneller dan de tools die ze al door en door kennen.
Er zijn allerlei methodieken uitgevonden om het proces van software ontwikkeling anders aan te pakken. Bekendste zijn agile en scrum. In deze vorm werk je in de vorm van sprints naar een nader te definiëren einddoel. Dit kan een goede methode zijn, maar is wat mij betreft zeker geen holy grail van productiviteit. Niet in de laatste plaats omdat je hiermee ook (creatieve) flexibiliteit gaat mislopen vanwege het proces.
Volgende nieuwsbrief gaan we het hebben over no-code tools. Er bestaan een heleboel tools die claimen het werk uit handen te nemen van programmeurs en jou in staat stellen zelf sites, of apps te bouwen. We kijken wat dit is, en hoe je het inzet.
Tot volgende week!
Did you enjoy this issue? Yes No
Jos van Essen
Jos van Essen

JSON, API's, webtokens, CI deployments, JavaScript, Tag Manager: we horen allemaal regelmatig termen voorbij komen waarvan we niet 100% zeker weten of we het ook daadwerkelijk begrijpt. Deze nieuwsbrief laat een licht schijnen op deze materie: tech voor op het web uitgelegd

In order to unsubscribe, click here.
If you were forwarded this newsletter and you like it, you can subscribe here.
Created with Revue by Twitter.