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
Verschillende mogelijke modules Alles is gestructureerd in statements Intentie is om discussies te verkrijgen Opbouw slides
Hoe zie ik Agile? Wie is Agile? Uitdagingen van Agile Voordelen Inhoud workshop
Hoe zie ik Agile? Wie is Agile? Uitdagingen van Agile Voordelen Inhoud workshop
Agile is een methode, een aanpak veeleisend! een team effort flexibel Hoe zie ik Agile?
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 Responding to change over following a plan Working software over comprehensive documentation Individuals and interactions over processes and tools
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 Multidisciplinair team Afgeleverde producten moeten werken en toegevoegde waarde hebben voor de klant Continue integratie 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!!
Hoe zie ik Agile? Wie is Agile? Uitdagingen van Agile Voordelen Inhoud workshop
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
Hoe zie ik Agile? Wie is Agile? Uitdagingen van Agile Voordelen Inhoud workshop
Uitdagingen van Agile Team neemt teveel zelfstandige beslissingen Klant beslist Indien klant niet aanwezig, neemt dan het team zelfstandig beslissingen? Subteam neemt teveel zelfstandige 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
Hoe zie ik Agile? Wie is Agile? Uitdagingen van Agile Voordelen van Agile Inhoud workshop
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
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? Case