My First Project
Mijn eerste project. Echt mijn allereerste was het niet. Het was 1999 en mijn echte eerste IT project, waar ik het nu niet over ga hebben, was geen software development. Vandaar.
Mijn eerste echte project was een webshop. Ik was de IT ingerold met een intelligentietestje, had na een opleiding COBOL een hele tijd op de bank gezeten en had mezelf daar java aangeleerd omdat dat cool klonk.
Gewapend met deze ervaring was ik klaar voor een project met Intershop Enfinity. Het bestaat nog steeds, en ik weet niet hoe het nu werkt, maar destijds was het ahead of its time. Je bouwde kleine java modules (‘pipelets’), installeerde die op de server en dan klikte je die aan elkaar in pipelines, met logische elementen zoals if’s etc. Uiteindelijk resulteerde dat in een webpagina, maar wij deden in een team van een stuk of 5 de backend.
So far so good. Maar. Waar hadden we allemaal nog nooit van gehoord? Ja, ik bedoel letterlijk:
- version control. Dus: alles op een schijf. Ik weet nog dat Dennis in de trein zat met zijn laptop en de projectstructuur overhoop had gegooid omdat de trein schudde en de verkeerde dingen gebeurden in file-explorer.
- logging. Dennis kwam er op een dag mee. Ik had maar vaag een idee van wat hij bedoelde. Mm ja, een paar jaar hoorde ik over ‘monitoring’ en ik dacht: ‘is dat iets met televisie schermen?’ Ik bedoel maar.
- www.google.com Ook weer iets waar Dennis mee kwam…Veel geleerd van die jongen :)
- Internet. Dat wil zeggen: er was één PC waar je google, en andere dingen op kon raadplegen. Dat kon natuurlijk niet op je eigen computer.
Opa vertelt:
- Ik weet nog dat ik een half uurtje moest wachten op de download van java 1.4. Kopieren op een USB-stick en installeren maar.
- En die dag dat ik een discussie had met Boubkar, over SAX vs DOM. Nieuw in java 1.4. Hij was voor DOM, ik voor SAX. Hoop meer werk, maar achteraf denk ik goede keuze voor wat we moesten doen: een XML bestand van 100Mb inlezen. De productcatalogus: allemaal boeken. (Nee het was niet bij bol.com). Natuurlijk is DOM (met JAXB) daarna veel gangbaarder geworden, voor kleinere bestanden. Todat het allemaal JSON werd.
Wat minder goed ging.
Het was klassiek project management, een jongen, laten we hem Patrick noemen, die ging voor de Prince-II certificatie, vergezeld door een senior. Patrick had op bepaalde momenten letterlijk de neiging in mijn nek te hijgen met de vraag of het al af was. En op dat moment bleek mijn psychologie studie voor het eerst echt nuttig, omdat ik de symptomen van hyperventilatie herkende en ik mezelf kon bedaren.
Van de senior, laten we hem Winnie noemen (zijn echte naam), heb ik ook iets geleerd. Het was, zoals gezegd, klassiek project management, en dat ging zo van: ‘jij bent een goeie jongen, ga jij de betaalmodule maar bouwen’. Ik was trots. Voor het eerst integreren met een externe service. Whoei! Ik toog vrolijk aan de slag.
Weken later…
Ik kan me de details niet herinneren maar ik schijn gezegd te hebben, voordat ik drie weken op vakantie ging, dat het zou werken. Bij terugkomst een pittig gesprek. Het werkte intussen wel, maar iemand anders, Dennis! had het nog danig moeten aanpassen.
Ik heb me hier nog jaren voor geschaamd.
Maar nu denk ik: wat wisten we allemaal nog meer niet?? Teamwork, agile, refinements, unittests, integratie tests. Maar ook: Mentoring. Iedereen werkte zo’n beetje voor zichzelf. Overleg? Welnee, dat kost tijd! Een hoop branie: ‘Dat kan ik wel!’ Kun je een tijdje volhouden, tot het niet meer kan.
Ook afgeleerd: zeggen dat het ‘Bijna af’ is.
Waarom dit verhaal?
Ik weet niet of je kunt leren van andermans fouten, maar je eigen fouten zijn een mooi moment voor een persoonlijke retro.
Eén ding heb ik me die dag, na dat gesprek met Winnie voorgenomen: dit niet meer! Testen is belangrijk! En ja, er gaat heel soms nog wel wat mis (Sorry daarvoor!). Maar niet op die manier!
Wat is belangrijk? Een lijstje open deuren, maar echt waar:
- team verantwoordelijkheid
- test, test, test. Het gevoel herkennen dat je ergens niet helemaal zeker van bent en dan zorgen dat je het wordt.
- leren van slimme mensen en daarna kwistig strooien met je opgedane wijsheid
- infrastructuur: git, git, git (of iets anders). Ook voor je hobby project. Voor als undo niet meer werkt.
- ervaring: het kost tijd, en moeite.