Wie bewaakt de kwaliteit van uw software?

dinsdag 7 maart 2023

Nog niet zo lang geleden keken we voor de kwaliteit van software vooral naar de testers. Tegenwoordig is kwaliteit de “verantwoordelijkheid van het hele team”. Maar dat is te simpel, want gedeelde verantwoordelijkheid is geen verantwoordelijkheid. Van Product Owner tot CIO, iedereen kan zelf bijdragen aan softwarekwaliteit. Lees hier wie op welke wijze moet bijdragen aan de kwaliteit van software. Zo ontstaat een “Quality Culture” die steunt op samenwerking en communicatie.

Tegenwoordig kennen de agile teams drie basisrollen de Product owner, ontwikkelaars en scrum master. Deze drie rollen dragen als volgt bij aan kwaliteit van de software.

Product owner

Het begint allemaal bij de product owner. Die staat met het ene been in de business en met het andere in het software team. De PO geeft richting en besluit of kwaliteit voldoende is. De aanwezigheid van een business analist ontslaat de product owner niet van zijn verantwoordelijkheden. De product owner draagt op de volgende manier bij aan kwaliteit.

  • Brengt stabiele requirements en user stories naar het team (omdat requirements de basis vormen voor ontwikkelaar en tester).
  • Zorgt dat de requirements SMART en niet verwarrend zijn. Heeft een “brengplicht”; stelt zeker dat het team een diepgaand begrip heeft van de requirements.
  • Geeft een duidelijke ontwikkelkalender en prioritering. Is eigenaar van de Product Backlog (met een transparant denkproces). Houdt de teamleden op één lijn, neemt eventuele twijfels weg.
  • Test snel en regelmatig enkele kritieke workflows in de testomgeving en levert feedback aan het ontwikkelteam (ontwikkelaars en testers). Dit lijk triviaal maar gebeurt niet altijd.
  • Onderschrijft de Definition of Done. Geeft akkoord op de testresultaten en het totale sprintresultaat.

Scrum master

Dit is voor minder ervaren teams een essentiele rol. In de loop der tijd kunnen deze taken overgaan naar de andere teamleden. Naast de reguliere verantwoordelijkheden (facilitator en coach voor het team), moet de scrum master de volgende taken uitvoeren.

  • Draagt de kwaliteitsvisie van de organisatie. Zorgt dat de Definition of Done recht doet aan de kwaliteitseisen van de organisatie.
  • Zorgt dat elk individu in het team de QA-processen volgt (kwaliteit in het proces brengt kwaliteit in het product). Stelt deze processen waar nodig op.
  • Biedt een veilige werkomgeving en geeft ruimte voor experimenteren en falen.
  • Faciliteert een besluitvormingsproces waarbij iedereen in staat wordt gesteld om zijn mening te geven, zorgen te uiten en zijn rol te spelen.
  • Zorgt voor een lerende organisatie; waar zijn gebieden/functionaliteit met veel defecten? Wat zijn terugkerende problemen? Waar is meer of minder focus nodig?
  • Borgt effectieve triage met testers, ontwikkelaars en de product owner (de drie amigo’s). Baseert zich op de feiten.

Ontwikkelaar

De ontwikkelaar zorgt voor ‘Quality built in’ vanaf het begin. Hij begint pas bij voldoende duidelijkheid, denkt mee en begrijpt de bedrijfsprocessen en gebruikersbehoeften. Ook voert hij handmatige en automatische testen uit.

  • Zorgt dat alle onduidelijkheden en twijfels tijdig worden verholpen door de product owner. Heeft een haalplicht. Begrijpt de business en heeft domeinkennis.
  • Identificeert technische kansen én technische risico’s en impediments en maakt daarin afgewogen keuzes. Begint niet voordat er voldoende duidelijkheid en vertrouwen is.
  • Voert de impactanalyse op de juiste wijze uit; vooral bij onderhoud.
  • Volgt de coding standards en laat peer reviews uitvoeren.
  • Focust op unit testing maar doet ook integration testing. Test ook ten minste enkele business workflows in de testomgeving.

