Uppnå bättre kvalitet med kompetens i agila utvecklingsteam
Under de senaste åren har jag noterat en märkbar skillnad i både kvalitet och användbarhet på leveranser i bolag som ser till att verksamhetspersoner är med i utvecklingsteamen. Bolag som inte prioriterar verksamhetens involvering i utvecklingen av nya tjänster och produkter håller inte alls samma höga kvalitet i sina leveranser. Som erfaren QA Manager kommer jag i denna artikel ge min syn på hur kvalitet upprätthålls, genom acceptanstestning och involvering av verksamhetsnära personer i utvecklingsteamet.
Acceptanstester
En viktig del av utvecklingsprocessen är verksamhetens acceptanstester. Det är viktigt att de som ska använda funktionen får ett eget tillfälle att se över funktionaliteten som utvecklats. Acceptanstester är främst en verksamhetsledd aktivitet, eftersom det är verksamhetens tillfälle att avgöra om det som utvecklats uppfyller kraven. Testerna säkerställer att eventuella effektmål nås och att den arbetsprocess de ska följa fungerar med det nya systemstödet. I de fall verksamheten önskar få stöttning i genomförandet av acceptanstester för att kunna nå sin fulla potential är det inte sällan en person med QA-erfarenhet som är med och stöttar.
Utvecklingsteam
Utvecklingsteamet genomför tester och andra kvalitetsskapande aktiviteter löpande under utvecklingens gång. Syftet och målet med kvalitetsarbetet är att genomlysa såväl funktion, som teknik och se till att allt fungerar och att användaren kan uppnå sina mål med hjälp av lösningen. Teamet kvalitetssäkrar alltså funktionen, tekniken och designen för att säkerställa att både ny och befintlig funktionalitet fungerar. Teamet är såklart mycket intresserade av hur funktionerna fungerar i ett verksamhetssammanhang, men det är inte teamet som ska göra den slutgiltiga accepten av leveransen. Verksamhetens uppgift är att testa flödet och helheten samt se till att funktionen är logisk och användbar i dess tänkta arbetsprocess.
Min erfarenhet är att utvecklingsteamen verkligen strävar mot den fjärde av de agila principerna, som innebär att verksamheten och utvecklingsteamet bör jobba tillsammans dagligen. I detta sammanhang betyder det att de som ska jobba i systemet i framtiden ska vara med och testa funktionerna löpande under projektets gång. Då kommer den viktiga verksamhetskunskapen in tidigt, vilket ger en möjlighet att upptäcka eventuella logiska fel som inte stödjer arbetsprocessen. För att få ut så mycket som möjligt av testerna är det bra om verksamheten använder sig av verklighetstrogen data.
Funktionsacceptanstester
Om verksamheten föreställer sig att det är en ”vanlig dag på jobbet” när de testar blir det lättare att sätta sig in i situationen och på så sätt upptäcka eventuella fel, där funktionen eller flödet inte stödjer deras arbete. Då verksamheten gör detta under tiden teamet utvecklar finns det goda möjligheter att åtgärda eller anpassa delar av systemet där funktionerna inte stödjer verksamheten i arbetsprocessen. All kod finns då nämligen färskt i minnet, på en eller flera utvecklare. Denna del av utvecklingsprocessen kallar jag för ”Funktionsacceptanstester”.
När det är dags för de mer ”traditionella” acceptanstesterna inför en ”go live” eller efter ett sprintslut, blir det sällan några större överraskningar, då varje funktion redan testats löpande. Acceptanstesterna blir då mer av en sista check för att säkerställa att helheten ser bra ut och är redo för leverans.
Det ställer förstås stora krav på verksamheten att personer som är med och genomför löpande tester bör vara personer som har kunskap om produkt/krav och har mandat att ta beslut. Likaledes bör de också ges den mängden tid det tar i anspråk för att kunna genomföra detta viktiga kvalitetsarbete.
Att ha en eller flera verksamhetsnära personer med i teamet ser jag som en klar framgångsfaktor i strävan efter att kontinuerligt få ut funktioner som ger den nytta som efterfrågas. Det är vad jag kallar för kvalitet. Vad anser du?