TrainingConferencesAbout UsContact UsAdvertiseSQE.comRSS Feed

StickyMinds.com: brain food for building better software

Log In
 Clarify Your Search Criteria

Tips on Using Our Search Feature(s)
 
StickyMinds.com Home
ResourcesTopicsCommunityPowerPassBlogs
Home  >  Detail: Inspecting Requirements


A StickyMinds.com Original
Article Picture
Inspecting Requirements

By Karl E. Wiegers

Send This Content to a FriendGet a Short Link to This ContentPrint This ContentSee User Comments About This Content

Summary: Errors in requirements specifications translate into poor designs, code that does the wrong thing, and unhappy customers. Requirements documentation should be inspected early and often. Anything you can do to prevent requirements errors from propagating downstream will save you time and money. Karl Wiegers shows you how.


Rally Software
If I were limited to performing just one quality practice on a software project—and thank goodness I’m not—I would formally inspect every requirements document. Industry data suggests that approximately 50 percent of product defects originate in the requirements. Perhaps 80 percent of the rework effort on a development project can be traced to requirements defects. Anything you can do to prevent requirements errors from propagating downstream will save you time and money. 
 
What Is Inspection? 
Inspection is a well-defined formal peer review process, very different from simply distributing several copies of the requirements specification and inviting comments. The inspection process includes several stages: planning, overview, individual preparation, inspection meeting, rework, and follow-up to verify the changes made during rework. 
 
In addition to the author of the work product being inspected, the inspection team includes individuals performing several roles. The moderator plans and leads the inspection, the reader presents the product to the other team members, and the recorder logs defects found and issues raised. 
 
Inspection Participants 
Appropriate inspectors of a requirements document include its author (typically a requirements analyst), another skilled requirements analyst, the project manager, and actual users or marketing representatives. Anyone who has to do work based on the document also brings a vital perspective. These downstream “victims” of the requirements include architects, designers, system test engineers, documentation writers, and support representatives. 
 
The user viewpoint is critical. Inspectors who are not users cannot accurately judge whether the specification correctly addresses the users’ needs. Non-user inspectors often guess at what the users need and add extra requirements. 
 
To keep the team to a maximum of about eight people, selectively choose participants from among the many candidates. Favor people who can actually find problems with the requirements. Avoid including people for managerial or political reasons or those who just wish to learn about the project and its requirements. 
 
The Preparation Stage 
During preparation, inspectors examine the requirements document to understand it and to find possible defects. As well as simply reading the document from front to back, inspectors use checklists of typical requirements defects to help focus their attention. See http://www.processimpact.com/pr_goodies.shtml for defect checklists for requirements documents and several other software deliverables. 
 
Inspectors can also use other analysis methods during preparation. Evaluating requirements for testability reveals incomplete, ambiguous, and inconsistent requirements (see Rodger Drabick’s article “On-Track Requirements” in the May/June 1999 issue of STQE magazine). Walking through test cases or usage scenarios will show whether the necessary functional requirements are present. 
 
Another approach involves identifying all output data items for each requirement and listing at least one other requirement that uses each output item. Look for unnecessary requirements—reducing the project’s development effort will more than pay for the inspection. Ambiguities, omissions, incomplete or flawed logic, and redundancies should also catch your eye. 
 
Missing requirements are among the hardest errors to detect. They’re invisible. Inspectors don’t see them during preparation and the reader doesn’t describe them during the inspection meeting. Use the following techniques to look for missing requirements:
  • See if you have received requirements from all of your product’s user classes.
  • Check whether nonfunctional requirements, such as quality attributes, performance goals, constraints, and external interface requirements, have been specified.
  • Ensure that the specification conforms to all pertinent business rules.
  • Represent requirements information in multiple ways. Models such as the classical structured analysis diagrams and newer UML models provide a high-level view. Decision tables and trees help you catch missing cases and undefined “else” conditions.
  • Build tables of similar requirements that fit a pattern to avoid duplications or oversights.
  • Check whether requirements are present in all pertinent functional categories for your products. These categories might include reporting, edit operations, security, user customization, printing, and transaction logging, or whatever functional areas your products typically include.
  • Make sure that the source and usage of all data items are stated.
