203
baselining daily, which is highly disciplined but can prove onerous, and does
not necessarily add much value;
baselining software items once they have been unit tested – which is perhaps
the most practical and realistic approach;
baselining at the end of a timebox. This is probably fine if the timeboxes
themselves are very short (a few days, perhaps) but less sensible with longer
ones, or, for example, the 30-day ‘sprints’ used within Scrum.
The selection of the level of items to choose as configuration items is also very
relevant. With a lot of development going on in parallel it is probable that
lower-level items will need to be managed individually, but this will naturally
create an additional burden later when the whole system is brought together.
The obvious targets for the application of configuration management in this
environment are the prioritised requirements list and the prototypes that are
developed from this by users and developers jointly. At the end of each
prototyping cycle the prototype is placed under configuration control; this is the
equivalent of it being signed off in more traditional approaches. This control will
consist of logging the version of the actual prototype, the tests run on it and the
record of the users’ feedback and comments. Thus, as the prototypes are
developed and refined, a complete audit trail is created of the changes made,
and, very importantly, the reasons why they were made.
The high-level requirements, which should be relatively stable compared with
the ever-changing prototypes, should be baselined quite early in the development
project. They too may change of course, since the very process of prototyping is
likely to give rise to further requirements, which will ensure that the prototype
evolves iteratively towards the final solution. But at least these changes will be
handled in a managed way, and this will ensure that the Agile approach will not
lead to a development that spirals out of control.
Technique 61: Requirements traceability matrix
Description of the technique
The Requirements Traceability Matrix is a document which helps ensure that a
project’s scope, requirements, and deliverables remain consistent with each other
when compared with the baseline. Thus, it traces the deliverables by establishing
a thread for each requirement, from the project’s initiation through to the final
implementation.
The requirements traceability matrix can be used to:
enable backward tracking of requirements to identify the source of each of
them, to support clarification, change control and adjustment of their
priorities – particularly important when requirements are in conflict;
track all requirements and whether or not they are being met by the
subsequent solution – achieved by providing a forward trace to identify what
happens to a requirement throughout the rest of the solution development
lifecycle, including design, build and test;
DEFINE REQUIREMENTS