söndag 23 februari 2014

Talar på NFI Testforum

Maral och jag talar på NFI Testforum 9 april Hilton Slussen....

Sluta testa och förbättra kvalitén
Dagens integrerade IT-lösningar utgör ett helt ekosystem som fungerar och interagerar på ett ofta oförutsägbart sätt. Testledaren har själv inte möjlighet att leda och kontrollera alla testaktiviteter i komplexa utvecklingsorganisationer och därför måste QA-ansvaret fördelas. Istället för direktstyrning av testarbetet blir då testledarens uppgift att inspirera ALLA att ta ansvar och bidra till de övergripande kvalitetsmålen.

Maral Biniazan är testledare på Omegapoint i Stockholm och brinner för testledaren roll inom modern IT-utveckling. Maral har en bakgrund som testare i agila team och har främst arbetat inom medicinteknik.

Örjan Bjermert jobbar som testare/testledare på konsultföretaget Omegapoint i Stockholm. Han föredrar agil utveckling och kontextdrivna testtekniker eftersom han gillar att jobba nära utvecklare och känner att han då kan bidra så mycket mer än med traditionell testning.

lördag 1 februari 2014

Testledning 3.0 - Att leda självorganiserade testeam i en komplex miljö

Följande artikel är skriven av mig och Maral Biniazan och finns med i Testzonen-boken "Fel fel fel", http://www.felfelfel.se/ .

Testledning 3.0 - Att leda självorganiserade testteam i en komplex miljö

Maral Biniazan & Örjan Bjermert, Omegapoint

Våra IT-system står under ständig utveckling och interagerar med varandra på ett svåröverskådligt sätt. Testarbetet blir allt mer utmanande och en effekt av detta är att våra testmetoder och testtekniker utvecklas hela tiden. Vår förmåga att leda testarbetet har inte utvecklats i samma takt vilket leder till att vi med traditionell testledning saknar metoder att leda effektivt i denna vår komplexa verklighet. Management 3.0 av Jurgen Apello är en etablerad modell för att leda självorganiserade utvecklingsteam. Management 3.0 visar hur det traditionella ledarskapet behöver utvecklas i transformativ och situationsanpassad riktning. På liknande sätt behöver testledaren ändra sitt ledarskap och därför vill vi skapa Testledning 3.0.

Traditionell testledning lägger stor vikt vid planering, styrning, kontroll, uppföljning och rapportering. Testarbetet sker enligt en förutbestäm plan, inspirerad av standarder eller vedertagna “sanningar”. Genom att delegera uppgifter och inhämta resultat enligt denna förutbestämda plan utövar testledaren ett traditionellt ledarskap, vilket vi väljer att kalla Testledning 1.0.

Vid ledning av mer komplexa testuppdrag inser testledaren att förutbestämda planer och processer inte fungerar rakt av. Strategin måste anpassas och planer måste förändras allteftersom. Testledaren inser behov av ständig förbättring och jobbar gärna med förbättringsmodeller. Testledaren inser behovet av effektiva verktyg, iterativ utveckling, tekniska tester under utvecklingsfasen och därmed en utvidgning av testbegreppet. Denna förbättring kan ses som en övergång till Testledning 2.0. Nackdelen är att förändringen allt som oftast fokuseras på tekniska aspekter. Testledaren missar att människor och team är organisationens viktigaste redskap och lägger därmed lite vikt vid att förändra sitt eget ledarskap. När ingen enskild individ kan tillgodogöra sig all den kunskap som behövs för att hantera komplexiteten inom modern IT-utveckling så måste kontrollen delegeras. Självorganiserade team kan ta sig an utmaningen. Testledaren måste därför lära sig att leda självorganiserade team, oavsett om testarbetet utförs av testare i en separat testorganisation eller i agila tvärfunktionella utvecklingsteam. Testledning av självorganiserade team kallar vi för Testledning 3.0 och representerar, enligt oss, nästa steg i testledarrollens utveckling.

Management 3.0 av Jurgen Apello beskriver en etablerad modell för att leda självorganiserade utvecklingsteam, men de underliggande teorierna beskrivs även i andra sammanhang[1]. I den här artikeln vill vi skapa Testledning 3.0 genom att tillämpa Management 3.0 på testledarrollen. Varje steg i Testledning 3.0 bygger på teorier tagna från Management 3.0, men anpassade till testledarens verklighet. Det finns många böcker skrivna om agil testning och förbättringsprocesser för test. Det finns oändligt med verktyg, ramverk och tekniker som kan hjälpa oss. Man tar upp de tekniska svårigheterna som den nya testledaren måste hantera men ingenting nämns om de kulturella svårigheterna. Testning oursourcas och crowdsourcas, ibland finns en etablerad testorganisation ibland inga testare, vissa arbetar testdrivet andra efter en traditionell teststrategi. Ibland påstås att “testledaren är död” och kommer att ersättas av en strateg, coach eller testarkitekt. För att testledaren ska överleva, och leda effektivt kvalitetsarbete i framtiden, måste denne veta hur man leder test i komplexa miljöer med hjälp av självorganiserade team. Testledning 3.0 är ingen enkel anpassning eller översyn. För att klara av framtidens krav tror vi att testledarrollen behöver omarbetas, rivas ner och byggas upp på nytt.


