[kforge-dev] Proposal: online KForge planning game
Rufus Pollock
rufus.pollock at okfn.org
Mon Aug 7 15:40:34 UTC 2006
Both in my capacity as 'customer' and my role as 'developer' I concur
entirely with these suggestions and would be very happy to follow this
plan in relation to the current iteratoin. Further comments follow below.
~rufus
John Bywater wrote:
> 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.
This is an important point and one you have made before. My suggestion
would be to have month-long iterations with the planning game fixed to
start on a regular day close to the start of that month (e.g. the first
thursday of every month).
> 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;
Implementation detail: we are currently using trac for project managment
and suggest that all user stories (use cases?) be entered as
enhancements in the tracker and that the value/benefit be set by the
priority (1=lowest, 5=highest)
Aside: i am not sure what the semantic difference between severity and
priority is for trac tickets (severity seems oriented to bugs while
priority seems oriented to tasks and improvements0
> (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;
Implementation detail: Do costs go on each story or on the milestone? If
so how we will enter these costs: we could (ab)use the severity option
on trac enhancements for this purpose.
> (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?
Would it perhaps make sense to run this at the start of the *next*
iteration and integrate it with that iteration's planning game
> 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.
Think this is a good idea and would agree with release = 3 iterations.
Suggest update release plan every 3 iterations.
> Perhaps we could try the above routine for this iteration?
>
> With my best wishes,
>
> John.
>
> [1] http://www.agilealliance.com/articles/steindlchristophdistr
>
>
> _______________________________________________
> kforge-dev mailing list
> kforge-dev at lists.okfn.org
> http://lists.okfn.org/mailman/listinfo/kforge-dev
More information about the kforge-dev
mailing list