Hoe wij agile software ontwikkelen
We volgen een agile softwareontwikkelingsproces dat in meer dan 17 jaar van het opleveren van enterprise-projecten is verfijnd. Dit artikel beschrijft hoe wij werken, van initiële planning tot productie-deployment.
Stories en bugfixes
Het bedrijf, meestal via één productmanager, is primair verantwoordelijk voor het schrijven van nieuwe stories. De inhoud moet voldoende zijn voor de auteur om later te herinneren waar het over ging wanneer om details wordt gevraagd. Zodra een story in de werkcyclus aan de beurt komt, werkt het team met de relevante stakeholders om vragen te stellen, concrete voorbeelden uit te werken en indien nodig een ontwerp te maken. Deze gesprekken verduidelijken de reden voor de functie en vormen een sterke motivatie voor het team.
Prioritering
De productmanager beheert de backlog en stelt prioriteiten. Het team levert schattingen van de inspanning om die beslissingen te ondersteunen, maar de productmanager bepaalt wat er als volgende wordt gebouwd. Dit houdt het team gefocust op bedrijfswaarde in plaats van technische voorkeur.
Iteraties
We werken in sprints van twee weken. Aan het begin van elke sprint bekijkt het team de bovenste items in de backlog, bevestigt de scope en committeert zich aan een set stories voor die iteratie. Aan het einde van elke sprint demonstreren we werkende software aan stakeholders. Er zijn geen verrassingen aan het einde van een lang project, omdat stakeholders elke twee weken voortgang zien.
Werk bijhouden
We gebruiken een Kanban-stijl bord om stories door hun fases te volgen: gereed, in uitvoering, in review, klaar. Stories worden pas als klaar gemarkeerd nadat ze codereview en geautomatiseerd testen hebben doorstaan. Dit houdt de definitie van klaar consistent en voorkomt dat halfafgemaakt werk zich opstapelt.
Codereview
Elke wijziging gaat door peer codereview voordat deze wordt samengevoegd. Codereview gaat niet alleen over het opsporen van bugs, hoewel het dat ook doet. Het gaat om kennisdeling, het handhaven van consistentie in de codebase en het vroegtijdig opsporen van ontwerpproblemen voordat ze kostbaar zijn om op te lossen.
Geautomatiseerd testen
We schrijven geautomatiseerde tests voor bedrijfslogica en integratiepunten. Het doel is niet 100% dekking om de dekking zelf. Het doel is een testset die het team het vertrouwen geeft om snel wijzigingen aan te brengen zonder bestaand gedrag te breken.
Deployment
We gebruiken CI-CD-pipelines zodat elke samenvoeging naar de hoofdbranch een geautomatiseerde build en deployment naar de ontwikkelomgeving activeert. Releases naar productie zijn een bewuste beslissing, geen handmatig proces. Dit vermindert het deploymentrisico en houdt omgevingen consistent.
Wat dit voor jou betekent
Je ziet aan het einde van elke sprint van twee weken werkende software. Je kunt prioriteiten wijzigen tussen sprints. Je weet precies wat er is opgeleverd en wat het heeft gekost. Er zijn geen lange periodes van stilte gevolgd door een grote onthulling.
Neem contact met ons op voor meer informatie over hoe wij werken, of bekijk onze agile DevOps automatiseringen service voor hoe we deze werkwijzen toepassen op DevOps en pipeline-werk.