Original Code of XP Tracker Plugin
The following Moved from XpTrackerPluginDev now that this code has been converted into a Plugin (MartinWatt)
--
MartinWatt - 29 Jul 2002
I got below email from
RichardBennett, contributing code for a TWiki based XP Tracker. Thanks Richard! This is not yet a plugin, but could be converted into a
XpTrackerPlugin. I post it here "as is".
--
PeterThoeny - 13 Mar 2002
NOTE: All code and samples were written by Richard Bennett for NUIX Pty
Limited, and are released under the same license as TWiki.
Guys,
Thanks for your emails regarding our XPTracker tool for TWiki. As I've
explained to some of you, we don't run the plugin enabled version of
TWiki,
and we do not have the time to allocate to prepare the tools for real
realise, so we releasing them AS IS.
Please have a chat amongst yourselves about how to put this into a
plugin,
and release to the TWiki community. We release this in good faith that
they
will be released to the TWiki community ASAP in a format which everyone
can
use. Now, details...
Nothing is documented, as I haven't had time, so there may be some guess
work involved with how to use it. However, feel free to drop me emails if
there are questions.
The basic idea is that you have a TWki web for your project. The
WebHome
page contains (apart from your local installation requirements), two
XPTracker tags which display the story and task status for each
iteration.
Stories are entered in with TWiki page names ending in "Story". I have
included a sample page called "MiscSampleStory". The tags on the
WebHome
page scan the TWiki web for page ending in "Story", and parse the XML
tags
to obtain metrics.
MiscSampleStory should appear on
WebHome in the table
under the iteration named "ScorpioI1". There is no requirement to provide
a
page for an iteration, as all the high level metrics are parsed by
XPTracker out of the "Story" pages. However, a page for each iteration is
nice so that the iteration names in the table don't have "?" after them,
and can also provide a launch point for the story within the iteration. A
sample is included as "ScorpioI1". The iteration names can be anything
you
like that are valid TWiki words. We use the release name "Scorpio",
followed by "I" and the iteration number within the release. There's
nothing to stop you using alphanumeric iteration names, or numeric
release
numbers, just make them TWiki words if you want them to appear with
proper
hyperlinks.
Now I'll go through the XML tags in the "Story" pages. (this is from
MiscSampleStory) Some of these tags are not used by the XPTracker, and
are
simply there for reference of future use. I'll mark these with (NOLOGIC).
>
| Story name | XpTrackerPluginOriginalCode |
Current story name. Valid TWiki word obviously.
>
| Story summary | Miscellaneous tasks not big enough to be captured in
a
>
story |
Summary of the story. (NOLOGIC)
>
| Original estimate | 1 |
This is the original estimate from the planning game. We have used days
and
hours at various times. The value should be numeric, so just decide on
what
to use, and stick with it. Let's assume hours.
>
| Date estimated | 2002.01.01 |
The date that the story was estimated in the planning game. (NOLOGIC)
>
| Iteration | ScorpioI1 |
Name of the iteration. (explained above)
>
| Development order | 1 |
I'll cover this in dependencies later, but basically when the stories in
an
iteration are listed, this number is used for sorting. Lower the number,
higher up the list. The idea is that the iteration works down through the
list, assuming it's in order of dependency.
>
| Customer | FredNerk, MaryJones
>
|
Who is the customer. Valid twiki user.
>
| Story Lead | ? |
We assign a "Story lead" engineer, who is in charge of co-ordinating all
the tasks in the story, and co-ordinating with the customer for
acceptance
testing. (NOLOGIC)
>
| Passed acceptance test | No |
Once passed, this field needs to be changed to "Yes". The iteration page
recognises this and displays the story accordingly.
>
*Full story*
>
>
[ full story goes here ]
>
>
*Implementation notes*
>
>
[ implementation details? ]
>
>
*Links to deliverables*
>
>
[ links to doc etc.? ]
>
>
--------
>
>
Refactoring canonical subject
The name of this task.
>
| Original estimate |9 |
The estimate which came out of the iteration planning.
>
| Date estimated | 2002.01.22 |
When the task was estimated. This will be the day of iteration planning.
(NOLOGIC)
>
| Assigned to | PeterSmith |
Who is the task assigned to. Multiple engineers can be specified using
pipe
"|". See some of the other tasks in this story for details. If there are
multiple engineers (we don't use pair programming any more, so it is
valid
for us to have less than two engineers assigned), then there must also be
multiple "est", "spent" and "etc" values as well, again separated by pipe
"|".
>
| Time spent | 9 |
Time current spent on the task.
>
| Est. time to go | 0 |
Estimate of time remaining on the task.
>
| Code reviewer | |
Because we don't always pair, we have code reviews. The name of the code
reviewer goes here. (NOLOGIC)
>
| Time variance details | |
If the task took longer than estimate, full details of the reason go
here.
(NOLOGIC)
>
| *Task description*| |
This is the full detail of the task. (NOLOGIC)
The process we use is the usual planning game, stories are estimated, and
brought to iteration planning with all of engineering present. We use
large
magnetic sheets and use whiteboard markers to write up the stories and
tasks (we use the same colour markers as the XPTracker uses for stories
and
tasks in fact). Once the tasks are clear, we arrange them around the room
in order of dependency. Then engineers assign themselves. This takes the
most time, because of the dependencies. Once everything is assigned and
ready to go (including filling in the code reviewer, customer and other
details), the day ends. The day after iteration planning, engineering
begins, and the tracker types up all of the stories and tasks into TWiki.
This takes an entire day, which means by the third day, tracking may
begin,
and all of engineer no have easy access to all the details of the
iteration, stories and tasks.
The following is the sample iteration page:
>
ScorpioI1
>
This is used to sort the tables on
WebHome. All dates in XPTracker are
treated as numerics, and must be in the format YYYYMMDD.
>
*Release Scorpio Iteration One*
>
>
For story and task details, see the (master) cards for this iteration.
>
>
>| Iteration duration: | 13 days |
>| Iteration start: | 17th April 2001 |
>| Iteration end: | 4th May 2001 |
>
The above is all optional. We just use it for reference. Your mileage may
vary.
>
%XPSHOWITERATION{ScorpioI1}%
>
>
%XPVELOCITIES{ScorpioI1}%
These two tags are important. The first displays the current state of the
iteration, by parsing all the story pages it can find for this iteration.
The second displays the breakdown of hours and tasks spent by each
engineer. We plug these into an Excel spreadsheet at the end of the
iteration which the calculates the number of points each engineer has for
the next iteration.
The rest of the page is for reference, and you can include whatever you
like.
Now, we also have two special iterations. We use
TornUp to indicate that
a
story card has been torn up, because TWiki doesn't allow deleting of
pages
easily. The second is
StoryPool. We use this to hold stories which were
typed in, but were bumped from an iteration.
Moving stories between iterations is as easy as changing the
"" tag at the top of the story's page. Simple.
The tracker is the only one who updates stories. Whenever they wish to do
a
tracking run (we do every second day), they print the iteration, and
visit
each engineer with the printed page. Annotations are made by tracker as
they go, in particular the "spent" and "etc" fields, as well as the
acceptance test flag. The tracker also talks with the engineer to get
feedback on the process and work etc. ala XP requirements. After the run,
the tracker enters all the new details into the stories, and the
WebHome
and iteration home pages update automatically with the new figures.
The files included are:
templates/notedited.tmpl - The template used when creating a new story.
bin/wikicfg.pm - The code for the various tags, in the pre-plugin format.
data/Stories - Sample files for a project.
The most difficult part of installing this is definitely the tracker
learning to use the system, in particular which fields to update etc.
They
should spend some time in a test TWiki web which they can play with
first.
Good luck! Please keep me informed of progress.
All code and samples were written by Richard Bennett for NUIX Pty
Limited,
and are released under the same license as TWiki.
Contact email addresses:
richard@nuixPLEASENOSPAM.com.au,
richardb@apple2PLEASENOSPAM.org.
Regards,
Richard
--
RichardBennett - 13 Mar 2002