The Inspection Meeting 
During the inspection meeting, the reader describes his interpretation of each requirement in his own words. Such paraphrasing allows the other participants to compare their understanding with that of someone other than the author. Differences in interpretation can reveal omissions and surface assumptions. Inspection is a powerful method for uncovering ambiguities, in which different readers interpret a requirement in different ways. 
 
If the reader has difficulty describing a requirement, perhaps it is too complex, poorly expressed, or incorrect. Simply reading the specification aloud verbatim or asking the inspectors if anyone has any questions on each page fails to catch many requirements problems. 
 
Review Early and Often 
Run your requirements through a quality gauntlet of both informal reviews and formal inspections. Instead of waiting until the big honkin’ requirements specification is done, start holding informal reviews when it is perhaps 10 percent complete. Informal reviews will reveal many errors quickly and cheaply.  
I recently reviewed a badly flawed 300-page specification. It had serious organizational problems, violated every rule for writing unambiguous requirements, and omitted important information. Had I examined just the first thirty pages several months ago, I could have suggested many improvements in the way it was being written. This would have saved much rework at this late stage. 
 
I want to learn about errors in the requirements before I’ve written any code for that part of the system, not when an irate customer calls. Inspections are a powerful way to help me achieve that goal.


About the Author
Karl Wiegers, Ph.D., is the Principal Consultant at Process Impact in Portland, Oregon. He’s the author of Creating a Software Engineering Culture, Software Requirements, and the forthcoming Peer Reviews in Software: A Practical Guide. You can reach Karl at www.processimpact.com.

Back to Top
 

StickyMinds.com Weekly Column From 7/30/01 

Member Comments
Add Your CommentExpand Comments
 
Comment:    
by Gene Fellner 12/5/2002

Thanks to Karl for writing the most accessible and useful article I've seen on this critical but much overlooked subject. We use templates; Edward is right about their importance in normalizing format and language. I would go a step further in reporting the inspection meetings and require formal minutes. Of course that implies a scribe, which should not be considered a luxury; a good scribe is like an inspection, saves you a bundle down the road. Those who pointed out that no one can inspect their own work properly and that the inspection team must include a tester are absolutely right. Regarding Sanju's concerns about the difficulty of...Read On

 
 
Comment:    
by sanju kp 9/7/2001

Nice article,I feeel that the following points regarding inspections are releavent 1.It's a time consuming activity 2.Difficult to participate real users 3.Inspectors are not come preapred or may be looking into one perspective of the problem 4.Conflict of intrests with in the inspection group. 5.Not analysing diiferent sub requireemnts of a particular requirements 6.Inspectors thinking in the perspective of "How to do" rather than one catching "what to do" 7.Not looking into the enhancement or changes that can be happend to a particular requirement I think moderator can control most of these drawbacks to some extent,so the...Read On

 
 
Comment:    
by ajith kumar 8/15/2001

An excellent article: This is the foundation we build the software. Unless the foundation is solid, for definite reasons we are asking for trouble. Author defines the pillars of the requirement phase. But in today’s world of “code-to-hell” attitude shown by different organizations, how far these techniques could be used within the organizations are a matter of concern. (08-15-01)Ajithkumar.G

 
 
Comment:    
by Edward Schantz 8/1/2001

Great article: some old ideas **Documents must be delivered “well” before the meeting. The meeting is not time to be reading!!! ** The attendants must be held accountable for reading the docs before hand !!!! (guilty) ** A scribe (luxury item), who is not participating the meeting is desirable. There is often storms of comments and ideas that the presenter must focus on. **Doc Templates are essential. Tempates address the standard questions that come up in EVERY review …. that results in teams rolling there eyes wonder why that major detail was overlooked. “how about ….I18N ?...registry settings? …expected lead...Read On

 
 
Comment:    
by Kevin Kapell 8/1/2001

