[Dear Readers, our good friend Pat O’Toole, CMMI expert and seasoned consultant, is collaborating with us on a new monthly series of CMMI-related posts, "Just the FAQs." Our goal with these posts is to provide answers to the most frequently asked questions about the CMMI, SCAMPI, engineering strategy and software process improvement. This month Pat talks about bidirectional requirements traceability. Take it away, Pat! ~ the CMMI Appraiser]
Requirements Management (REQM) SP1.4, the practice that focuses on bidirectional traceability of requirements, is like the obnoxious sibling that demands to be the center of everyone's attention, to the detriment of that very special child who is much quieter and certainly much better behaved. In the case of REQM, the well-behaved child is SP1.5 - Ensure Alignment Between Project Work and Requirements. So let’s pause for a moment and give that angelic child the attention she so rightly deserves…
There are essentially two ways for things to get out of alignment with requirements. First, since most of us are human, every once in a while we make mistakes. Perhaps the designs/test cases don't cover a requirement or two, and perhaps they include a design element/test case that isn't directly tied to any of the requirements – thereby representing defects of both omission and commission. Typically such issues are detected through peer reviews or some other verification technique. To rectify such issues, the designs/test cases are simply corrected or otherwise knocked back into alignment with the requirements.
The second case occurs when everything is in glorious alignment with the requirements (cue the harp), but then that blasted requirement change is accepted. Given the change, something now has to be realigned with this updated set of requirements.
The specific goal supported by these sibling practices is, “Requirements are managed and inconsistencies with project plans and work products are identified.” That latter half of this goal statement – the bit in bold – is the “glass half empty” view of the SP1.5 practice statement: “Ensure that project plans and work products remain aligned with the requirements.”
So here’s the punch line – although SP1.4’s expectation of “bidirectional traceability” gets all the attention and, with its discussion of “horizontal and vertical traceability,” more than its share of angst, it is merely the ENABLER of SP1.5 – the “maintain alignment” practice. The thinking is that by establishing such traceability, the engineers are much more likely to cover all the requirements in the first place or, if not, to have their peers use the traceability mechanism to uncover errors of omission and commission when reviewing their work products. In addition, bi-directional traceability enables more efficient analysis of candidate change requests, as well as more effective realignment of any and all affected work products with the new set of requirements. And THAT’s why the model suggests we implement traceability – it’s simply a tool to help us keep things aligned.
And which project work products should be kept aligned with the requirements? Absolutely EVERYTHING – after all, if it weren’t for the requirements we wouldn’t have a project! So the project plan, schedule, issues log, risk list, emails, use cases, prototypes, design elements, code, test cases, deployment plans, etc. etc. should all be targeted at meeting the project requirements. However, although everything the project team does should be focused squarely on satisfying the requirements, not all of the work products they generate will gain efficiencies by being traceable to them. Which ones do? Ah, now THAT depends!
So if you only focus on the obnoxious problem child, you may establish a bi-directional requirements traceability mechanism so intricate and academically beautiful that it warrants a patent, but one that may not best serve its intended purpose. The engineers, who abhor doing non-value-added, administratively burdensome busy work, may begrudgingly use the thing, but their hearts won’t be in it.
On the other hand, if you encourage the engineers to exercise professional judgment by establishing mechanisms that ensure that the key work products stay aligned with the requirements, they’ll get it, they’ll build it and, more importantly, they’ll USE it! I don’t know about you, but I would much rather have smart engineers do smart things to help themselves than to force them to do something they don’t want to do just because some model tells them that it’s good for them – whether they believe it or not. Remember – when it comes to engineers, improvement is best done with them and for them, not to them!
© Copyright 2014: Process Assessment, Consulting & Training and Broadsword Solutions