Requirements Traceability refers to the ability to link requirements to projects, change requests, development tasks, test cases and results, checkins, builds, releases and stakeholders. In other words - linking requirements with all relevant concepts associated with a software engineering life cycle. Given that Requirements drive the activities across the software engineering projects, maintaining such interrelationships can provide answers to some very critical and business-relevant questions relative to each requirement, whether they are related to business justification, auditing/compliance, delivery management or quality assessment.
These can be grouped by stages and constituents (some examples below).
Who are the Stakeholders of each requirement?
Which requirements are being delivered in a release and for which stakeholders?
What is the business justification and cost of delivering a feature or requirement?
What is the ROI (once the costs are determined)?
Which release will the requirement be delivered in?
What are the risks and dependencies related to the implementation of a requirement?
What is the current state of a requirement with respect to development and QA?
Who signed off on it, who accepted it?
Which checkins correspond to code complete for a requirement or feature?
Which build includes a particular requirement implementation?
Development & QA
What are the design goals and motivations of a requirement?
What are the associated test cases and quality goals?
What are the associated use cases or user stories?
In typical engineering environments, some of these questions are difficult or impossible to determine, while others require a significant amount of tedious manual effort. The reasons can be mostly attributed to the heterogeneity of ALM tools and the lack of integration between them. Whatever the cause of this fragmentation of information, requirements traceability isn't always optional for organizations. Many expend significant human effort and co$t towards collecting sufficient traceability data to maintain their audit and compliance mandates.
Traditional ALM vendors provide their own integrated solution set to help their customers achieve requirements traceability. While they are able to address most, if not all, questions above, you have to invest into their entire portfolio of products and at significant co$ts. I have rarely seen an engineering environment that has successfully adopted a single vendor solution across teams and departments. For most part, such solutions end up as shelf-ware, reflecting wasteful and irRational decisions.
It is with this in mind that zAgile delivers its tool-agnostic and open source zCALM platform that is capable of integrating concepts across software engineering life cycle with the tools that you are using in YOUR environment.
And to take that even further, you can achieve significant amount of requirements management and traceability by simply integrating your Confluence wiki and JIRA issue tracking application via zTeamwork.
zTeamwork allows you to:
- Capture features, requirements, use cases, test cases, test suites, etc. in Confluence in a semi-structured way using zAgile's smart templates.
- Link them to each other using pre-defined relationships.
- Create JIRA tasks, link them to various Confluence artifacts created above, so that you can now associated requirements with use cases, test cases, tasks, and bugs
- View any and all of these links and relationships (including attributes such as status, completion, etc.) in Confluence or JIRA using simple queries. There are JIRA properties tabs that may be configured to provide 'dashboard' type contextual views of this information.
- Search for these specific concepts from within Confluence or JIRA, regardless of where they are created. The search not only returns the matching result set but also all of the contextual relationships.
Teamwork's integration can be further extended with connectors for salesforce (link customers and cases to requirements and issues within your environment), Subversion (associate checkins with requirements) and CruiseControl (link requirements to builds).With these connectors in place, you can answers ALL of the questions above with respect to requirements traceability -- without having to buy into expensive, complex and painful single-vendor solutions.
And since zAgile's solutions are tool agnostic, you can also plug other tools on its platform to achieve the same integration capability - via custom connectors.
Somehow that seems more rational than Rational :)
Test drive these features in the sandbox