This is a great article. I was the Peer Review Coordinator at my last job and we were doing inspections on code and just starting to inspect the requirements. I observed 2 things during that time. One was that document inspections are very time consuming so plan accordingly (3-5 pages per hour for a new document, 5-10 pph for revisions). The other thing was we were using "Feature Teams" to write the requirements documents. This ussually consisted of one or more system engineers and 2 to 3 developers. While one system engineer usually wrote the majority of the document the team would review it during various stages. This worked pretty well...Read On

 
 
Comment:    
by Howard Epstein 8/1/2001

I would add a tester to the list of inspection participants. Testers have a unique focus for detail -- their goal is to cut through the abstract ("fluffy") detail of a requirement document. The tester asks about specific testable aspects of a requirement, and if a particular statement is not testable (e.g., "The page should load quickly."), the tester can ask for the requirement writer to provide more specifics.

 
 
Comment:    
by Ed Weller 7/31/2001

Karl's comment about having the "receivers" of the requirements document reminded me of an occarion when I was teaching inspections. We used a requirements document just created in the class exercise at the site where it was developed. The next week I taught the class at the location that was to do the design and code, and we used the same requirements document in the exercise. We found twice as many defects, mostly because what was clear to the author was not clear to the designers. Two points here: You need the "receivers" in the inspection, and you also need the author to explain or clarify the document. It is possible not all the...Read On

 
 
Comment:    
by Barbara Moldenhauer 7/31/2001

we call inspections walkthrough and it has turned out to be most effective to include the test manager and a technical author. To ensure correct quality of requirements, we have developed standards helping the business analyst producing requirement documents that can be traced through the test life cycle

 
 
Comment:    
by Benny Linford 7/30/2001

This is a useful reminder that requirements (like everything else in development) need to be QA'd. The most powerful way to do this is to get those affected (aka stakeholders) to re-state what you've told them in the document, which is why I think having the author present at an inspection meeting is valuable. An alternative that may use less resource and get some of the benefits, is to have access to a knowledgeable and thorough individual who will go through the requirements with a fine toothcomb, rather than doing this in a meeting of up to 8 people.

 
 
Comment:    
by yogita sahoo 7/30/2001

The techniques to look for missing requirements are impressive. In my company, we follow Requirement Phase in our process. Though we don’t call it Inspection, we informally do the things mentioned in your article to a large extent. But it’s often done by senior technical people inside the company. Like the QA in-charge or the project manager (Either or not from the same project). It has been successful yet. But I always wanted to know whether conventionally the team members of inspection group, possess different skill sets? Or using the Tech. Leaders for inspection is recommendable?

 
 
Comment:    
by Gerold Keefer 7/30/2001

the article rightly points out that the software requirements specification is the most crucial document to inspect. some comments: 1. i doubt that it makes sense to let the author inspect his own documents. 2. as stated it is essential to bring in different perspectives into the inspection team, leading to perspective based inspections. for example the test manager inpects wether the requirements are testable, etc.. regards, gerold

 
 
Comment:    
by Chris DeNardis 7/30/2001

The inspection process is part of my companies processes for development. The only thing I can say that is different, is that there is a Author, and a moderator. The moderator is the person who keeps the meeting moving, especially during the briefing process. The author is the person responsible for compiling the inspection logs. If there are questions from the inspectors, the author tries to answer these off line so to speak. However the results are also included in the inspection log. So when the inspection meeting is called, a compiled list of all the issues, found, results of those inspections and closure dates are listed. ...Read On

 
 
Comment:    
by Surjya Mohanty 7/30/2001

Thnaks Karl. In fact this is an eye opeing piece of writing about the inspection of requirements. This will be of immense help to me. Thank you again.

 
Back to Top



 
Ads By Google
What's This?
 
 



Home   |   Resources   |   Topics   |   Community   |   PowerPass



© 2010 StickyMinds.com. All rights reserved.
StickyMinds.com is a division of Software Quality Engineering.
Privacy Policy    Terms & Conditions    Link to StickyMinds.com    Feedback


Infosys

Infosys




STARWEST 

Agile Development Practices