Currently Being Moderated

Defects in Requirements

Posted by Derwyn Harris on Jun 15, 2007 9:45:00 AM

This may seem obvious but bear with me for a bit on this. As

we were discussing the benefits of using a tool to capture and manage

requirements the classic benefit, of course, was the idea that the earlier a

defect (in a requirement) is caught the less expensive the overall cost. I specify

"in a requirement" because there was this tendency, in our discussion, to just

say "defects" which could mean code defects or requirement defects. I mentioned

brought this up and everyone acknowledged this to be true.

 

But it got me to think about defects in requirements. A code

defect is fairly straight forward. Something in the code fails some test,

simple. The area becomes grayer when the developer logs it as "works per the Requirement"

or something to that effect. Question is, how did we get here? How can it work

per the Requirement but fail per QA. There could be several reasons. One being QA's test

case is not in line with the Requirement or that the requirement the developer

was working off changed and somehow QA caught wind of the change.

 

This problem is even worse and is more likely to be caught

not by QA but rather by the end user. This gets into the importance of showing

the end user the product in short iterations, but that's a different

discussion. Even with quick iterations the customer finding an issue is still

considered a defect in the requirement. Something we should accept as natural

and unavoidable. Regardless, analysis has been done, development has been done

and QA has tested all based on a defect in the requirement. Maybe defect is too

harsh a word. What we are truly capturing here are miscommunications or

misunderstandings.

 

Let's take a step further back for a moment from this moment

in time. Could we have caught this earlier?  The second scenario with the end user finding

the issue is more complicated. The issue with QA finding a bug is much easier

to fix. This is of course where a tool can help. (You saw it coming) Basically

this occurs when there is a breakdown in timely communications. If the

requirements changed the correct parties need to be made aware, simple as that.

I'd even argue that even if there is an inkling of a thought that it might

change all parties should be notified so they can brace themselves.

 

The more complex scenario of user found defects can be

reduced through constant communications, reviews, and discussions. Take for

example a requirement the customer has reviewed and "signed off". That should not

be the end of the story. It should be reviewed by QA and development, who can

then add comments and suggestions (openly without fear of retribution) such

that the customer can review and agree or disagree. Even as development is

developing they should feel free to add new revelations, screen shots demonstrating

ongoing progress etc. The term "signed off" should be stricken from our

vocabulary. Rather it should be "I'm happy with what I see today".

 

During a typical day an individual could be monitoring or

working with multiple meetings, requirements, task at any one point in time. So

for true collaboration between all these individuals you would either need a

single person with super human power to multitask, multi respond sitting in a

single room of computers, phones and postIt's, tracking and coordination every

discussion and every event for one project. Alternatively you could use a tool

that can handle thousands of notifications, discussions and events daily all

the while keeping a history of these events.

 

That's our vision. 

 

 



There are no comments on this post