
Navelstaren
Het jochie is nu lead developer. – Wat betekent dat? Ik heb minder met code, tegenwoordig. Ik codeer nog wel, natuurlijk, elke dag. Maar mijn focus heeft zich verlegd van het produceren van zo goed mogelijke code, naar het produceren van een team dat zo goed mogelijke code produceert. Mijn rol is: ervoor zorgen dat iedereen op dezelfde lijn zit. De lijn is: wat ik in de loop der jaren heb geleerd wat de lijn zou moeten zijn.
Mijmering
Toen ik jong was / was er een baard, / hij zat in meetings / continu. / Nu ben ik hem.
Pairing en theoriebouwen
Waarom zou je aan pair programming doen? Dan doen twee mensen het werk van één, dat is toch vreselijk inefficiënt! – Die zienswijze veronderstelt dat het doel van programmeren is om een werkend programma te produceren. Maar een werkend programma maakt nog geen goede software. Goede software is soft: eenvoudig aan te passen naar veranderende eisen en wensen.
Theoriebouwen (een schets)
Wat is programmeren? Een voor de hand liggend antwoord is: een programma schrijven. Wie tekst oplevert die door een compiler kan worden omgezet naar machine-instructies, die kunnen worden uitgevoerd om een bepaald doel te bereiken – die programmeert. Programmeren wordt in deze schets gekenmerkt door het opgeleverde eindproduct: het programma.
Voorbeeldarchitectuur
Een collega in een ander team is bezig een oude applicatie te vernieuwen. Hij vroeg een andere senior en ik om zijn opzetje voor een nieuwe structuur te reviewen. Zelf had ik, merkte ik, geen sterke meningen over de code – of liever: de implementatie. Zit er een goed vangnet omheen? Dan geloof ik het wel. Ik had tegen het eind van de sessie één vraag: “Is de complexiteit van de code in verhouding met de complexiteit van het probleem?”
Vijf dynamieken van een goed functionerend team
Uit een onderzoek van Google uit 2015 blijken de volgende vijf dynamieken het meest bij te dragen aan een goed functionerend team: (1) psychologische veiligheid; (2) betrouwbaarheid; (3) structuur en helderheid; (4) betekenis, en (5) impact.
Bug, hoge prio (een retrospectief)
Ze zeggen, elk probleem is ook een communicatieprobleem. Dit is een communicatieprobleem. De ontwikkelaar communiceert niet. De tester communiceert niet. De ops’er communiceert niet. De enige die communiceert is de ontwikkelaar die, vanuit het bevindingenoverleg, trouw de bugs meldt. – Maar: hoe communiceert de teamleider?
Duplicatie en veranderlijkheid
Toen ik met vakantie ging, kreeg onze junior, met hulp van een externe partij, de taak onze infrastructuur te herstructureren naar gestandaardiseerde componenten. Hij deed dat eerst voor onze acceptatieomgeving. Daarna was het tijd voor de productieomgeving. De vraag was nu: dupliceren we de Bicep-bestanden van onze acceptatieomgeving, of parameteriseren we die bestanden zodat ze voor beide omgevingen werken?