Copyright David Churchville - XP and Agile Planning David Churchville ExtremePlanner Software XP Fishbowl San Diego Code Camp San Diego Code Camp
Copyright David Churchville - Topics Why Plan? Release planning Iteration planning Daily planning Example Questions?
Copyright David Churchville - Why do we plan? To answer questions about a project –What will this system need to do? –What are the expected benefits? –When will it be available? –What will it take to build it? But mainly: Is it worth doing?
Copyright David Churchville - Why does planning fail? Pitfalls of Traditional Plans –Activity-based instead of feature-based “resource” allocation and 100% utilization –Work is not prioritized by value –Uncertainty in estimates is ignored –Estimates are treated as commitments
Copyright David Churchville - Why Agile Planning? The further we are from delivery, the less accurate the plan To reduce risk, we need to learn more by delivering working software quickly Feedback (product and technical) is used to improve the accuracy of the plan
Copyright David Churchville - Agile Planning Levels Daily Planning (stand-up meetings)
Copyright David Churchville - Agile Planning Levels Release Planning –Primary goals: overall vision, external communication –Feature level planning –Big picture thinking –Driven by the customer/product owner
Copyright David Churchville - Agile Planning Levels Iteration Planning –Primary goals: internal communication –Task level planning –Development team drives this from priority and risk viewpoint
Copyright David Churchville - Agile Planning Levels Daily Planning (standup meeting) –Primary goals: internal communication –Individual planning and coordination –Avoids duplicated effort –Difficult to “go dark”
Copyright David Churchville - Release Planning Steps Brainstorm a set of user stories Estimate relative size of stories Choose release criteria (date or feature set) Prioritize stories for release Choose a set of features
Copyright David Churchville - Release Planning Steps Brainstorm a set of user stories –Roles and goals –As a __ I can __ so that __ –Involve the entire product team –Review as a team to normalize –OK if we don’t capture everything
Copyright David Churchville - Release Planning Steps Estimate size of stories –Use points or ideal time –Suggest S,M,L or 1,2,4,8,16 –Educated guess or “planning poker” –Goal is to help customer prioritize
Copyright David Churchville - Release Planning Steps Choose Release Criteria –Fixed Deadline (we need it by Q2!) –Fixed Scope (when can we have it??) Issues –Can’t pick both scope and deadline! –Either scope or duration is fuzzy
Copyright David Churchville - Release Planning Steps Prioritize Stories for Release –Force rank stories ( …N) or… –“Buy” stories Let each person pick top N Or give each person limited points to spend Allow small budget for infrastructure
Copyright David Churchville - Release Planning Steps Choose stories for release –For date-driven releases, calculate capacity FTEs * Workdays * EffectiveHrsPerDay 4 FTE * 30 days * 5 hours per day = 120 ideal hours –Select stories based on what fits (convert size to duration) –Note which stories are “must have”, “should have”, and “nice to have” in case of scope cuts
Copyright David Churchville - Iteration Planning Steps Re-prioritize work (after first) Select stories for the iteration –Determine iteration capacity –Priority-based or risk-based?
Copyright David Churchville - Iteration Planning Steps Break stories into tasks –Estimate task durations (not size) –Split or merge stories as needed –Reality check for commitments No need to assign tasks.
Copyright David Churchville - Daily Planning Steps Standup meeting –What did I accomplish yesterday? –What do I plan to accomplish today? –What are the obstacles blocking me? Keep it short!
Copyright David Churchville - Daily Planning Steps Add any new tasks Sign up for tasks Update estimates and status Update “information radiators”
Copyright David Churchville - Resources - Books Agile Estimating and Planning (Cohn) Planning Extreme Programming (Beck, Fowler) Agile Project Management with Scrum (Schwaber)
Copyright David Churchville - Resources - Tools For small, co-located teams –Index cards, whiteboards –Excel spreadsheets For distributed teams/larger teams –ExtremePlanner (extremeplanner.com) –Version One (versionone.com) –XPlanner (xplanner.org)
Copyright David Churchville - Example Sudoku Discuss and prioritize stories for the day
Copyright David Churchville - Thank You For a copy of this presentation –