When I was reading the XP books I found it useful to summarise the
process. This table demonstrates how I think it works. The people
primarily responsible for a task have a tick (ü)
next to them. Some tasks are repeated (*). Step 3
Coach staff and 4
Resource the project are in parallel with Step 2 Build a release.
|
Activity within a release
|

|

|

|

|

|
|

|
|
1.
Scope the project / Make the Big Plan
Outcome:
Answer the question “Should we invest more?”
|
1-5d
|
|
|
|
|
|
|
|
1.1.
Talk about the system
|
|
|
ü
|
|
?
|
|
|
|
1.2.
Write big stories
|
|
|
ü
|
|
?
|
|
|
|
1.3.
Write any necessary prototypes
|
|
ü
|
|
|
?
|
|
|
|
1.4.
Estimate stories in months with plenty of padding
|
|
ü
|
|
|
?
|
|
|
|
2.
Build a release *
|
|
|
|
|
|
|
|
|
2.1.
Explore possibilities
Outcome:
Customer is confident there is enough material on the story to make a good
release. Programmers are confident that they can’t estimate any better
without actually implementing the system.
|
|
ü
|
|
|
|
|
|
|
2.1.1.
Write stories
Outcome:
Programmers can confidently estimate the effort required by the
story
|
|
|
ü
|
|
|
|
|
|
2.1.2.
Explore technology
|
1-2w
|
|
|
|
|
|
|
|
2.1.2.1.Build 3-4
alternative architectures
|
|
ü
|
|
|
|
|
|
|
2.1.2.2.Experiment
with performance limits of technology
|
|
ü
|
|
|
|
|
|
|
2.1.2.3.Classify
technological risks
|
|
ü
|
|
|
|
|
|
|
2.1.2.4.Practice
estimating your tasks
|
|
ü
|
|
|
|
|
|
|
2.1.2.5.Record
estimates
|
|
|
|
|
ü
|
|
|
|
2.2.
Plan Release (also when replanning release)
Outcome:
Customers and programmers can confidently agree on a date by which the
smallest, most valuable set of stories will be done.
|
1-2d
|
ü
|
ü
|
|
|
|
|
|
2.2.1.
Identify business value of each story
|
|
|
ü
|
|
|
|
|
|
2.2.2.
Estimate each story in ideal weeks (up to the length of an
iteration each)
|
|
ü
|
|
|
|
|
|
|
2.2.3.
Record estimates
|
|
|
|
|
ü
|
|
|
|
2.2.4.
Estimate the velocity of story implementation
|
|
|
|
|
ü
|
|
|
|
2.2.5.
Choose stories to implement for current and next iterations
|
|
|
ü
|
|
|
|
|
|
2.3.
If new to XP, then do a Zero-functionality iteration (run it the
same as a normal iteration but with additional outcomes/activities)
|
1-3w
|
|
|
|
|
|
|
|
2.3.1.
Rearrange the office to facilitate XP
|
|
ü
|
|
|
|
|
|
|
2.3.2.
Get the testing framework working
|
|
ü
|
|
|
|
|
|
|
2.3.3.
Get the automated build structure working
|
|
ü
|
|
|
|
|
|
|
2.3.4.
Get the network up and running with all the appropriate permissions
|
|
ü
|
|
|
|
|
|
|
2.3.5.
Get the basic install scripts set up
|
|
ü
|
|
|
|
|
|
|
2.4.
Build an iteration *
Outcome:
Fully tested, production-ready system including a new set of stories.
|
1-3w
|
|
|
|
|
|
|
|
2.4.1.
Prepare for iteration planning meeting
|
|
|
|
|
|
|
|
|
2.4.1.1.Define each
story by doing some or all of …
|
|
|
ü
|
|
|
|
|
|
2.4.1.1.1.
Think up short talk
|
|
|
ü
|
|
|
|
|
|
2.4.1.1.2.
Write description (up to 4 pages)
|
|
|
ü
|
|
|
|
|
|
2.4.1.1.3.
Write full acceptance tests
|
|
|
ü
|
|
|
|
|
|
2.4.1.2.Choose
stories to implement for next iteration, unless already done so (always
exactly 1 iteration ahead)
|
|
|
ü
|
|
|
|
|
|
2.4.2.
Iteration Planning Meeting
|
|
|
|
|
|
|
|
|
2.4.2.1.Brainstorm a
list of tasks (general categories are: programming, user documentation,
graphic design)
|
|
ü
|
|
|
|
|
|
|
2.4.2.2.Sign up for
stories
|
|
ü
|
|
|
|
|
|
|
2.4.2.3.Sign up for
tasks (preferably
2.4.2.4.within the
same story)
|
|
ü
|
|
|
|
|
|
|
2.4.2.5.Advise on
estimates (using history, velocity stats, etc)
|
|
|
|
|
ü
|
|
|
|
2.4.2.6.Estimate your
tasks in ideal days (aiming for 1-3 days each)
|
|
ü
|
|
|
|
|
|
|
2.4.2.7.Rebalance
task assignments
|
|
ü
|
ü
|
|
|
|
|
|
2.4.2.8.Record
estimates
|
|
|
|
|
ü
|
|
|
|
2.4.3.
Implement each task
|
|
|
|
|
|
|
|
|
2.4.3.1.Write unit
tests for story
|
|
ü
|
|
|
|
|
|
|
2.4.3.2.Write code
|
|
ü
|
|
|
|
|
|
|
2.4.3.3.Integrate
code
|
|
ü
|
|
|
|
|
|
|
2.4.3.4.Run all unit
tests
|
|
ü
|
|
|
|
|
|
|
2.4.3.5.Record
“Done” and “To Do” metrics on daily basis
|
|
|
|
|
ü
|
|
|
|
2.4.4.
Test each story (acceptance testing)
|
|
|
|
|
|
|
|
|
2.4.4.1.Write
functional tests
|
|
|
ü
|
ü
|
|
|
|
|
2.4.4.2.Run all
functional tests
|
|
|
ü
|
ü
|
|
|
|
|
2.4.4.3.Log
functional test scores
|
|
|
|
|
ü
|
|
|
|
2.4.4.4.Maintain
defect log
|
|
|
|
|
ü
|
|
|
|
2.4.4.5.Sign off
story as complete
|
|
|
ü
|
|
|
|
|
|
2.4.5.
Daily stand up meeting
|
|
ü
|
|
ü
|
ü
|
ü
|
|
|
2.4.6.
Track progress against iteration plan & organise corrections
|
|
|
|
|
|
|
|
|
2.4.6.1.Check
Iteration progress (how many days done? how left to do?)
|
|
|
|
|
ü
|
|
|
|
2.4.6.2.Respond to
progress problems
|
|
ü
|
ü
|
|
|
|
|
|
2.4.6.3.Report /
Graph project progress and other metrics
|
|
|
|
|
ü
|
|
|
|
2.4.7.
Share the glory / Demo the work
|
|
|
ü
|
|
|
|
|
|
2.4.8.
Little party
|
|
ü
|
ü
|
ü
|
ü
|
ü
|
ü
|
|
2.5.
Track progress against release plan & organise corrections
|
|
|
|
|
ü
|
|
|
|
2.6.
Productionizing
|
|
|
|
|
|
|
|
|
2.6.1.
Performance tuning
|
|
ü
|
|
|
|
|
|
|
2.6.2.
Big party
|
|
ü
|
ü
|
ü
|
ü
|
ü
|
ü
|
|
3.
Coach staff
|
|
|
|
|
|
ü
|
|
|
4.
Resource the project
|
|
|
|
|
|
|
ü
|