Att motivera människor (Management 3.0, Energize People)
Organisationer kan ses som komplexa adaptiva system[2]. I ett sådant system är människor de aktiva utförarna. Metoder, mallar, verktyg och processer är statiska artefakter och därmed av underordnad betydelse. Trots detta tenderar testförbättringsprocesser att förbise den mänskliga aspekten[3]. Människor reagerar, agerar och anpassar sig dynamiskt och har därmed förmågan att kontrollera komplexa system. Därför är “att motivera människor” det första området i modellen.

Innovation är nyckeln till överlevnad i varje konkurrensutsatt miljö. En testledares uppgift är att lägga grunden för en innovativ miljö. Information, motivation, kultur, mångfald, kunskap och kreativitet är viktiga byggstenar som alla hänger ihop för att skapa rätt förutsättningar. Ett team tar in information, reagerar på denna och skapar innovation. Om testledaren förbättrar informationsflödet och uppmuntrar informationssökandet, leder detta till ökad innovation. Ett otillräckligt informationsflöde kan leda till låg motivation då testarna inte inser vikten av sitt arbete. Dålig balans mellan ordning och kaos, och i förlängningen en dålig arbetsmiljö, kan vara ytterligare en orsak till låg motivation. En strävan efter mer tekniska tester kan leda till en homogen kultur, minskar mångfalden och ger för snäva perspektiv. Lösningen är att testledaren skapar förutsättningarna för teamet att söka samt sprida kunskap, och därigenom få en mer mångfacetterad bild av verkligheten.

Många testare har inte en tillräckligt kreativ arbetsmiljö. Kreativitet hålls tillbaka genom hårt styrda testprocesser. Genom att vara medveten om dessa byggstenar kan testledaren göra mycket för att skapa en mer kreativt miljö och uppmuntra testarna.

Stärka teamen (Management 3.0, Empower Teams)
Ett annat karaktäristiskt drag hos ett adaptivt komplext system är självorganisering och anpassning till en föränderlig miljö. Detta görs utan hänsyn till central administration och en testledare måste inse att man aldrig har fullständig kontroll. Beslut tas ständigt utan ledarens kännedom och den informationsmängd som krävs för att fatta riktiga beslut är helt enkelt för stor för en ensam individ att hantera. Möjlighet till självständigt agerande måste därför distribueras till organisationens alla delar. Ledaren måste hitta nya sätt att leda de självorganiserade teamen mot givna mål.

Självorganiserade team är testledarens nya stora utmaning, oavsett om test utförs inom korsfunktionella scrumteam eller i dedikerade testteam. Testledare måste kunna hantera de självorganiserade teamen och leda testningen åt rätt håll. Ju mer komplex en miljö är, desto mer information behövs för att förstå vad som egentligen pågår. Att samla information via möten är vanligt men i en komplex miljö blir antalet möten och antalet berörda fort ohanterligt. Traditionell testledning tenderar att bromsa teamet då mycket av teammedlemmarnas energi går åt till att rapportera till testledaren. Som testledare kan man förstås samla information på andra sätt men det betyder att ledaren själv måste behärska ett stort antal kanaler. För att undvika att bli en flaskhals måste testledaren våga lätta på kontrollen och ge teamen makten att bestämma själva. Teams mognadsgrad avgör vilken ledarstil som kan användas. En ledande (tell, sell, consult) eller coachande (agree, advice, inquire, delegate).

Definiera mål (Management 3.0, Align Constraints)
Vad är testledarens roll i denna självorganiserade verklighet? Testledaren kan ofta känna sig vilsen i en växande kunskapsintensiv och mångfacetterad testorganisation. Självorganiserade team ska kunna fatta egna beslut, men det är fortfarande ledarens ansvar att definiera gränser och kommunicera mål till de självorganiserade teamen. Kvalitetsmålen skiljer sig mycket mellan olika verksamheter och är beroende av kontext. Det är viktigt att testledaren harmoniserar målsättningen med testarbete och systemkvalitet med de övergripande verksamhetsmålen.

Att förbättra testorganisationen utan hänsyn till företagets övergripliga mål, slutar nästan alltid med suboptimering som inte gynnar hela organisationen. Ifall målet är hitta så många buggar som möjligt, så kanske teamet lägger all tid på detta istället för att avskriva bristfälliga leveranser. I det fall test tar för långt tid kan det bero på svårtolkade krav och då måste detta adresseras innan man optimerar testprocessen. På motsvarande sätt händer det att hela testförbättringsprojekt läggs ner då målen och nyttan med dem inte kommuniceras ut tillräckligt väl och övriga företaget inte förstår värdet.

Förutom att sätta mål ska testledarens skydda från yttre påverkan, exempelvis intressenter som har olika, motstridiga eller orimliga krav. En miljö där det råder balans mellan ordning och kaos ger bäst förutsättningar för innovation. I en helt kaotisk miljö tvingas teamet hela tiden att reagera på oförutsägbara kritiska händelser, släcka bränder och hålla näsan över vattenytan. I en helt styrd och välordnad miljö stryps alla kreativa idéer och nyskapande infall.

