Het is misschien één van mijn stokpaardjes, maar dat is vooral ook omdat ik te vaak zie dat teams worstelen met de uitdagingen van vandaag en te weinig naar de toekomst kijken. Robuuste, schaalbare en veilige applicaties maken, wie wil dat niet? Toch is dit een behoorlijke uitdaging. In dit artikel beschrijven wij belangrijke factoren waar wij op letten.
Strategie en roadmap
Als je software toekomstbestendig wilt maken, dan zul je toch een idee moeten hebben hoe die toekomst er uit moet zien. Ik zie veel teams die te snel willen en daardoor vastlopen. Daarmee bedoel ik dat er veel focus is voor features, en weinig ruimte om na te denken over strategie en lange termijn keuzes. En dan niet automatisch voor de laatste coole features willen gaan, maar echt kijken wat er nodig is. Ik heb lange tijd gehoopt dat ik de ideale architectuur kon vinden, maar eerlijk gezegd kom ik meer en meer tot de ontdekking dat er geen “silver bullet” is.
Het vinden van de juiste balans tussen te veel en te weinig abstractie in je software is ongelofelijk lastig. De praktijk is dat je “foute” keuzes zult gaan maken. Tegelijk pakt geen keuzes maken eigenlijk altijd fout uit. De enige weg die ik heb gevonden, is dat er ruimte is om met je teams tijd te besteden aan het verbeteren van de structuur van de software.
Software ontwikkelprocessen
Ik volg met veel plezier de diverse discussies over Agile werken op LinkedIn. Het voelt af en toe alsof je toeschouwer bent bij kooigevechten. Tegelijk is mijn ervaring dat het samenwerken als team ook niet vanzelf gaat. Er zit ongelofelijk veel waarde in Scrum, Kanban, extreme programming of wat je favoriete smaak ook is. In mijn beleving is het vooral belangrijk dat een team op een volwassen manier leert kijken naar de manier waarop ze hun werk doen en van daaruit altijd opzoek zijn naar hoe dingen beter kunnen.
Het ontwikkelteam
Het is een beetje een open deur, maar robuuste software maken vraagt nogal wat ervaring binnen een team. Goede technische kartrekkers zijn essentieel en helaas relatief zeldzaam. Een gezonde balans waar de juiste mix is in een team van verschillende mensen is enorm belangrijk om goed samen te kunnen werken.
Best practices en tooling
Er verschijnen continu nieuwe tools en frameworks. Je wilt zeker niet met alle nieuwe ontwikkelingen meegaan en dat vraagt dat je bewuste keuzes maakt. Voor mijn gevoel zijn er op het moment meer tools en packages beschikbaar dan vroeger (maar misschien is dat ook zo, ik ben er niet ingedoken). Alles negeren leidt tot een “not-made-here” syndroom, dus het is goed om tijd te hebben voor een stuk research.
Shift left
Het repareren van problemen in productie is een prijzige aangelegenheid. Hoe eerder in je proces je problemen ontdekt, hoe gemakkelijker het te fixen is. Of het nu over security, testen of operationele zaken gaat. Ik ben zelf fan van teams die de ruimte hebben om zich als Dev(Sec)Ops team te organiseren omdat het ook helpt om echte verantwoordelijkheid te nemen voor een applicatie. In mijn ervaring levert dat betere applicaties op.