A non-invasive approach to trace architecture design, requirements specification, and agile artifacts
Agile processes emphasize iterative delivery rather than assuming the definition of all detailed requirements and architecture up front. This "just enough" approach generally considers user stories and acceptance tests as sufficient documentation for successful system development. However, industry practices have shown that this minimalism is appropriate for projects with short duration and small collocated teams. In the development of large systems, the "just enough" documentation goes beyond the traditional set recommended by the Agile evangelists, due to the diversity of elements to be considered, as for instance geographic distribution of the teams, necessity to comply with industry regulations, strict IT governance programs, integration of the system being developed with others, or even the presence of not-so-agile people in the teams. In this context, a more complex set of artifacts is required to ensure the proper development of systems, such as more detailed requirements documents and architectural specification. In this regard, to support the agile development of large systems, we introduce TraceMan - Traceability Manager as a mechanism for ensuring traceability among user stories, traditional requirements documents, test specifications, architecture design, and source code. We also present an experience report on how TraceMan has been used in the daily activities at John Deere Intelligent Solutions Group (ISG) to support traceability among development artifacts.