Agile Implementation Lessons Learned from Practical ApplicationPresented to NM Women In Technology June 28, 2012 Ana Lopez, Certified Scrum MasterLisa Milmine, Certified Scrum Master Software Application Engineering Sandia National Laboratories
Presentation Overview• Agile Development• The Scrum Framework• Lessons Learned and Recommendations (So what)
What is Agile? Frequently delivering business value while adapting to change Agile is a philosophy Agile is applied through a method (like XP or Scrum)See: Shore, James and Shane Warden. The Art of Agile Development, Sabastopol, CA: O’Reilly Media,Inc. , 2008. Print.
How Agile Evolved 1990s – common methodologies emerged Face to face communication Frequent delivery of business value Self managing teams Adaptable coding practices In 2001 - Agile SummitSee: What is Agile Software Development: http://www.agilealliance.org/the-alliance/what-is-agile/Agile Software Development: http://en.wikipedia.org/wiki/Agile_software_development
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 planThat is, while there is value in the items on the right, we value the items on the left more.”See: Manifesto for Agile Software Development: http://agilemanifesto.org/
12 Principles Satisfy the customer through early and continuous delivery of valuable software. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. Welcome changing requirements, even late in development. Regular adaptation to changing circumstancesSee: Manifesto for Agile Software Development: http://agilemanifesto.org/principles.html
12 Principles (Cont.) Build projects around motivated individuals. Self-organizing teams Continuous attention to technical excellence and good design Working software is the primary measure of progress.See: Manifesto for Agile Software Development: http://agilemanifesto.org/principles.html
12 Principles (Cont.) Business people and developers must work together daily throughout the project. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. Simplicity- The art of maximizing the amount of work not done - is essential Agile processes promote sustainable development.See: Manifesto for Agile Software Development: http://agilemanifesto.org/principles.html
Why everyone likes agile• Executives and Senior Management − Return on investment − Software longevity• Users and Stakeholders − Influence the direction of software development − Teams focus on delivering useful and valuable software − Increased delivery frequency• Project Managers − Change direction as business needs change, − Make and meet commitments − Improved stakeholder satisfaction• Developers − Increased technical quality − Greater influence over estimates and schedules and team autonomy• Testers − Part of the team − Influence quality at all stages of the project See: Shore, James and Shane Warden. The Art of Agile Development, Sabastopol, CA: O’Reilly Media, Inc. , 2008. Print.
What is Scrum? An agile framework focused on delivering business value in short incremental periods (sprints) Created in the early 1993 at Easel Corporation Specifically suited for complex problems Defined in The Scrum Guide: The Definitive Guide to Scrum: The Rules of the Game - Developed and Sustained by Ken Schwaber and Jeff Sutherland Term “scrum” inspired by a Rugby formation for players used to restart the play of a game usually after an infraction. A team approach.Origins: http://scrum.jeffsutherland.com
Scrum Philosophy • Software development is - Complex - Always Broken • A proven method for meeting customer needs is to use the ideas of Agile, including empirical process control. • Empirical Process Control: • Inspection • Adaptation • TransparencyEmpirical Process: http://en.wikipedia.org/wiki/Empirical_process_(process_control_model)
The Process Three Questions Two Questions Sprint Backlog Tasks User StoryProcess: http://www.scrumalliance.org/learn_about_scrum
The Product Backlog Three Questions Two Questions Sprint Backlog TasksUser Story
The Sprint Planning Three Questions Two Questions Sprint Backlog TasksUser Story
The Sprint Planning Tasks Three Questions Two Questions Sprint Backlog TasksUser Story
The Sprint Three Questions Two Questions Sprint Backlog TasksUser Story
The Daily Standup Three Questions Two Questions Sprint Backlog TasksUser Story
The Sprint Objective – Working Software Three Questions Two Questions Sprint Backlog Tasks User Story
The Review Three Questions Two Questions Sprint Backlog TasksUser Story
The Retrospective Three Questions Two Questions Sprint Backlog TasksUser Story
The Iterative Process Three Questions Two Questions Sprint Backlog TasksUser Story
Scrum Roles• Product Owner (PO) Responsible for the success/business value of project Empathetically represents customers Uses insight to prioritize essential/incidental requirements• Scrum Master (SM) A process facilitator, NOT a project/people manager Resolves impediments, helps team focus on value• Team Self managed, self organizing to get the work done Owns/takes responsibility for process Scrum recommends 7 +/- 2 team members at most
Scrum Artifacts• Product backlog Prioritized list of desired project requirements Founded from product Vision• Sprint backlog/Task backlog Set of work from the product backlog that the team agrees to complete in a sprint, broken into tasks Follow a clearly defined Definition of Done• Burn-down or Burn-up chart At-a-glance look at the work remaining• Release set Minimally marketable release
Ceremonies (aka meetings)• Sprint planning The team and product owner estimate and negotiate a set of work to deliver during a sprint• Daily scrum The team meets each day to report progress, next steps, and impediments Facilitated by SM – team reports to each other• Sprint reviews The team demonstrates to the product owner and stakeholders what it has completed during the sprint (working software)• Sprint retrospectives The team looks for ways to improve the process. Facilitated by SM
User Stories• Describes functionality that is valuable to a user/stakeholder The “what” not the “how”• Written from the customers perspective• Represents customer priorities• Reminders to have a conversation• A user story is NOT a contract or agreement Everything can go in the backlog
Backlog Grooming• A regular meeting to manage the backlog of stories Grooming activities include: • Creating /Removing stories in response to newly discovered needs • Re-assessing the relative priority of stories • Assigning estimates to stories which have yet to receive one • Correcting estimates in light of newly discovered information • Splitting large user stories into multiple sprint sized stories • Development of acceptance criteria
Project Status/Information Radiators• Level of Effort Story Points, T-shirt sizes, etc.• Rate of Production Velocity (velocity = story pts completed per sprint) Basis for planning/projecting• Sprint Burn-Down Chart Daily display of work remaining in a sprint Pitfall: fails to show effect of changing• Release Burn-Up Chart Tracks how much work is done wrt product backlog Projections give insight for release planning goals
So…What have we learned in practice?What wont the textbooks tell you?
People• Development Team Members − Elicit team-oriented characteristics − Comfortable with not knowing all details up front − Appropriately sized − Trained on agile method• ScrumMaster − Posses or acquire good facilitation skills − Focus on facilitating and not managing the process − Try to develop good coaching skills − Should be independent of development and customer responsibilities
People (Cont.)• Project Manager − Responsible for managing process areas not called out by Scrum (risk management, communications, etc.) − Empower self management of your team − Report frequently to build management confidence• Product Owner − Fully committed to project − Product owner trained/certified − Empowered by management to have decision authority − Understands that they have ultimate authority
People (Cont.)• Management − Knowledgeable of process at a high level − Supportive of team’s empowerment to manage• Customers and Stakeholders − Flexible on scope − Committed and engaged through the duration of the project
Practices• Definition of Done − Do it for task, story, and sprint − Revisit Often − Adapt as necessary• Backlog Grooming − Conduct regularly throughout project − Project owner representation is required• Reporting (progress/status) − Use the Scrum terminology/measurements − Familiarize Management ahead of time
Structure• Sprint Tasks − Allow the team to develop a method that adds value to them − Preserve differentiation of stories and tasks − Maintain goal of transparency of work at hand• Execution of Development within Process − Remember: Failed acceptance tests or unfinished work equal additional backlog or defect work − Plan for adequate testing/acceptance within sprint − Prevent scope creep! Only work on planned work
Structure• Planning − Come prepared! − Conduct sufficient discussion of stories with dev team − Obtain verbal commitment to sprint backlog• Review − Maintain consistent forum for demonstrating work/obtaining feedback − Keep reviews efficient − Plan for review “demo” preparation time• Retrospective − Revisit previous retro notes − Ensure all team members have opportunity to contribute
Tips for Getting Started• Select an agile method that • Establish your sprint schedule & suits your team logistics• Get management’s • Establish communication lines commitment/trust for distance separated teams• Ensure PO is empowered and • Set up your team can respond rapidly room/workspace• Get your team and customers • Create a vision for your product trained and motivated • Spend just enough time on• Clearly define roles and architecture & design to avoid responsibility disjointed components• Obtain acceptance from all • Have a kickoff team members Have Fun and Explore – Be Agile!
General Story Format As a <who: insert role or persona> I want <what: insert functionality> So that <why: for what business value> Acceptance Criteria: ◦ verifies the story works as the customer expected ◦ Specifies tests
Agile ReferencesShore, James and Shane Warden. The Art of Agile Development, Sabastopol, CA: O’Reilly Media, Inc. , 2008. Print.What is Agile Software Development?. 2012. Agile Alliance. 27 June 2012. < http://www.agilealliance.org/the-alliance/what-is-agile/>Agile Software Development. 2012. Wikipedia. 27 June 2012. <http://en.wikipedia.org/wiki/Agile_software_development >Manifesto for Agile Software Development. 2001. Ward Cunningham. 27 June 2012. <http://agilemanifesto.org/>
Additional Scrum ReferencesSchwaber and Sutherland, The Scrum Guide (“The official Scrum Body Of Knowledge” – scrum.org, “Canonical Scrum” - Dan Mezick) http://www.scrum.org/scrumguides/Schwaber, Agile Project Management with Scrum, 2004, ISBN-13: 978-0735619937 (The “Scrum Bible”) Amazon linkScrum In 5 Minutes http://www.infoq.com/news/2006/11/scrum-in-five-minutesWikiPedia Scrum Page http://en.wikipedia.org/wiki/Scrum_(development)Shalloway and Trott, Lean-Agile Pocket Guide for Scrum Teams Amazon LinkScrum For Team System’s web page FAQ http://www.scrumforteamsystem.com/ProcessGuidanceOld/v2/FAQ/FAQ.aspxScrum Alliance web page http://www.scrumalliance.org/
A particular slide catching your eye?
Clipping is a handy way to collect important slides you want to go back to later.