[kforge-dev] Proposal: online KForge planning game
John Bywater
john.bywater at appropriatesoftwarefoundation.org
Mon Aug 7 14:38:33 UTC 2006
Rufus and I have talked about making the KForge project more open, and
to this end we wanted to attempt to do the planning game online. For the
last 15 iterations, it's always been face-to-face.
The general concerns of distributed agile software development are
described in a few places, for example in [1], but the solutions are
experimental.
In short, we can start to make "distributed agile" work by tailoring the
agile approach to our distributed context.
Particularly I suggest we:
1. Invest in bi-lateral remote communication - all the usual suspects
(IRC, IM, VoIP, etc.) can be used to increase communication capabilities
between individuals, and thereby to avoid "death by distance". Attempt
to get good at distributed pair programming....
2. Generate and publish the dates and serial numbers of iterations well
into the future, with a notice that a planning game will be held at the
start of each iteration, and publish a description of the planning game.
3. Split iteration planning game into four distinct parts:
(i) at any time during the project, the customer writes and publishes
user stories to an issue tracker, the customer estimates and publishes
an estimate of the benefit of each story to the issue tracker, the
customer makes sure there is always a good "head" of unimplemented stories;
(ii) at the start of each iteration, the customer chooses as many user
stories as completed on average during the last few iterations, marks
these within the issue tracker (e.g. against a Trac milestone), when
done the customer notifies the mailing list that this descision has been
made;
AND THEN, EITHER
(iii) when the selected story list notification arrives at the
developers inbox, the developers continue with the iteration by
implementing the user stories until available working time expires.
OR (if more analysis and planning accuracy is desired for the price of
less implementation time, or if there are more than a very small number
of developers)
(iii) when the selected story list notification arrives at the
developers inbox, the developers self-select stories (somehow), and then
break the stories roughly down into tasks, estimate each task, add task
estimates up to create story estimates, and create a total estimate for
the selected story list;
(iv) if the total task-based estimate differs greatly from the available
time, the customer bumps or pulls stories, perhaps pulling some extra
task-breakdown and task-estimation work, until the plan is thought to
fit the resource;
(v) when the iteration plan is agreed by everybody, the developers
publish their task breakdown on the issue tracker against the milestone,
notify the mailing list that their planned tasks are pubished, and
continue with the iteration by implementing the user stories task by
task until available working time expires.
4. As the iteration continues, the developers track the completion of
their own tasks, and notify the mailing list and the customer when user
stories are completed, then the customer either provides feedback or
accepts the user story implementation, but the customer tracks
completion of the user stories. Developers and customers communicate as
much as they can, and sometimes pay each other visits.
5. Regular method retrospectives to provide a place for discussion of
the process. Perhaps we could post a standard invitation at the end of
each iteration to provide feedback on the development process as it was
during the last iteration?
6. (Optional extra) We could maintain a release plan by saying that
three iterations make a release, using the latest average
stories-per-iteration count to estimate how many user stories will be
implemented in each release, and then listing out (in order of estimated
value) the unimplemented user stories against each release. The customer
could update the release plan each release, or every three iterations.
Perhaps we could try the above routine for this iteration?
With my best wishes,
John.
[1] http://www.agilealliance.com/articles/steindlchristophdistr
More information about the kforge-dev
mailing list