De vijf succesfactoren van Behavior Driven Development

De vijf succesfactoren van Behavior Driven Development

Behavior Driven Development (BDD) is een manier van ontwikkelen die steeds meer populariteit wint. BDD is simpel gezegd een meer specifieke manier van test driven development. Bij deze agile werkwijze worden non-developers vanaf moment één betrokken bij het design en development proces. Het is een manier van ontwikkelen die het “outside in” principe hanteert, zo worden applicaties ontwikkeld op basis van de user story. Het is een uitstekende manier om de kloof tussen de business en de techniek te dichten. Het stelt mensen zonder technische kennis (maar met veel kennis van de business en het beoogde eindresultaat) in staat om vanaf het begin te communiceren met developers. Zo wordt de uiteindelijke doorlooptijd van projecten korter en worden er meer applicaties opgeleverd waar de business ook echt wat aan heeft.

Het verschil tussen BDD en traditioneel development

Het grote verschil tussen traditioneel development en BDD? Applicaties worden ontworpen door eerst het gewenste gedrag van een applicatie te beschrijven. Dit wordt beschreven vanuit verschillende hoeken. Niet alleen developers, maar ook andere stakeholders binnen de business en in sommige gevallen zelfs eindgebruikers helpen bij deze beschrijving.

Denk hierbij bijvoorbeeld aan een app om sportlessen te boeken. Vanuit de development kant wordt er dan vooral gekeken hoe het lesrooster gekoppeld kan worden aan een boekingsmethode. De marketingafdeling wil echter ook de mogelijkheid tot up- en cross-selling toevoegen. Hierbij kun je denken aan rittenkaarten, sportdrankjes of soms zelfs hele maaltijden die aan het eind van een sportles beschikbaar zijn voor de deelnemers. Dan zijn er ook nog de gebruikers die graag in één boeking meerdere lessen willen boeken, een push melding willen ontvangen een uur voor de les begint en de mogelijkheid om de les na het boeken direct in hun agenda te zetten. Tijdens een traditionele developmentcyclus worden deze functionaliteiten vaak pas toegevoegd na verschillende feedbackrondes. Dit heeft soms tot gevolg dat een applicatie helemaal opnieuw ontworpen moet worden. Door dit soort “gewenst gedrag” direct in de scope mee te nemen, voorkom je dat soort problemen.

Maar hoe zet je nu een goed BDD-project op? Wij vroegen onze developers naar hun best practices en kwamen tot deze vijf universele succesfactoren. Your milliage may vary, maar houdt deze vijf punten zeker in de gaten wanneer je interesse hebt in een BDD-project binnen jouw team.

Succesfactor 1: Start met één team en één user story

Wanneer je wilt beginnen met BDD is het belangrijk om het simpel te houden. Begin met één klein team en een user story om gewend te raken aan deze nieuwe manier van werken. Zorg er ook voor dat de druk op deployment van deze feature niet te hoog is. Je wil deze periode echt kunnen gebruiken om alles “volgens het boekje” te doen en ervan te leren als team. Zo kun je in de toekomst grotere projecten sneller oppakken.

Succesfactor 2: Zorg voor volledige support vanuit de organisatie

Alle begin is moeilijk, dat geldt ook voor BDD. Daarom is het belangrijk om support vanuit de hele organisatie te krijgen. Zeker in het begin kan het soms wat langer duren dan de oude vertrouwde manier van development. Maar de druk niet te hoog opvoeren is nu juist een van de succesfactoren. Daarom zijn ongeduldige stakeholders het laatste wat je wilt. Begin dus klein en zorg dat management het belang inziet van langzaam deze nieuwe werkwijze implementeren. Verkoop dus ook zeker de voordelen van deze vorm van development.  Beter communicatie tussen stakeholders en alleen ontwikkelen wat er echt nodig is (en dus op lange termijn goedkoper) zijn echte selling points.

Succfesfactor 3: Investeer in goede infrastructuur

Het laatste wat je wilt is dat je team wordt tegengehouden door infrastructuur. Zorg dat iedereen bij alle tools kan en dat het geen gehannes wordt met pay-per-licence constructies. Daarnaast is het belangrijk dat iedereen voldoende rechten heeft om te ontwikkelen en dat je infrastructuur krachtig genoeg is om test driven development te ondersteunen.

Succesfactor 4: Vertrouw op mensen met ervaring

Wanneer je iets nieuws gaat proberen binnen een team is het altijd verstandig om iemand met ervaring in huis te halen. Of het nu een Product Owner, developer of tester is, iemand die al eens door een paar BDD cycles is gegaan heeft waarde voor je team. Ze kunnen je behoeden voor veel voorkomende fouten en het team op het juiste moment het vertrouwen geven dat het uiteindelijk allemaal wel goed komt.

Succesfactor 5: Start vanuit een stevig fundament en houd de backlog netjes

Een BDD-project op grote legacy code is vaak gedoemd om te mislukken. Zeker als deze code niet gemaakt is voor automatisch testen is het vragen om problemen. Ook is het bij een BDD-project belangrijk dat de backlog niet de overhand neemt. Daarom is het belangrijk dat de Product Owner deze goed bewaakt.

Je BDD-project is natuurlijk van een stuk meer afhankelijk dan deze vijf factoren, maar deze in gedachten houden zorgt er in ieder geval voor dat jullie klaar zijn voor een vliegende start! Heb jij zelf al eerder een of meerdere BDD cycles doorlopen en mist er een gouden tip? Laat het ons weten!

 

Dit artikel is geschreven door Daniëlle Tertaas.