Kwaliteit was belangrijk, is belangrijk en zal altijd belangrijk blijven. Een open deur die we gebruiken om onze goede intenties ten opzichte van kwaliteit te uiten. Maar hoe we dat concreet maken en handvatten en inhoud geven, blijft een uitdaging, ook binnen de it. Elke ontwikkelmethode of procesmodel dat gekozen wordt, geeft aandacht aan kwaliteit. Een pijler is het testen.
Binnen waterval was het duidelijk: er zijn opeenvolgende fasen en elke fase had één of meerdere rollen die daarin de belangrijkste activiteiten uitvoeren. Denk aan ontwerp door een business-analist, bouwen door een ontwikkelaar, testen door een tester en uiteindelijk het releasen door de release-manager. Het was duidelijk wie waarvoor verantwoordelijk was. Bij de overgang naar agile is dat onduidelijker geworden. Alle activiteiten zijn op één hoop gegooid en het team als geheel is verantwoordelijk voor de berg aan activiteiten.
Dit brengt uitdagingen aan het licht. Het begint met de rol die iedereen heeft binnen het team: iedereen is developer. Door de semantiek van dit woord lijkt het of opeens iedereen in het team een programmeur is, want een developer is toch een ontwikkelaar en dat is toch een programmeur?
Waar het hier om gaat, is dat het hele team verantwoordelijk is voor ontwikkeling en dat betekent alle aspecten daarvan. Softwareontwikkeling is een deelgebied van de informatica dat zich bezighoudt met alle aspecten van het bouwen van complexe maar betrouwbare software tot informatiesystemen. Het is een vakgebied dat zich bezighoudt met methodes om een vraag of probleem in de werkelijkheid om te zetten naar een computerprogramma.
Belangrijke zinsnede hierin is ‘alle aspecten’. Dus nadrukkelijk niet alleen programmeren. Het daadwerkelijk programmeren beslaat slechts dertig tot vijftig procent van de tijd. Wat gebeurt er dan de rest van de tijd? Dit is tijd voor ontwerpen, testen en releasen. Dus ook al heet iedereen ‘developer’, de andere activiteiten zullen nog steeds uitgevoerd moeten worden en nemen samen een groter deel van ontwikkeling dan programmeren in beslag.
Binnen het team zal daarom een verdeling van de activiteiten moeten plaatsvinden, zowel naar tijd, activiteiten als personen. Er zal nog steeds een tester nodig zijn of in elk geval iemand met kennis van en ervaring met testen en kwaliteit. Deze persoon of personen zullen moeten definiëren wat er binnen een agile team nodig is aan activiteiten die bijdragen aan de gewenste kwaliteit van de op te leveren producten en diensten. En er zal nog steeds bepaald moeten worden hoeveel tijd dit gaat kosten. Testen en kwaliteit zijn een essentieel onderdeel van agile werken.
Semantiek van het woord
De volgende uitdaging zit in de de verdergaande vraag naar automatisering binnen agile en devops. Ook hier zit de semantiek van het woord developer in de weg. Iedereen is developer en dus kunnen we alles automatiseren.
Om dit te ondersteunen, worden er pipelines gebouwd. Deze pipelines bestaan uit opeenvolgende repeterende activiteiten die nodig zijn om code naar bruikbare software om te vormen. Uiteraard, bij voorkeur, geautomatiseerd als een lopende band in een autofabriek die alleen door robots wordt bemand.
Code met kleine wijzigingen gaat door deze pipeline en resulteert, als alles goed gaat, in gewijzigde bruikbare software. Dit kan voor veel onderdelen van de code prima werken. Denk aan code die zegt: 1+1=2. Dit is duidelijk en ook als test goed te automatiseren.
Maar hoe ga je om met gebruiksvriendelijkheid van een geheel systeem of de toegankelijkheid van het systeem voor mensen met een fysieke beperking? Of met integratie met andere systemen buiten de eigen organisatie? Daarnaast worden systemen elke dag complexer waardoor creativiteit in testen en het buiten-de-gebaande-paden-denken essentiëler worden. Deze testen zijn vaak beperkt te automatiseren door flexibiliteit en complexiteit, en vergen daarom alle aandacht van een specialist, de tester. Dus door testen te automatiseren, krijgt de tester meer tijd voor het uitvoeren van complexere testen al dan niet ondersteund door tooling. Maar een tester doet nog veel meer.
Auteurs: Bart Knaack, Iris Pinkster, Bilal Sabuncu, Veerle Verhagen, Francis Welbie