Specification workshops

Collaborative and incremental specifications require the input of project stakeholders, domain experts, software developers and testers. Getting so many people together can be a real challenge, especially since domain experts and stakeholders have other things to do. In order to keep up with the pace of short iterations, we need to have a very efficient flow of information. As an iteration might only last two weeks, delaying key decisions for even a day or two can have a serious impact on the outcome of the iteration. Specifications need to be nailed down and efficiently communicated to all project participants during each iteration. We need to identify functional gaps and clear up inconsistencies and misunderstandings. Written specifications are fine as documentation, but they do not support an efficient flow of information.

Instead of using written specifications and relying on people to review them separately, organise a specification workshop at the start of each iteration. Get everyone in the same room, discuss examples, and resolve issues, allowing people to voice their concerns. Ensure that all participants build a consistent shared understanding of what the system should do, so that developers and testers have enough information to complete their work for the current iteration. Specification workshops are an efficient use of the time of senior project stakeholders, as we can schedule them regularly in advance. Write down and clean up the examples identifed and use them as documentation of the results of the workshop, but do not rely on written specifications for communication.