Linking needs / ideas with requirements and inturn with the various deliverables in software development process is traceability. Traceability is often the least understood and addressed aspects in software engineering and there are frequent complaints from the community that adequate time is not spent in assuring the traceability.
Leverage offered by traceability:
1. Help facilitate the product and the process quality
- By aiding test planning and management including reporting
- Excellent tool for retrospecting which particular aspect of team / product / process is currently flawed. Like which component(s), which developer(s), how much is the scope change / cost.
2. For better management of changes during development
- Map Baseline requirement versus the later additions
- Directly feed into risk planning and relevant processes like for eg how late in dev cycle could the requirements by actually freezed and what was the impact?
- Back up your reporting with data.
3. For audit, for better visibility of product in development
4. For efficient handling of maintenance / support and enhancements later on.
- Aids better estimation
- Better release planning and integration of delivery processes
Inspite of the benefits, its often an aspect which is left much to be desired:
1. Requires a bit of investment in time and cost and many projects compromise on the priorities
2. Skill limitations and the awareness of both quality assurance and control aspects which sometimes becomes challenging.
3. Lack of understanding of what traceability could offer. Most find it important to control smoke than the fire underneath.
4. Practical difficulties in integrating the different systems like requirements, development, delivery.
What the community could be doing to promote this aspect:
1. Dont review it rarely. Setup a process where the traceability aspect is revisited frequently and the team is directly responsible for the same. For eg:
- include it in doneness criteria via KPIs
- Review it along with demo in sprint review
2. Cross train the team on how to maintain traceability. Its not just testers / qa responsibility
3. Setup a culture of data based decisions and empower the teams.
4. Integrate your orgs system and tools and bring out the issues and ask for mgmnt support.