Extreme Programming Perspectives

A tool supporting a lightweight process should not impose any extra work on a developer. After all, part of the wisdom behind lightweight processes is to trim unnecessary "administrative" overhead.

Along the same lines, we should not force users to learn new tools when existing tools already do their work with satisfactory results. For this reason, whenever possible there should be some way to integrate tools that have already been adopted and used with satisfaction.

A lightweight process reduces the differences between traditional roles among developers and increases the variety of tasks that people perform within the same project. For instance, the same group of XP developers deals with customers, writes user stories, prepares and runs test cases, collectively owns the code, manages the configurations, and so on.

A supporting tool should help trace and manage the different tasks in which XP developers are involved. The entire development process from user stories and the planning game up to daily testing and down to frequent releases should be maintained and even made visible to managers, with a complete and thorough lightweight approach.

Specifically, user stories should be easily mapped to the associated CRC cards, which in turn should be coupled with the relevant implementation and testing code again, in a way that does not create any additional burden on developers. Everything should then refer to the different versions of the system under configuration. A change in the name of an entity in a user story, for instance, should be automatically reflected in a change of names in the associated CRC cards, and so on down to the code.

Moreover, the speed of development, the associated leftover bugs, and the time spent in fixing them and in refactoring should all be monitored to improve the estimation ability required in the planning game.

Holmes is a tool that tries to address these requirements. Developed with an incremental approach, it addresses the problem of developing products or product lines with a lightweight approach.

Категории