aannames

De woestijn en het bos

Bevinden we ons in een woestijn of in een bos? – Het antwoord op die vraag zal ons handelen bepalen. Woestijnnomaden begrijpen bosbewoners niet, en andersom. Woestijnnomaden wuiven afwerend: “Dat kan nooit!” Bosbewoners krabben aan hun hoofd: “Waarom zou je het ooit zo aanpakken?” Maar het kan wél, en het is logisch om het zó te doen, als de omgeving er naar is. Dat moeten we begrijpen van elkaar.

Een tester of praten

Wij hebben geen tester in ons team. Niet omdat ik niet van testers hou (ik hou van testers), maar omdat het verkeerd gebruik van een tester dysfunctionele patronen in een team verbergt en in stand houdt.

Koppeling buiten code om

Koppeling is: wanneer een wijziging in het ene systeem een wijziging in het andere systeem noodzakelijk maakt. Wanneer softwareontwikkelaars het over koppeling hebben, dan bedoelen we meestal: in code aan elkaar gekoppelde systemen. Maar twee systemen kunnen ook zuiver functioneel aan elkaar gekoppeld zijn, zonder ook maar één regel code te hoeven delen.

De bouwmetafoor gaat niet eens op voor de bouw

De bouw anno nu heeft veel ideeën uit agile en lean geïncorporeerd en heeft daarom tegenwoordig – grappig genoeg – meer weg van softwareontwikkeling dan je zou verwachten. Dus niet alleen softwareontwikkeling is niet als het bouwen van een huis – zelfs het bouwen van een huis blijkt niet als het bouwen van een huis!

Softwareontwikkeling is een popcultuur (maar hoeft dat niet te zijn)

Het Agile manifest belooft betere manieren van softwareontwikkeling mogelijk te maken door de nadruk te leggen op “individuals and interactions” boven “processes and tools”. Maar wat is Agile ontwikkeling verworden, ruim twintig jaar na het schrijven van dat manifest? – Scrum + Jira. Oftewel: een process en een tool.

Teveel tegelijk

“We zijn met teveel dingen tegelijk bezig,” constateert een ontwikkelaar tijdens de Retrospective. Die is met dit bezig, die met dat; hij met zus en zij met zo. Er is geen eenheid, iedereen werkt op zijn eigen eiland. – Het is een terugkerend thema. Waar ligt dat aan?

Drielagencargocult

Goede abstracties worden niet bedacht. Goede abstracties worden ontdekt. Ze vinden pas het levenslicht als reactie op een concrete vraag van de codebase. Softwareontwikkeling is in wezen een empirische aangelegenheid.

Waarom testen testers?

Tijdens een Retrospective gaf onze tester aan dat hij omkwam in het werk. Eigenlijk verbaasde niemand dat. Ons team bestaat uit vijf ontwikkelaars en één tester, en die ene tester is verantwoordelijk voor het schrijven van geautomatiseerde tests voor de code van al die vijf ontwikkelaars. Je kunt op je vingers natellen dat die situatie niet houdbaar is. – Dus wat te doen?