Agile Project Management Projekt-Kick-Off-Tage Hochschule Augsburg Martin Wagner, 15. März 2011 TNG Technology Consulting GmbH, http://www.tngtech.com
Agile project management with Scrum Agenda Software development observations Agile & Scrum principles Scrum overview Scrum consequences Starting with Scrum Discussion & questions 2
Agile project management Agenda Software development observations Agile & Scrum principles Scrum overview Scrum consequences Starting with Scrum Discussion & questions 3
Traditional Methodologies: Waterfall Source: W. Royce, Managing the Development of Large Software Systems, 1972
Waterfall Variations: V-Model Source: http://en.wikipedia.org/wiki/file:systems_engineering_process_ii.svg
Waterfall Variations: Spiral Model Source: http://en.wikipedia.org/wiki/file:spiral_model_(boehm,_1988).svg
The world is getting more complex and faster Software Development Observations Most software is highly complex - Only experts understand problem domain - Tremendous communication effort necessary Software development is comparable to new product development, not manufacturing Requirements are often unknown a priori Moving target requirements change during development Minimizing time to market becomes more important Technology innovation rate is speeding up 7
Shouldn't we rethink the way we are doing things? Traditional Methodologies Fact: most large IT projects fail - Standish Group CHAOS report: only 1/3 of IT projects successful - Prominent examples: TollCollect, A2LL Main reason - Writing software is handled the same way as manufacturing a car - Traditional methodologies require that everything is known up-front - Reality differs 8
Shouldn't we rethink the way we are doing things? Traditional Methodologies - Conclusions Traditional approaches work only for well specified and understood problems which seldom occur in reality Putting more pressure or process on development teams does not help 9
Role Play Command and Control vs. Self Organization
Agile project management with Scrum Agenda Software development observations Agile & Scrum principles Scrum overview Scrum consequences Starting with Scrum Discussion & questions 11
Pracititioners gather their experience Agile Manifesto Important Processes and tools Comprehensive documentation Contract negotiation Following a plan More important Individuals and interaction Working software Customer collaboration Responding to change Source: http://www.agilemanifesto.org 12
Principles of Agile Software Development 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. Source: http://www.agilemanifesto.org
Principles of Agile Software Development 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-toface 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. Source: http://www.agilemanifesto.org
Principles of Agile Software Development 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. Source: http://www.agilemanifesto.org
Lean development Term coined by Mary and Tom Poppendieck Based on Toyota s Production System The Poppendiecks transformed principles of lean production to software development
The seven principles of lean development 1. Eliminate waste 2. Amplify learning 3. Decide as late as possible 4. Deliver as fast as possible 5. Empower the team 6. Build integrity in 7. See the whole
Agile project management with Scrum Agenda Software development observations Agile & Scrum principles Scrum overview Scrum consequences Starting with Scrum Discussion & questions 18
Scrum It's about common sense Scrum Principles: Inspect and Adapt Focus on business value Self organization of teams Iterations Time boxing 19
What are people doing? Scrum Roles Team - Responsible for success and delivery of the product increment - Empowered to do anything needed to achieve the Sprint goal - Self-organizing, cross-functional and autonomous Product Owner - Responsible for the profitability/return on investment of the product - Defines and prioritizes requirements of the product Scrum Master - Responsible for the success of Scrum - Ensures everyone on team can fully concentrate on productive work 20
Source: http://www.infoq.com/minibooks/scrum-checklists (free registration required), modified Iterations at work Scrum Flow: Artifacts & Meetings Estimation Meetings 21
Practice: Sprint Planning 1 Build 5 Teams Select 1 Product Owner for each team POs get instructions from me Go Play! - Make sure user stories are not too big - Try to strip down stories to reprioritize parts of user stories Timebox: 20 minutes
Product Backlog Online Bookstore Vision: Store favorite books for customers As customer, I want to remember lists of my favorite books online and send them to friends, so that I do not have to write them down on paper. As online bookstore, I want to get an overview of all favorite books of my customers, so that I can target advertizing and preorder sufficient supply.
Product Backlog Online Bookstore v2 Vision: Store favorite books for customers As customer, I want to remember my favorite books online, so that I do not have to write them down on paper. As online bookstore, I want to get an overview of all favorite books of my customers, so that I can target advertizing. As customer, I want to organize my favorite books into several lists, so that I can separate private from business. As customer, I can send a link to my list to friends, so that I don t have to buy the books myself. As online bookstore, I want to get an overview of all favorite books of my customers, so that I can preorder sufficient supply.
Practice: Sprint Planning 2 Break down first two stories of Planning 1 into tasks Task should be doable by a single person in one day max Prioritize tasks Timebox: 20 minutes
Retrospectives: Inspect and Adapt At end of each iteration What worked well? What can be improved? Which action should be taken for the next iteration?
Inspect & Adapt Cycle As a team, deliver as many ball points as possible Timebox: 2 minutes Retrospective: 5 minutes 3 iterations
Estimation Meetings Left out on purpose Estimation is hard, not handled today
Agile project management with Scrum Agenda Software development observations Agile & Scrum principles Scrum overview Scrum consequences Starting with Scrum Discussion & questions 29
Be careful what you wish for... Scrum Consequences Productivity increases - Focus on actually needed features - Reduced fruitless planning effort Highly transparent development process - Failure to deliver features becomes visible after each iteration - Team members realize what each of them is actually doing (or not doing) Organizational deficiencies become visible - Scrum Master responsible to attack them - Not everyone might like that 30
... you might get it! More Scrum Consequences Much higher business involvement required - Being product owner is a full-time job - Active participation of business side is a prerequisite for clear feature prioritization Business retrieves control of development goals - No more throwing documents over the fence - You actually have to talk to those developers in the basement Good engineering practices become a necessity - Deliverable product after each iteration require fast automated build process - Scrum's definition of done necessitates automated test execution 31
Agile project management with Scrum Agenda Software development observations Agile & Scrum principles Scrum overview Scrum consequences Starting with Scrum Discussion & questions 32
Scrum is great, but it will never work at our company... Starting with Scrum Remember: Scrum is no silver bullet - Project management framework based on a collection of principles and best practices; no development process - Introduction will be bumpy - Adjust to your environment - If a process requires pointless artifacts, treat them as necessary prioritized features Scrum requires a lot from people - Role of middle management changes team does task distribution - Non-effectiveness becomes highly visible - Extreme accountability 33
We never did it like that before. This can't work. Starting with Scrum Common Problems People are not used to clear prioritization - Business has to define strict priorities - Development team has to obey them Time boxing must be adhered to - The software is done, we're just trying to get it to work - One more day, and then it should work. - However: time boxing is no sacred cow Sprints can be abandoned Don't start to adjust Scrum principles if it gets hard - Permanent estimation meetings prevent chaos - Only communication leads to feedback loops 34
Everything seems so complex... Strategies for Scrum Introduction Learn more about Scrum - Get coaching - Send employees on Scrum trainings Start with retrospectives - Are not Scrum-specific at all - Are usually highly effective - Make current problems visible Gradually introduce more concepts as needed - Daily meetings to enhance communication within team - Estimation meetings to increase collaboration with business 35
Agile project management with Scrum Agenda Software development observations Agile & Scrum principles Scrum overview Scrum consequences Starting with Scrum Discussion & questions 36
Werbung Vorlesung Agile Softwareentwicklung HS Augsburg, Sommersemester 2011, 2 SWS, 2.5 CP Raum M2.03, Donnerstag, 15:40-17:10 und 17:20-18:50 Uhr Themen: - Agile Testing - Agile Requirements Engineering - Continuous Integration & Deployment - Agile Vorgehensmodelle Anmeldung bis Sonntag, 20.3.2011
Scrum knowledge Helpful Books Succeeding with Agile Software Development Using Scrum (Mike Cohn), ISBN978-0-321-57936-2 Scrum. Produkte zuverlässig und schnell entwickeln (Boris Gloger), ISBN 978-3446419131 Scrum and XP from the Trenches (Henrik Kniberg), ISBN 978-1430322641, Free PDF: http://www.infoq.com/minibooks/scrum-xp-from-the-trenches The Art of Agile Development (James Shore, Shane Warden), ISBN 0-596-52767-5 Continuous Integration: Improving Software Quality and Reducing Risk (Paul Duvall, Steve Matyas, Andrew Glover), ISBN 978-0321336385 Clean Code: A Handbook of Agile Software Craftsmanship (Robert C. Martin), ISBN 978-0132350884 Implementing Lean Software Development (Mary and Tom Poppendieck), ISBN 978-0321437389, http://www.poppendieck.com/ilsd.htm xunit Test Patterns: Refactoring Test Code (Gerard Meszaros), ISBN 978-0131495050 38
Speaker Contact Data TNG Technology Consulting GmbH Betastr. 13a 85774 Unterföhring Dr. Martin Wagner Dipl.-Inf. Principal Consultant Tel. +49 (0)89 2158 9960 Fax +49 (0)89 2158 9969 Mobil +49 (0)176 2394 7429 martin.wagner@tngtech.com 39
Discussion and Questions Ready for Scrum? 40