TMS

Gherkin laat software engineer én klant samen software ontwikkelen

Tom Schenkenberg

Young creative business people at officeSoftware ontwikkel je samen, als software engineer én klant. Daarbij wordt een reeks vertalingen uitgevoerd van de business naar de uiteindelijke software. De kunst is om het aantal vertaalstappen te beperken, want bij iedere vertaling verlies je nuances. Dit is mogelijk door software engineers en opdrachtgevers dichter bij elkaar te brengen en ze daadwerkelijk samen te laten ontwikkelen. Met Gherkin kunnen ze daarbij dezelfde taal spreken en gedrag van software omschrijven (BDD). En nog intensiever samen bouwen.

De kern van softwareontwikkeling is het samenvoegen van domeinexpertise en software development. Een klant of product owner weet hoe zijn bedrijfsproces verloopt. De software engineer vertaalt dit naar werkende software. Traditioneel zorgt vooral de software engineer voor de belangrijke vertalingen. Maar als je een gemeenschappelijke taal spreekt, begrijpen beide ‘werelden’ elkaar bij voorbaat al een stuk beter.

Minder vertalen tussen model en programma

Om software een bedrijfsproces te laten ondersteunen, maak je een model dat dit proces beschrijft. Dat is de basis voor alle software. Bij softwareontwikkeling vertaal je het model naar een programmeertaal die de computer begrijpt. De voornaamste uitdaging voor een software engineer is om een klant te begrijpen. Daarvoor probeert de klant in zijn eigen taal – en met zijn eigen model van de werkelijkheid – uit te drukken wat de software engineer moet vertalen. Naar zijn eigen taal en model en naar de computer. 
Je kent vast het experiment waarbij meerdere mensen elkaar een simpele boodschap proberen door te geven. Al snel blijft er in de groep dan niets over van de oorspronkelijke boodschap. Bij softwareontwikkeling speelt dat ook. Hoe meer vertalingen van het ene model naar het andere, hoe groter de kans dat belangrijke details en context verloren gaan. Voor de kwaliteit en efficiency is het dus belangrijk om zo min mogelijk vertalingen te hoeven maken. Hoe doe je dat? 

Gherkin syntax omschrijft software gedrag (BDD)

De Gherkin syntax slaat een brug tussen de business en de software engineer. Het omschrijft gedrag van software (Behaviour Driven Development, ook wel BDD). Het zorgt ook dat de vertaalklus niet alleen op het bord van de software engineer komt, maar dat de businessexpert ook kan bijdragen aan dit proces. Dat is niet bedoeld om werk af te schuiven, maar om samen efficiënter tot een kwalitatief beter resultaat te komen. Vooral het gedrag van de applicatie wordt beschreven. De syntaxis wordt vaak omschreven als: gegeven – als – dan. Dat ziet er ongeveer zo uit:

gegeven  een gebruiker heeft de status “niet ingelogd”

als de gebruiker inlogt

dan krijgt de gebruiker zijn profielpagina te zien

Gherkin maakt het mogelijk om in gewone taal het gewenste gedrag van de applicatie te beschrijven, dat ook voor de business te begrijpen is. De software engineer gebruikt het als specificatie om software te ontwikkelen. Als bonus is het ook nog geschikt om geautomatiseerde tests mee uit te voeren. Naast een gemeenschappelijke taal, een ontwikkelspecificatie voor software engineers en scenario’s voor geautomatiseerd testen, levert het omschrijven met Gherkin ook nog een volledige set documentatie op over de ontwikkelde applicatie.

Gherkin in de praktijk

In de dagelijkse praktijk  van onze software engineers wordt Gherkin vooral nog gebruikt om gewenst gedrag van een applicatie te beschrijven en die door een klant te laten verifiëren. De mooiste en meest efficiënte toepassing zou zijn, als de klant zelf het gewenste gedrag van de applicatie beschrijft in Gherkin. In de praktijk gebeurt dat nog niet vaak. Het vereist een zekere mate van training en betrokkenheid van klanten bij het ontwikkelproces. Maar door het groeiend belang van software voor het succes van organisaties, verwacht ik dat die betrokkenheid groter wordt om het succes te maximaliseren. Het samen bouwen zullen we daardoor steeds meer gaan zien. De extra inspanningen zijn ook zeker de moeite waard.

Om deze slag te maken, moeten de werelden van de software engineer en de klant met zijn business, vooral dichter bij elkaar komen te staan. Ik zie dat als belangrijke voorwaarde voor de volledige digitale transformatie binnen organisaties. Gherkin zorgt daarbij voor de ontmoetingsplek met een gemeenschappelijke taal.

Meer weten?

Wil je meer weten over dit onderwerp voor jouw organisatie? Mail mij gerust direct vrijblijvend je vraag: tom@ibuildings.nl.