Lately that the terms Agile and Lean have been thrown around casually with little disregard for what they truly mean and how they can be applied correctly. Join us in this session for a lively, interactive discussion about what it means to be lean and agile and how we can incorporate the
principles and practices from each of these industry movements to help us build world class software.
5. Defined vs. Empirical Processes How would you code an algorithm to keep this room at a constant temperature for the entire day? (What variables would you consider?) Defined processes try to predict the future Empirical processes adapt to the future Frequent inspection Just in time planning
7. Eliminate waste Poor requirements Unnecessary functionality, code, documentation Delays in the development process Slow or poor internal communication Bureaucracy Empower the team to recognize and eliminate it!
8. Amplify learning Accept that software development is a continuous learning process Iterate to learn and adapt Fail early and fail often!
9. Decide as late as possible Change happens Don’t fight it Accept it and adapt to it Each iteration should still have an explicit planning phase.
10. Deliver value as fast as possible Embrace continuous deployment Keep iterations short, short, short! Relish feedback and evolve with the next iteration
11. Empower the team Avoid command and control management style Avoid rigidly defined roles Team should have direct access to the customer Team is responsible for “done done” Give them responsibility and accountability and they will take ownership.
12. Build integrity in Build in integrity checks – unit tests become regression tests Refactor aggressively to retain emergent architectural integrity There should be NO code you’re afraid to touch.
13. See the whole Understand the whole domain and problem space Segregate along functional boundaries instead of cross cutting technical concerns Cultivate high value communication Provide the team with a higher purpose to work towards
15. What is Agile? Agile Agile is a movement… represented by a set of methodologies… comprised of a set a best practices. Scrum XP FDD Others CI TDD BDD StandUps Burn-down Domain Model ProductBacklog Refactor Pairwise Programming SprintBacklog Feature Team
16. Agile Manifesto 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
17. Agile principles Customer satisfaction by rapid delivery of useful software Welcome changing requirements, even late in development Working software is delivered frequently (weeks rather than months) Working software is the principal measure of progress Sustainable development pace Close, daily co-operation between business people and developers
18. Agile principles Face-to-face conversation is the best form of communication (co-location) Projects are built around motivated individuals, who should be trusted Continuous attention to technical excellence and good design Simplicity Self-organizing teams Regular adaptation to changing circumstances
27. Supporting practices Training Coaching & mentoring Workshops Reading circle Planning poker 2 pizza teams Engaging the community
28. Success factors Freedom to change Energized team Communication with customer Collaboration Attention to quality Incrementalism Automation Continuous improvement
29. Anti-patterns No definitive process Guestimating & estiquotes Huge cases Technical debt Egos Scrummerfall Scrumdamentalism Large, complex, high risk projects
30. Agile Adoption “Agile processes have not only gained increasing adoption levels; they have also rapidly joined the mainstream of development approaches.” a “Agile Development: Mainstream Adoption Has Changed Agility – Jan 2010”, Forrester
31. Agile Adoption “In the past five years, Forrester has seen a growing interest in the adoption of Agile processes. This interest is slowly changing to adoption. In 2008, even shops that weren’t moving immediately to Agile processes began to take baby steps in that direction.”a a “Make Agile Lean – Dec 2008”, Forrester b “Microsoft ALM Consulting Day – Mar 2009”, Forrester presentation; c “State of Agile Development – July 2008”, Version One
33. SCRUM Simple and lightweight framework for lean and agile practices Time-boxed events to control chaos Simple, straight forward roles for accountability Transparent artifacts Empirical inspection and adaptation to reach goals Simple rules that facilitate complex emergent behavior
34. Events Sprint Iterative development period not to exceed one month Sprint planning meeting 8 hours Prioritize product backlog and select items for the sprint backlog Daily stand up meeting 15 minutes, What was accomplished since last meeting? What are you doing today? Do you have any impediments? Sprint Review meeting 4 hours Review what was completed and not completed during spring Demo the completed work with stakeholders Sprint retrospective 3 hours What went well? What could be improved?
Lean & AgilePhoto credits: Flickr creative commons - http://www.flickr.com/photos/randysonofrobert/340282243/
Agile is as Agile Does Level 100Lately that the terms Agile and Lean have been thrown around casually with little disregard for what they truly mean and how they can be applied correctly. Join us in this session for a lively, interactive discussion about what it means to be lean and agile and how we can incorporate the principles and practices from each of these industry movements to help us build world class software.
State of Agile Development – July 2008, 3,061 respondents from 80 countries.* “Which of the following do you employ within your Agile methods?”
Definition: A framework within which people can address complex problems, and productively and creatively develop products of the highest possible value