One of the most time-consuming overheads is that of managing traceability.
Given a reasonably complex project with hundreds or perhaps thousands of stakeholder requirements how do you trace the fulfilment of a single requirement from specification, through design, development and ultimately to testing and launch?
How do your prove at test or implementation time that a requirement has been satisfied? How do you track the progress of delivery on a particular requirement during development? And how do you ensure that your design incorporates all of the particular requirements as specified in earlier phases?
The simplest method has already been outlined in the examples above. By using a common format for both the requirements specification and the technical specification it is relatively easy to track a requirement through to a design element. If the test plan is also based on the same format then the traceability can be extended to the testing phase and it can be shown in test reports — which test validates which design element and, consequently, which requirement.
However, this alone is often not enough. With large-scale projects the sheer number of requirements overwhelm this kind of formatting. It is also possible that a single requirement may be fulfilled by multiple elements in the design or that a single element in the design satisfies multiple requirements. This make tracking by simple reference number difficult.
It is possible to cross-reference requirements versus design decisions in a separate database or spreadsheet. This, however, incurs a large maintenance overhead and can be very difficult to keep in synch with the parent documents. The best solution remains an appropriate structure. While formatting and structure may not provide one-to-one traceability for every requirement, the use of an appropriate structure will minimise confusion and may eliminate the need for more complicated solutions.
At the extreme end of the scale you may wish to build or buy an integrated system to track requirements for you. There are off-the-shelf software tools available which use large databases to track individual requirements as database elements. These are then linked to similar items in specification and testing databases to provide the appropriate traceability. The benefit of a system such as this is that it can automatically produce reports which highlight problems with traceability.
Nick Jenkins is an IT manager with 10 years experience in software development, project management and software testing. He’s worked in various fields of IT development in Australia, Britain and the USA and occasionally he learned something along the way. Now he lives on the banks of the Swan River in Perth, Western Australia, and he publishes the odd guide to help aspiring IT professionals. Nick’s website can be found at www.nickjenkins.net.