350 likes | 605 Views
Application Development with The Agile Scrum Method. Agile Scrum in Theory and Practice. Tom Pletzke, CSM. Scrum Alliance.
E N D
Application Development with The Agile Scrum Method Agile Scrum in Theory and Practice Tom Pletzke, CSM
Scrum Alliance • “Scrum is an agile framework for completing complex projects. Scrum originally was formalized for software development projects, but works well for any complex, innovative scope of work. The possibilities are endless. The Scrum framework is deceptively simple.” • http://www.scrumalliance.org/ • http://www.youtube.com/watch?&v=XU0llRltyFM
Why Agile? • What are the Agile principles and practices that guide teams? • What are the roles of an Agile team? • How do teams apply these Agile practices? • Maintain a high-level Product Backlog • Conduct Release Planning • Conduct Sprint Planning • Track progress daily and stick to a heartbeat • Deliver a demo with a review and retrospective
Agile software development practices were introduced during 2007 to help improve productivity, cost and time to market • The IT industry widely recognizes that Agile practices help teams: • Effectively manage changing requirements which leads to… • Increased productivity (and Business Partner satisfaction) which facilitates… • Improved time to market therefore… ….driving cost down • Agile practices address the typical IT project problems through…. • Developing usable software more quickly • Providing timely and regular visibility of the software to the Business Partner • “Small to medium sized teams using Agile are on average 30-40% more productive than traditional teams” ** **David Garmus – founder The David Consulting Group”
Several popular variations of Agile Software Development exist, we will discuss the Scrum framework in this presentation • Methodologies all characterized by: • Adaptive rather than predictive processes • People oriented rather than process oriented • Assume requirements will change • Assume Business Partners do not know what they want until they start using • Short iterations or “builds” of 2 – 6 weeks • Tight project planning for the short iterations • Constant Business Partner interaction • Integration/ regression testing as each build is integrated into the whole
Waterfall Agile Cost Schedule Requirements Constraints Value /Vision Driven Agile PEP Plan Driven Current PEP Estimates Cost Schedule Features The Plan creates cost/schedule estimates The Vision creates feature estimates At the heart of Agile, is a paradigm shift in the way projects are planned and managed
The Waterfall method typically engages the Business Partner at specified touch points, with weeks of silence in between
Release Roadmap Product Owners Track & Adjust Agile methods create a Business Partner feedback cycle with the project team which enables regular visibility of the software product Product Owner is a key role to this process Define System Plan Releases Small Releases Iterate Accept? Product Backlog
The success of Agile depends on the implementation of these guiding practices • Time-boxed development • Establish a heartbeat through standup meetings, short iterations and incremental releases • Plan, design, build, test and review each iteration • Just in time elaboration of requirements • Maximize work not done by avoiding unnecessary inventory • Highest priorities first • Implement highest priorities to acceptance • Pull quality forward • Reduce technical debt by building in quality early in the lifecycle • Collaborate, Inspect and Adapt • Visibility, reviews, demonstrations, retrospectives
Program/Product Management with Scrum relies on multiple levels of planning with ever increasing detail Product Vision High Level (Less detail) Product Roadmap Release 1 Release 2 Release 3 Release Plan Sprint 1 Sprint 2 Sprint 3 Sprint 4 What’s left to do? Sprint Plan Burndown Chart … Task n Task 1 Task 2 Very Detailed Daily Who, What, How Long Who, What, How Long
Daily Scrum Meeting • Done since last meeting • Plan for today • Obstacles? 24 hours • Sprint Planning Meeting • Review Product Backlog • Estimate Sprint Backlog • Commit to 14 days • Sprint Review Meeting • Demo features to all • Retrospective on the Sprint Backlog tasks expanded by team 14 days Sprint Backlog Features assigned to Sprint Estimated by team Potentially Shippable Product Increment Product Backlog Prioritized product features Desired by Business Partner At the lowest level of planning is the Sprint or iteration – this is where the task level details are elaborated and executed 15 mins 3-4 hrs 1-2 hrs Sprint = iteration Scrum Framework
Agile encourages “cake slice” development and testing… So the Product Owner has visibility to functionality earlier and provide feedback often… …as opposed to the traditional “cake layer” approach in waterfall methods
Collaboration and Consensus • High performance teams rely on collaboration to create and respond to change • Collaboration – team makes decisions, project manager only guides the decision process • Consensus – • “I can live with and support that.” • Fist of five: • 5 = wild, unbridled support • 4 = this is a fine idea, wish I’d thought of it • 3 = I can live with and support it • 2 = I have reservations I’d like to think about • 1 = I am very opposed; we shouldn’t move forward
Pigs and Chickens • Pigs are fully committed (Development Team, Product Owner/Business Partner, Project Manager/Scrum Master) • Chickens can make contributions (Team Advisors) • Only the fully committed can speak in daily meetings • Contributors only get to observe in Daily Standup • They are active contributors in Planning and Review meetings
Six Step Approach for Applying Agile Practices • Create a Product Vision • Define a Product Backlog • Conduct Release Planning • Conduct Sprint Planning • Track Daily Progress and Maintain Heartbeat • Deliver a Sprint Demo, Review, and Retrospection
Define a Product Backlog • Product Backlog – what are all the desired features for this product? • Product Owner defined and prioritized though others contribute items (Architect, Team, Stakeholders) • Team estimate at the gross level • Story Points - tells the team how large a story is • Prioritization and estimation: • First best guess, high order • Fluid and organic • New items can be added at any time to the Product Backlog
Story points == actual hours Story Points • A story point is a number that tells the team how large a story is Unknowns Effort Complexity 1 2 3 5 13 40 100 21 8 The largest new feature A typo
Product Backlog Team Capabilities Business Conditions Technology Current Product Sprint Planning Meeting Participants Product Owner Development Team Business Partners Management Inputs Outputs Sprint Planning Meeting Sprint Goal Sprint Backlog • Priorities • Detailed Tasks • Detailed Estimates • Assignments
Sprint Planning Meeting • Review the current Product/Release Backlog • Estimate team velocity • Select an initial Sprint Backlog with theme • Task out stories and provide estimates using story points • Finalize priorities • Complete task definitions and assignments • Commit team • Alert stakeholders
Daily Standup • Purpose: To collect status and set the day in motion • Participants: All team members: developers, testers, Business Partners, project manager • Agenda: 15 minutes (1-2 min/participant) • “What did I do yesterday?” • “What I am doing today?” • “What is getting in my way?” • Outcomes: • Team commits to tasks for the day • Re-assignments as necessary • Updates to Burndown Chart, task status, and story status
Daily Standup—The “Gotchas” • Same place/same time every day (What works for the team?) • Always start on time – honor each other’s time • NO PROBLEM SOLVING! • Everyone is responsible for keeping to the agenda and time box • This is the TEAM’S meeting.
User Stories • Show Actual User Story
Design Document • Show Actual Design Document
Release Workbook • Show Actual Release Workbook
Sprint Demo • Sprint Demo • Potentially shippable functionality • Development team conducts DEMO for Product Owner and Stakeholders • Team gathers feedback • Product Owner uses demo to guide future decisions • Spend no more than 2-3 hours preparing the demo • NO POWERPOINT!
Sprint Retrospective • The team’s chance to build in learning and adjustment • Retrospection is at the heart of the agile principles – creating and responding to change about how the team will perform • Sprint Retrospective: • What worked well in this Sprint that we would do again? • What caused us difficulty? • What new things do we want to try in the next Sprint? • Celebrate!
Success Factors for Agile • Co-located teams are better • Small team size – 8 or less ideally • Product owner involvement • No multiplexing of team members • Sustainable pace • Continuous integration of builds • Concurrent and automated testing • Power of the retrospective
Rally Software • Web Based Scrum Management Software • http://www.rallydev.com/
? Application Development with The Agile Scrum Method Agile Scrum in Theory and Practice Tom Pletzke, CSM