Agile softwareontwikkeling Modegril of blijvertje?
Agenda Deel 1 Agile – nieuwe religie in systeemontwikkeling? Agile raamwerken Agile in perspectief
Pauze Deel 2 Agile teams
Agile – nieuwe religie in systeemontwikkeling? Nieuw?
Eerste publicaties al voor 2000 Voortbouwend op eerdere methoden als RAD, DSDM, RUP, QM
Religie? Believers (‘Agilistas’) en sceptici. Discussies: Plan-driven versus Agile Leidt Agile wel/niet tot betere projectresultaten? Wat is ‘echt Agile’?
Systeemontwikkeling
Methoden en technieken: middel Doel: sneller, beter, goedkoper (software-) producten opleveren en het werken hieraan nog leuk maken ook Software ontwikkelen => vele factoren => hoog variabel => onzekerheid Situatie bepaald meest geschikte aanpak
Manifesto for Agile Software Development We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more. Te vinden op: http://agilemanifesto.org
Principles behind the Agile Manifesto We follow these principles: Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. Business people and developers must work together daily throughout the project. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. Working software is the primary measure of progress. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. Continuous attention to technical excellence and good design enhances agility. Simplicity--the art of maximizing the amount of work not done--is essential. The best architectures, requirements, and designs emerge from self-organizing teams. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly. Te vinden op: http://agilemanifesto.org
DSDM
Te vinden op: www.dsdm.org
RUP
Te vinden op: www.ibm.com/developerworks
XP
Te vinden op: www.extremeprogramming.org
Scrum
Te vinden op: www.scrumalliance.org
Kanban
Deming
Te vinden op: www.wikipedia.org Zie ook: www.deming.org
Agile in perspectief
Perspectief
Vind leuk
Niet leuk
Klant
Dus.. Als ik tijdens het project een goed business idee heb kan dat nog mee in de software?
Maar.. Ik begin dus aan een traject zonder garanties over wat ik aan het eind krijg opgeleverd?
Projectmanager
Dus.. Ik hoef geen gedetailleerde balkenplanning meer te onderhouden die toch verouderd is zodra ik op ‘Save’ druk?
Maar.. Als het team zichzelf aanstuurt, heb ik dan nog wel werk?
IT-specialist
Dus.. Ik kan me focussen op een behapbare functie en die eerst helemaal opleveren voor ik aan de volgende begin?
Maar.. Wat als ik vragen heb over requirements? En wie gaat alle software integreren tot een release?
Pauze
Hoe iteratief of Agile zijn we al? Zijn iteraties ge-timeboxed en korter dan 4 weken? Zijn software features getest en werkend aan het eind van elke iteratie? Start de iteratie voordat de specificaties compleet zijn?
Hoe iteratief of Agile zijn we al? Zijn iteraties ge-timeboxed en korter dan 4 weken? Zijn software features getest en werkend aan het eind van elke iteratie? Start de iteratie voordat de specificaties compleet zijn?
Weet iedereen in het team wie de product owner is? Is er een product backlog geprioriteerd op de waarden voor de business? Heeft de product backlog schattingen die zijn gemaakt door het team? Maakt het team burndown charts en kent het team de eigen velocity? Wordt het werk van het team niet verstoord door projectmanagers of anderen?
Hoe iteratief of Agile zijn we al? Zijn iteraties ge-timeboxed en korter dan 4 weken? Zijn software features getest en werkend aan het eind van elke iteratie? Start de iteratie voordat de specificaties compleet zijn?
Weet iedereen in het team wie de product owner is? Is er een product backlog geprioriteerd op de waarden voor de business? Heeft de product backlog schattingen die zijn gemaakt door het team? Maakt het team burndown charts en kent het team de eigen velocity? Wordt het werk van het team niet verstoord door projectmanagers of anderen?
De Nokia Test. Let op dit is een ´minimale´ test. Slagen voor deze test geeft geen garantie dat het een team goed of effectief is.
Agile teams Create the Foundation for successful Development Projects
Agile teams
Benefits of Agile teams Features of Agile teams How to build Agile teams Common pitfalls
Benefits of Agile teams
Faster delivery of software Early and frequent validation Better end-product Motivated staff
Features of Agile teams
Self-organizing Empowered Product owner: scope, priorities Engineers: work, estimates
Transparant Progress, issues
Predictable Increases each iteration
Able to embrace change Seeking for ways to improve
How to build Agile teams Assumption: Basic skills for design, build and test are covered with sufficient maturity, because these skills are required anyway, both with Agile and with a more classic approach.
Ensure project sponsor is Agile-supportive Assign a project manager with Agile process facilitation skills Identify a Product Owner that
Identify developers that bring (as a team)
Can think full-scope Can communicate detailed requirements Architecture capability Work estimation capability
Mandate the team to make decisions (tolerances) Build capability to frequently integrate and release software Document roles, responsibilities and processes Plan cross-functional working and learning Foster openness, trust (asking help is okay) and respect for each others contributions and skills Plan and evaluate every iteration Have fun
Late requirement changes from outside the team
Common pitfalls
Bottlenecks and idle time because all complex work ends up with senior developers
… and how to avoid or resolve
Co-location; cross-functional working, have users and developers agree single test tasks per feature
Perfectionism – trying to fix all defects in an iteration causing end dates to slip
Cross-functional learning, work in pairs
‘We-Them’ think, typical users-developers, can lead to eg duplicate tests
Agree mandate for the team upfront with tolerances for scope, time, cost
Stick to end dates; evaluate estimating and planning in Retrospective; include defects in next iteration plan
Project Manager reverts to ‘command & control’ style
Team to give feedback to PM; facilitation skills training; involve an Agile process coach
Thank you Richard Huffmeijer Huffmeijer IT Projectmanagement Email
[email protected] Twitter @r_huffmeijer Blog http://hitpm.wordpress.com Mobiel +31 (0) 639 702 139 Web www.hitpm.nl