In theorie doet de ontwikkelaar alles wat je voor ‘Built in Quality’ software development nodig hebt (zogenaamde “T-shaped developer”). Dus analyse, bouw en testen. En in DevOps teams ook het beheer. Maar dat werkt alleen met zeer ervaren professionals en onder ideale condities. De CIO en specialistische rollen zoals tester en solution architect nog vaak nodig en worden expliciet benoemd in Scaled agile. Zij dragen op de volgende manier bij aan software kwaliteit.

CIO

De CIO moet de visie op kwaliteit bepalen en deze uitdragen. Hij zorgt hierbij dat kwaliteitsdoelstellingen passen bij de strategische richting van de organisatie. Ook controleert hij of de QA effectief is.

  • De CIO bepaalt de kwaliteitsvisie van de organisatie. Is het een product van zeer hoge kwaliteit met nul bugs en 99,99% beschikbaarheid, of een product dat experimenteren mogelijk maakt? Kwaliteit kan dubbelzinnig zijn en moet expliciet worden gemaakt. Hij stemt dit uiteraard af met de business managers.
  • Zorgt dat QA deel uitmaakt van de IT-processen van de organisatie en stelt middelen beschikbaar.
  • Communiceert het belang van softwarekwaliteit, voor klanten, partners, en vanuit regelgeving. Laat bewijs zien van betrokkenheid bij kwaliteit.
  • Beoordeelt de QA-effectiviteit met geplande intervallen.

Solution architect

De Solution architect is verantwoordelijk voor Niet-functionele requirements (NFR’s), deze zijn net zo belangrijk als user stories en epics. Denk hierbij aan responstijden, beschikbaarheid, gebruiksgemak en beveiliging. Wanneer een systeem niet aan de NFR’s voldoet, voldoet het niet aan de eisen van de markt en de gebruikers. In sommige gevallen kunnen zelfs juridische problemen met aansprakelijkheid en boetes ontstaan.

  • De Solution architect Is vanaf een vroeg stadium betrokken bij het project, brengt NFR’s in kaart in een effectieve dialoog met de business.
  • Zorgt dat NFR’s voor de start van de bouw volledig worden geformuleerd, als kwaliteitskenmerken per systeem of proces, werkt de NFR’s keer op keer bij als onderdeel van de Definition of Done. Dit wordt gedaan voor elke release, increment en iteratie.
  • Bepaalt de balans tussen kosten en NFR’s. Wanneer de NFR’s te hoog zijn gesteld, wordt de oplossing te duur. Wanneer ze te laag of onduidelijk worden gesteld, is er een groot risico op falen of herstelacties.
  • Brengt het belang van NFR’s over en bewaakt de implementatie van NFR’s op een incrementele en adaptieve manier. Daarbij is de Scrum master of projectmanager verantwoordelijk dat er tijdig wordt getest, en zal de product owner dit moeten goedkeuren.

Software tester

En tenslotte de software tester. Dit is het schaap met de vijf poten. In de ideale wereld kan een senior tester alle onderstaande verantwoordelijkheden invullen en is 95% van de testen geautomatiseerd. In de praktijk is dit vaak verdeeld over handmatige testers, testautomatiseerders en een testlead of test COE.

  • Dekt de volledige scope van de te testen applicatie. Werkt risico-gebaseerd en stelt de intensiteit en testtechniek af op het risico van een softwarefunctie of proces.
  • Voert alle benodigde testtechnieken uit, waaronder security en performance.
  • Gedraagt zich als een gebruiker van de app die wordt getest en valideert deze vanuit dat perspectief.
  • Denkt ook aan ongebruikelijke situaties zoals sluiten van een applicaties tijdens een bewerking, uitvallen van verbindingen, of onverwachte navigatie in een applicatie.
  • Automatiseert repetitieve scenario's om ervoor te zorgen dat handmatige testen zich concentreren op complexere en edge-scenario's. Maakt herbruikbare scripts. Zorgt voor samenhang tussen alle testfasen en minimaliseert de overlap.
  • Stelt standaarden op en maakt kaders voor automatisering-tools, bijvoorbeeld voor API’s en platformversies.

Alleen als iedereen zijn verantwoordelijk neemt, draagt software maximaal bij aan innovatievermogen en een competitief kostenniveau.

Valori helpt u hierbij. Wij kijken waar bij u de verantwoordelijkheden moeten liggen en helpen teams deze in te vullen. Met uiteindelijk heldere rollen, moderne processen en de beste passende tools. Meer weten: info@valori.com

Zeilen