|XP Studio | Ant | Eclipse|
eXtreme Programming Markup Language (XPML)
The need for electronic user stories
Traditionally, XP captures user stories on index cards, i.e. paper. There are, however, reasons to maintain electronic versions, see e.g. Breitman et al. Here, we will concern us with a couple of additional reasons.
In open source projects, and more and more in companies, developers may not be co-located. It is obvious that not being physically close to one another means one cannot hand over index cards. Therefore, we need to make the user stories available in electronic form.
Open source developers and telecommuters are used to working with electronic documents: source code. Putting the user stories where the source code is, is thus convenient: in the source code control system (SCCS, e.g. Subversion). It also makes sense, since stories are used as source/input into the development process. Having user stories stored in the SCCS has the additional advantage of them becoming versioned, providing a sense of history.
Another advantage of having electronic user stories, is that they become available as link targets, e.g. from acceptance tests.
But arguably the biggest advantage, as seen from the context of this project, is that the stories become available to the (automated) build process, e.g. for generating reports.
An electronic format for user stories
Since index cards are pretty structured, it makes sense to use something just as structured for capturing user stories in electronic form: XML. This is especially important when using user stories in the automated build process, as mentioned above.
After considering turning user stories into electronic documents, one naturally wonders about other XP documentation: release and iteration plans and metaphor (including the glossary of terms). For these documents one can argue just as well that it makes sense to store them in electronic form, e.g. linking to terms in the glossary would be nice, as would being able to generate a changelog from the release plan.
The XML schemas for describing the aforementioned XP documents will collectively be known as eXtreme Programming Markup Language (XPML):