Van idee naar lancering: zo verbeteren we Moneybird continu!

Altijd blijven verbeteren, dat is één van de motto's van Moneybird. Binnen het team doen we dat onder andere via kennissessies. Mijn collega Linda van het supportteam stelde een leuke vraag vandaag, in het kader van kennisdeling vertel ik hier graag iets meer over.

Welke weg legt onze software af vanaf de eerste regel code tot aan live-gang?

Om ons product Moneybird continu te blijven verbeteren, hebben we een mooi proces ingericht. Dit proces zorgt ervoor dat we dagelijks verbeteringen kunnen lanceren. Maar nog belangrijker: het proces zorgt er ook voor dat verbeteringen onze bestaande dienstverlening niet in de weg zit.

Van idee naar code #

Binnen Moneybird werken 3 teams met software engineers en interaction designers continu aan verbeteringen aan Moneybird. Na het doen van onderzoeken, het maken van prototypes en het bepalen van de aanpak, kunnen we beginnen met het schrijven van code. In deze fase is het heel belangrijk om het project slim op te delen. Een paar belangrijke uitgangspunten:

  • We willen kleine, iteratieve verbeteringen doorvoeren. Geen big bang met grote gevolgen, maar kleine stappen waar we de gevolgen van kunnen overzien.
  • Kleine stappen zijn ook beter te reviewen voor collega's.
  • We streven er naar om elke stap zo snel mogelijk te lanceren om ervaring op te doen, dus de wijziging moet weinig afhankelijkheden hebben.

Op basis van deze indeling, gaan we aan de slag om code te schrijven en functionaliteiten te bouwen.

Kwaliteit van de code #

Zodra de volgende verbetering af is, leggen we deze ter controle bij onze collega's neer. Elke wijziging aan de code van Moneybird, willen we namelijk uitgebreid testen en controleren. Tijdens deze review in Phabricator (opent in nieuw tabblad) zal de collega onder andere letten op:

  • De leesbaarheid van de code
  • Is de logica correct en getest?
  • Zijn de tests compleet en dekkend voor alle scenario's?
  • Zijn de wijzigingen bruikbaar voor de eindgebruiker?
  • Zijn er risico's voor de veiligheid?

Tegelijkertijd zal een automatisch proces via Buildkite (opent in nieuw tabblad) alle tests uitvoeren. De bedoeling is dat de wijzigingen geen bestaande functionaliteit kapot maken en onze tests garanderen dat. Dit heet ook wel continuous integration.

De code live testen #

De volgende stap gaat ons nog meer zekerheid geven dat de verbeteringen correct werken, gebruiksvriendelijk zijn en geen onbedoelde bijeffecten hebben. We lanceren de code in onze applicatie, maar laten deze alleen zien binnen de administraties van Moneybird teamleden via een feature flag. Dat geeft iedereen in ons team de mogelijkheid om te testen, een mening te vormen en feedback te geven aan het projectteam.

We lanceren dagelijks meerdere keren een nieuwe versie van Moneybird. Onze gebruikers merken hier niets van. Dit heet ook wel continuous deployment.

Door de kleine stappen die we willen maken, kan een projectteam soms al na een paar weken hun eerste code online zetten. Dit is heel prettig, omdat ze zich daar geen zorgen meer over hoeven te maken en alvast feedback kunnen gaan verzamelen.

Lancering! #

Tegen het einde van een project, aan het einde van een kwartaal, gaan we de verbeteringen lanceren naar alle gebruikers. Omdat de code al enige tijd draait, is dat geen spannende handeling. We hoeven alleen nog aan te geven dat de functionaliteit nu voor iedereen beschikbaar is en een product update te schrijven.

Verder lezen?

Misschien vind je dit ook interessant.