Utveckla kompetens (Management 3.0, Develop Competence)
Det är ledningens ansvar att se till att människor innehar den kompetens som behövs för att göra sitt jobb. Ett ganska vanligt exempel där det kan gå fel är företag som går över till agil utveckling i hopp om att minska på testresurser. För att skapa tvärfunktionella team splittrar man ofta testteamen, och ofta till följden av sämre testresultat, då test inom ett utvecklingsteam kräver kompetens som inte utvecklingsteamet har. Människor har olika förutsättningar och det är testledarens uppgift att se till att kompetensutveckling sker på rätt nivå. En del kanske köper egna böcker och börja läsa självständigt. Andra behöver lite mer coaching för att komma igång. Vissa vill gå på kurs och certifiera sig för att visa att det lärt sig grunderna.

Beroende på kunskapsnivå kan teamet förhålla sig till regler på olika sätt (t.ex. följa givna regler slaviskt eller utmana regler efter behov). Som ledare är du ansvarig för att se till att teamet förstår de övergripande målen. Om dina regler är sämre än teamets regler kommer dina att stötas bort.

I en komplex miljö kan man inte förutsätta att en viss påverkan alltid leder till liknande resultat. Det är därför omöjligt att sätta regler eller införa “best practices” som funkar för alla. Lösningen är istället att låta teamen skapa sina egna regler utifrån gällande mål och gränser. Se till att självorganiserade team skapar och justerar sina egna regler. För att teamen ska vara kapabla till detta måste det ha rätt förutsättningar och rätt kompetens.

Skapa struktur (Management 3.0, Grow Structure)
Den optimala organisationsstrukturen varierar beroende på produkt, människor, miljö och det finns därför ingen gyllene regel för hur organisationen bör se ut. Däremot bör man tänka på att organisationens struktur påverkar hur kommunikationen flödar och att god kommunikation är nödvändigt för effektivt samarbete. I en organisation finns det alltid grupperingar, formella eller informella. Informella ledare är utspridda i hela organisationen och testledaren bör identifiera dessa för att underlätta sitt arbete.

En testorganisation bör struktureras efter hur kommunikationen flödar. Människor hanterar information på olika sätt. Det finns människor som gärna sprider information. Det finns också människor med tillgång till dessa informationsspridare. Som testledare är det viktigt att kartlägga detta och skapa en struktur därefter. Det är också viktigt att inte låta människor begränsas av strukturerna. Eftersträva "vida jobbtitlar" (t.ex. att inte dela upp folk i testare och utvecklare) så att människor får möjlighet att utveckla hela sin kompetens istället för att låsas fast i roller. Underlätta för människor att utveckla tvärvetenskaplig kompetens istället för att specialisera sig inom enbart ett område, men respektera att många behöver känna trygghet i en specialistkompetens innan de är redo för utmaningar på andra områden.

Förbättra allt (Management 3.0, Improve Everything)
Människor, team och organisationer behöver alltid förbättra sig för att bli mer effektiva. Detta är speciellt viktigt i komplexa miljöer där ständig förändring är nyckeln till att dra nytta av lärdomar och anpassa sig efter nya omständigheter. Utan förändring ingen utveckling, vilket leder till stagnation och degenerering. Det finns ingen heltäckande modell för förändring och förbättring i en komplex miljö men däremot flera metoder som kan användas i olika sammanhang och ibland överlappar varandra.

IT-systemen blir allt mer komplicerade, med fler integrationer på diversifierade plattformar. Gårdagens teststrategier kommer inte att fungera imorgon. Allteftersom testbördan växer måste vi därför testa mer effektivt. Tyvärr har testorganisationer tendenser att vara statiska och reagera långsamt på förändring. En anledning till detta är att förändring inte alltid leder till omedelbar förbättring. Man är rädd att nya arbetssätt kan försämra testarbetet initialt och därmed riskera kvalité. Ett vanligt tillvägagångssätt är att följa dokumenterade förbättringsmodeller då man ser detta som en mer säker förändringsstrategi. Dock är etablerade förbättringsmodeller inom testområdet dåligt anpassade till komplexa adaptiva system och vi har tidigare tagit upp hur flera av dem saknar den viktiga mänskliga aspekten. Det finns ingen process, strategi, verktyg eller “silver bullet” som fixar allt. Skapa din egen verktygslåda!




[1] Complexity and organizational reality - Ralph Stacey, Complexity a guided tour - Melanie Mitchell, Chaos making new science - James Gleich, The Fifth discipline - Peter Senge, Systems thinking - Donella Meadows, Drive - Daniel Pink, What matters now - Gary Hamel, Leading change - Kotter
[2] En organisation består av delar (människor) i ett system (team), vilket visar komplext beteende genom anpassning till en föränderlig miljö.
[3] TPI och TMM fokuserar t.ex. på dokumentation, planering, mätetal o.s.v.