120 likes | 444 Views
Planning Extreme programming. Agenda Planning Roles in XP Variables in Project Planning Estimation approach in XP Planning Planning stages The Big plan Release planning Iterations Stories Tracking Stand-up meetings Visible Graphs Bugs Team changes. Planning.
E N D
Planning Extreme programming • Agenda • Planning • Roles in XP • Variables in Project Planning • Estimation approach in XP Planning • Planning stages • The Big plan • Release planning • Iterations • Stories • Tracking • Stand-up meetings • Visible Graphs • Bugs • Team changes
Planning • To make best use of time available • To do important things first • Coordination between different departments/people • To reduce stress • Managing exceptional situations • Managing change
Planning goals in XP • Remove fear and increase trust • Instead of big plan, there are constant course corrections • Business people make business decisions • Date • Priority • Scope • Technical people make technical decisions • Estimates • Person who makes the business decisions is called the customer
Customer • Understands the domain well by working in that domain, and also by understanding how it works • Can understand, with development's help, how software can provide business value in the domain • Is determined to deliver value regularly and is not afraid to deliver too little rather than nothing • Can make decisions about what's needed now and what's needed later • Is willing to accept ultimate responsibility for the success or failure of the project
Planning approach of XP • Break development into two week cycles called iterations • In each cycle, take up some features (stories), and do requirement specification, design, development, testing, release • Keeping cost, quality, time the same, change the scope of the deliveries • Customer chooses the features to implement • Each Programmer chooses the features that he/she will take up
Estimation • Use last task to estimate the next task
Scoping a project • Big stories • Rough estimates for each story • The number of people in the team • Any constraints
Release Planning • Allocates stories to releases and iterations • Break bigger stories into smaller stories • Estimate each smaller story • Defer less valuable stories • Done by customer and programmers • Customer defines stories, assigns priorities, assigns stories to releases • Programmers calculate estimates, warn about technical risks, measure team progress to update the estimates
Release planning contd... • The release plan is a snapshot of the current expectation • It could change based on changing customer priority, or unexpected technical challenges • Planning should be done for around 2 months, beyond that the effort for updating plans becomes very high • Stories should center around functionality – infrastructure like frameworks should be developed incrementally • Release plan can be stored as a set of cards – each card contains a story
Iteration Planning • Similar to release planning, but on a finer level • Done on an iteration planning meeting • Stories for the iteration are broken up into tasks • Additional “internal” tasks are added • Programmers take up tasks and provide estimates • Each iteration has a “tracker” who volunteers to take up the task of monitoring progress
Velocity • The number of tasks the programmer can take up • It is programmers responsibility to track his velocity • Programmer should take up only the same number of tasks as he did in the previous iteration • In Xplanner Programmer enters details of the exact hours worked on a task regularly
Tracking the iteration • Stand up meetings • If things are not on track, some features can be removed – but the date should not be changed • At the end of the iteration, there is a demo meeting; where each programmer pair, or the customer demoes the new features