your reference in testing services
WorkShop Agile in de praktijk - Erik Boelen - 18 december 2008
Onderwerpen vandaag • Geen theoretische achtergrond • Gebaseerd op eigen praktijk • Niet uit boeken te halen • Enige uitzondering - Testen2.0 (Anko Tijman & Eric Jimminck)
• Interactief
Opbouw slides • Verschillende mogelijke ‘modules’ • Alles is gestructureerd in statements • Intentie is om discussies te verkrijgen
Inhoud workshop • Hoe zie ik Agile? • Wie is Agile? • Uitdagingen van Agile • Voordelen
Inhoud workshop • Hoe zie ik Agile? • Wie is Agile? • Uitdagingen van Agile • Voordelen
Hoe zie ik Agile? • Agile is • een methode, een aanpak • veeleisend! • een team effort • flexibel
Agile is een methode, een • Een manier om een project op te leveren • Een van de vele methodes • Nog niet echt bewezen - enkel bij de aanhangers. Maar zijn de anderen bewezen?
• Volgens sommigen al op de terugweg • Maar met meer kans op slagen indien de juiste principes worden aangehouden
Agile is een methode, een • Welke principes moeten worden aangehouden?
• De klant staat centraal! • De klant beslist! • De klant accepteert! • De klant is koning!
De KLANT • Alle principes van het Agile Manifesto komen vanuit de klant
• • •
Customer collaboration over contract negotiation
•
Individuals and interactions over processes and tools
Responding to change over following a plan Working software over comprehensive documentation
De KLANT • Wat zijn kenmerken van een agile methode?
• Increments/iterations • ‘Reduce the waste’ • Continue feedback
• Hoe traceren we deze terug naar de klant?
De KLANT • Increments/iterations • de klant krijgt verschillende momenten om te kiezen wat hij wil
• het geeft het project de flexibiliteit om te veranderen naar de wensen van de klant
• de context waarin de klant zich bevindt kan veranderen
De KLANT • ‘Reduce the waste’ • project moet flexibel zijn naar de klant toe
• de klant wil werkende software zien en evalueren
• de klant moet de documentatie kunnen evalueren
De KLANT • Continue feedback • de klant wil weten waar het project staat
• het project wil weten waar de klant staat
• de feedback van de klant moet het hele project team bereiken => interne feedback loops zijn belangrijk
De KLANT •
Een voorbeeld uit de praktijk
• • • •
Ondernemingsloket Continue aanwezigheid van vertegenwoordiger van de klant Continu bijsturen op basis van de klant (en van de overheid) Project tijdig opgeleverd
• • •
Aangepaste scope Klant tevreden Doelstelling behaald!
Agile is veeleisend •
Agile heeft een aantal must haves
• • •
Actieve samenwerking met de klant
• •
Continue integratie
Multidisciplinair team Afgeleverde producten moeten werken en toegevoegde waarde hebben voor de klant Lengte van de iteratie ligt vast
Agile is veeleisend • Actieve samenwerking met de klant • Klant is product owner • Bepaalt de prioriteiten en richting • Indien niet aanwezig moet
plaatsvervanger er zijn (rol van proxy)
Agile is veeleisend • Multidisciplinair team • Zo weinig mogelijk externe afhankelijkheden
• Team moet zoveel mogelijk zelfbedruipend zijn
• Ook testers zijn onderdeel van het team
(in tegenstelling tot het teamonafhankelijke)
Agile is veeleisend • Afgeleverde producten moeten werken en waarde hebben voor de klant
• Kwaliteitseisen van de klant moeten gekend zijn
• Werken naar een concreet resultaat • Elke iteratie moet toegevoegde waarde hebben
Agile is veeleisend • Continue integratie • Iteraties moeten onmiddellijk samengevoegd worden
• Integratiefouten moeten zo snel mogelijk gevonden worden
• Eerste focus bij testen
Agile is veeleisend • Lengte van de iteratie ligt vast • Begin- en einddatum liggen vast • Worden ook aan de klant gecommuniceerd
• Scope wijzigen beter dan timing wijzigen • Lengte kan - in samenspraak - met de klant veranderen per iteratie
Agile is veeleisend • Daarnaast heeft agile ook een aantal should haves
• Agile contract • Team werkt samen op 1 locatie • Teamresultaten worden beoordeeld • Klant is niet de hoogste in de hiërarchie
Agile is veeleisend • Agile contract • Scope ligt niet altijd vast • Samenwerkingsverband wel • Staat in dat de klant ook aan eisen moet voldoen
Agile is veeleisend • Team werkt samen op 1 locatie • Korte feedbackloop • Beste communicatiemiddel in agile is face-to-face met white board
• 1 klant met meerdere locaties is uitdaging
Agile is veeleisend • Teamresultaten worden beoordeeld • Zo min mogelijk individuele beoordeling • Product kwaliteit is team verdienste • Werken naar een gezamenlijk doel
Agile is veeleisend • Klant is niet de hoogste in de hiërarchie • Moet op de hoogte zijn van het echte werk
• Toch afgevaardigd om beslissingen te mogen maken
• Budgetverantwoordelijkheid
Agile is een team effort • Wie is het team? • Van wie is het team afhankelijk? • Is het team vast of variabel?
Agile is een team effort • Wie is het team? • Klant • Projectleider/Scrum Master • Team van individuen, elk met hun eigen skills
• alle teamleden creëren toegevoegde waarde door hun interactie
Agile is een team effort • Van wie is het team afhankelijk? • support teams zijn cruciaal voor Agile projecten
• zoveel mogelijk support in ‘eigen beheer’ doen
• voorbeelden van afhankelijkheden zijn
omgevingen, productieondersteuning, ...
Agile is een team effort • Is het team vast of variabel? • Het team moet vast zijn voor elke iteratie binnen het project
• Het team kan variabel zijn over verschillende projecten heen
• Indien mogelijk verschillende rollen door verschillende personen
Agile is flexibel • Klant verwacht flexibiliteit • Klant kan scope beslissingen nemen tussen de verschillende iteraties
• Team kan inspelen op deze
veranderingen door hun structuur en lichtgewicht documentatie
• Flexibiliteit inperken!!
Inhoud workshop • Hoe zie ik Agile? • Wie is Agile? • Uitdagingen van Agile • Voordelen
Wie is Agile? •
Agile team leden zijn
• • • • • • •
vertrouwd met hun omgeving zeer gestructureerd niet bang van alternatieve oplossingen zeer communicatiegericht zeer belangrijke personen niet bezig met het indekken van zichzelf gedreven projectleden
Wie is Agile? • Vertrouwd met de omgeving • kunnen inleven in de klantsituatie • vertrouwd met de projectomgeving • gemotiveerd om een bijdrage te leveren aan de gekozen oplossingen
Wie is Agile? • Zeer gestructureerd • Agile projecten zijn meest gestructureerd
• In tegenstelling tot wat van buitenaf gezien wordt
• Versie controle en detailplanning zijn perfecte voorbeelden
Wie is Agile? • Niet bang van alternatieve oplossingen • Alternatieve tools worden ingezet om flexibel te werken
• voorbeeld van James Bach - Boosting your testing superpowers
• Steeds goedkeuring van team en klant nodig indien invloed op project
Wie is Agile? • Zeer communicatiegericht • Communicatie vanuit een open positie binnen het team
• Communicatie van en naar de klant
Wie is Agile? • Zeer belangrijke personen • Iedere schakel is even belangrijk • Projectleider/Scrum Master is enkel coördinerende taak
• Klant naar waarde schatten en omgekeerd
Wie is Agile? • Niet bezig met het indekken van zichzelf • Documenten worden vaak geschreven om zichzelf in te dekken
• Testplan met allerhande condities en
pending beslissingen is hier voorbeeld van
• Samenwerking moet sterker zijn dan de ‘I told you so!’
Wie is Agile? • Gedreven projectleden • Zwakste schakel principe is geldig binnen Agile
• Klant moet gedrevenheid merken om vertrouwen op de bouwen
• Stimuleren van elkaar om iteraties tot een goed einde te brengen
Inhoud workshop • Hoe zie ik Agile? • Wie is Agile? • Uitdagingen van Agile • Voordelen
Uitdagingen van Agile •
Team neemt teveel zelfstandige beslissingen
• •
Klant beslist
•
Subteam neemt teveel zelfstandige beslissingen
•
Indien klant niet aanwezig, neemt dan het team zelfstandig beslissingen?
•
iedereen moet dezelfde weg bewandelen
Duur in tijd en budget omwille van rework
Uitdagingen van Agile • Signalen van testen worden niet erkend • Iteratief werken maakt testen cruciaal • Klant moet altijd weten waar we staan • Bij korte sprints moeten de issues zo snel mogelijk opgelost worden
• Openstaande bugs brengen hele team achterop
Uitdagingen van Agile • Team voorziet niet snel genoeg feedback • Klant mag ‘grip’ op team niet verliezen • Interne feedback van verschillende teamleden onderling cruciaal
• Feedback niet laten wachten tot einde iteratie
Uitdagingen van Agile • Testers worden enkel als testers beschouwd
• Tester is geen opbouwende functie • Testers denken anders dan rest van het team
• Tussentijdse feedback is daarom nog belangrijker
Uitdagingen van Agile • Niet alle teamleden worden pro-actief bij teambeslissingen betrokken
• meest voorkomend bij testers • beslissing kan impact hebben op nietaanwezige teamleden
• rework kan voorkomen worden door iedereen onmiddellijk te betrekken
Uitdagingen van Agile • Bepaalde teamleden worden teveel bij teambeslissingen betrokken
• Opnieuw vaak voorkomend voorbeeld bij de testers
• Kan leiden tot suboptimilasatie binnen onderdeel
• Andere teamleden volgen niet meer
Uitdagingen van Agile • Niet elk onderdeel van team vanaf de eerste dag betrokken
• Alle informatie vanaf dag 1 is waardevol • Minder documentatie dus moeilijkere overdracht aan ‘laatkomers’
• Software moet direct werken in al zijn
aspecten (niet eerst front en dan back)
Uitdagingen van Agile • Testomgevingen niet onmiddellijk beschikbaar
• Showstopper bij traditionele projecten • nog crucialer bij Agile projecten • Korte feedback loops vereisten aanwezige testomgevingen
Uitdagingen van Agile • Nieuwe builds worden niet flexibel opgeleverd
• Korte iteraties vereisen dit • Lange opleverprocedure kan een showstopper zijn
• Automatische regressietesten lopen vertraging op
Uitdagingen van Agile • Onvoldoende ruimte om nieuwe dingen te proberen
• Bestaande methodologiën kunnen vertragend werken
• Organisatie moet overtuigd worden van nieuwe manier
• One size fits all geldt niet voor Agile
Inhoud workshop • Hoe zie ik Agile? • Wie is Agile? • Uitdagingen van Agile • Voordelen van Agile
Voordelen van Agile • De voordelen van Agile zijn duidelijk te
onderscheiden in volgende categorieën:
• Meer added value software voor de klant
• Zeer wendbare organisatie • Beter gestructureerde risicobeheersing • Eindgebruikers hebben een hogere acceptatiegraad
Voordelen van Agile • Meer added value software voor de klant • Klant heeft project inhoudelijk kunnen sturen
• Eventuele veranderingen in de
klantsituatie zijn opgenomen door het projectteam
• Belangrijkste software eerst opgeleverd
Voordelen van Agile • Zeer wendbare organisatie • prioriteiten worden per iteratie bepaald • niet vastgelegd welke requirements in welke iteratie worden ontwikkeld
• Marktsituatie aangepast - bijvoorbeeld
concurrentie? Project wordt aangepast!
Voordelen van Agile •
Beter gestructureerde risicobeheersing
•
Complexe systemen worden opgesplitst in eenvoudige subsystemen
•
Projecten zijn zeer transparant en dus kan klant mogelijke risico’s op tijd detecteren en verhelpen
•
Risico’s worden besproken en behandeld binnen het team
Voordelen van Agile •
Eindgebruikers hebben een hogere acceptatiegraad
•
Klant heeft mee kunnen beslissen over de acceptatie van de software
•
Software reeds op voorhand gekend door het iteratief werken
•
Voorwaarde => vertegenwoordiger van de klant is de correcte persoon!
Conclusie • Agile werkt maar vergt een hoge
maturiteit van zowel project team als klant
• ‘Agile of niet’ moet bekeken worden in de gehele context
• Agile draait niet om de termen en definities eromheen, maar om het daadwerkelijke samenwerken
Case • Opdelen in 4 groepen • Elk rond een flipchart • Open discussie • Korte voorstelling van de resultaten
Case • Nadenken over de volgende vragen • Wat is het grootste voordeel van Agile? • Wat is de grootste uitdaging van Agile? • Hoe kan jullie firma agile projecten aanpakken?