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
ResourcesTopicsCommunityPowerPass
Home  >  Detail: Bridging Documents



A StickyMinds.com Original
Article Picture
Bridging Documents

By Karl Wiegers

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

Summary: Are your developers and testers happy with the requirements specifications they get from the business analyst? If not, maybe your documentation isn't properly bridging the gaps between requirements, construction, and testing. In this week's column, Karl Wiegers explains that one should write documents from the perspective of the downstream consumers of the information, not from the author's point of view.


Telelogic North America
It's not unusual for a well-meaning requirements analyst to carefully prepare a software requirements specification and deliver it to the development team and testers, only to have the recipients gripe about it. Here are some typical complaints:
     
  • "This doesn't contain enough detail. Now I have to do the analyst's job and chase down this information, or I have to make my best guess." 
  • "There's too much detail in the requirements. I didn't need all this information, just a general idea. I already know what to build. I don't even have time to read it. In fact, I don't think I will." 
  • "This document contains too much design information. The analyst is trying to do the design job I'm supposed to do. These so-called 'requirements' have eliminated my creative options." 
  • "This document isn't organized in a way that makes sense to me. I can't find the information I need." 
  • "There's a lot of text in here, but I have a hard time figuring out exactly what the requirements are. I have to wade through all the descriptive text and background information in each big paragraph and hope I'm interpreting the requirement itself correctly. I can't even tell just how many requirements there are."
 
Software project team members create various bridging documents, such as a software requirements specification (SRS). These documents are used to communicate information to other people so they can perform their parts of the project work. That is, these documents bridge the work that one community does to the work performed by another group. 
 
The authors of these bridging documents typically write from their own points of view. The author selects in good faith the information to include, and he writes and organizes it in a way that makes sense from his perspective. But that isn’t necessarily the perspective that will make the most sense to the reader. That can make a developer unhappy when the SRS flies over the wall from the requirements analyst and lands on his head. 
 
I think we should write each bridging document from the perspective of the document's consumers—the downstream users of the document—rather than from the author's point of view. The requirements analyst should work with developers, testers, project managers, and others who will have to use the specification to determine how best to write and structure it. The consumers of the document are an important source of input regarding what information to include, how to organize it, writing style, and the appropriate level of detail. Working together to define the document's structure and contents reflects a collaborative approach to requirements development. 
 
I encountered a bridging document problem recently at a telephone company I was working with. This organization has many business analysts who create requirements specifications that they hand off to their project's system architects. An architect complained to me that the SRS documents he received didn't always meet his needs. Sometimes, it seemed as though the business analyst already had done a lot of the high-level design, which the architect considered his own responsibility. In other situations, the requirements were primarily written at the user requirements level. The architect then had to derive the necessary functional requirements himself. He regarded this as being the analyst's responsibility, not his. 
 
This is a classic situation in which the architects and business analysts needed to sit down together and agree on what information should go into the SRS. The business analysts at this organization were doing their best to supply the information they thought the architects needed at the right level of detail. Some additional input from the architects to guide the analysts' efforts would go a long way toward ensuring that future specifications properly bridged the gap between requirements development and software design. 
 
I advocate a user-centric and usage-centric perspective to developing requirements specifications. Experience has taught me that looking at software systems from the perspective of the user, rather than that of the designer, leads to superior results. The same is true of an SRS and other bridging documents. By having the work product's consumers think about how they will use those documents and what information they need to do a good job, the authors and consumers can agree on templates and conventions for producing such documents. For instance, designers or testers might find it valuable to have certain information presented visually rather than in the form of natural language text, which probably would be the analyst's initial inclination. 
 
Note that I'm not suggesting you create more requirements documentation. I'm merely proposing that the analysts, developers, and other stakeholders put their heads together to decide how best to prepare the requirements specifications they do create. Focusing on the appropriate content actually can lead to shorter documents, because the authors have a clearer understanding of what to include and what to leave out. The same principle of agreeing on form and content applies to design documents, project plans, and other project deliverables targeted at specific readers. 
 
Rule number one for any author is "Know your audience." This applies to software project documents as well.


About the Author
Karl Wiegers, Ph.D., is the principal consultant with Process Impact in Portland, Oregon. Karl is the author of the books Software Requirements, More About Software Requirements, Peer Reviews in Software, and Creating a Software Engineering Culture. You can reach Karl at www.processimpact.com.

Back to Top
 

StickyMinds.com Weekly Column From 5/29/2006 

Member Comments
Add Your CommentExpand Comments
 
Comment:    
by Sanat Sharma 4/17/2007

Really a good article. The requirements should be written keeping all the audience (developers, testers)in mind. If the requirements are not perfect, the developers and testers will suffer a lot. Another way to resolve this gap is that the requirements can be spilt into two documents :
1. High Level document (HLD)
2. And Low Level document (LLD)

This way will definitely help the testers atleast.
-- Sanat Sharma


 
 
Comment:    
by Vinayak Kumbhakern 6/5/2006

Karl, what skills do you think a Business Analyst should have to do justice to his job/role? In my expericence, in the recent project, which has miserably failed even after telling the BA what and how we wanted the documents did not enlighten him. And also how about so-called use of templates to create those documents? Should one be following them very religiously? But, remember if you don't then we are bound to get NCR (Nor-conformity-report) saying that process is not followed. And what do you think of screen shots and screen field definitions in Functional Specification document?

Author's Response:
6/5/2006    
Hi Vinayak -- You might check out chapter 4 of my book, "Software Requirements, 2nd Edition", which addresses the role of the requirements analyst. Analysts need to be conversant in both both the application domain and the technical domain, because theyre performing a communication role that bridges those two areas. They need skills in interviewing, technical writing, modeling, listening, conflict resolution, facilitation, and organizing information. Its a tough job and its not reasonable to expect people to be good analysts without the right training, knowledge, experience, and personality. Processes and templates should rarely be followed "religiously" -- they are guides to help practitioners do a better job, but they need to be adapted to fit the specifics of each situation. Whats more important: conformance to the process, or using the process to help the team achieve an excellent outcome? A process should be a guide, not a straightjacket. Im not crazy about screen shots and screen field definitions in a requirements specification. Screen designs are, well, designs! Certain UI elements or properties might be imposed as constraints, which does make them a type of requirement, particularly if you are added enhancements to an existing application. While it is valuable to do some preliminary screen design while exploring requirements (such as with prototyping), its easy to get wrapped up in detailed UI design prematurely without really understanding what the product is supposed to let the users accomplish. And then youre in trouble.

 
 
Comment:    
by Sharan Karekatte 5/30/2006

Nice article, and very timely from my perspective. I'm a tester on an agile team, and we dealt with the same problem, i.e., requirements that don't meet the needs of the developers/tester. Eventually, we ironed it out after communicating to the BA what exactly we wanted. This was a huge success for the team.

Author's Response:
5/30/2006    
Thanks for sharing this success story, Sharan. Your experience underscores the importance of building requirements specifications (and other bridging documents) collaboratively with the participation of all the important stakeholders. This is true regardless of what form is used to document the requirements.

 
 
Comment:    
by Susan Herrick 5/30/2006

I agree wholeheartedly with the previous Readers' Cmment and your response. As a tester, the biggest problem I've encountered is a tendency for a project to go straight from the high-level Business Requirements that rightly capture vision and scope in terms of business goals and objectives to the SRS. In other words, they skip over the User Requirements completely. As a result, users are rarely fully satisfied with the delivered application. Not surprising, since their specific needs, expectations and acceptance criteria have not been defined anywhere.

Author's Response:
5/30/2006    
I agree, Susan. That's why I find it helpful to explicitly address business, user, and functional requirements during elicitation. Web sites offer a good example of the importance of user requirements. Instead of thinking about what you should put on your web site, think about what users will be able to get from your web site or do at your web site.

 
 
Comment:    
by Gerard Miller 5/30/2006

"Rule number one for any author is "Know your audience." This applies to software project documents as well." AGREED. A document is written to enlighten the reader.

Author's Response:
5/30/2006    
The critical point to keep in mind is that requirements are about communication. Effective communication involves both transmission and reception. No matter how good the analyst thinks the requirements are, if they don't communicate effectively to the various readers, there's a problem.

 
 
Comment:    
by Keith Collyer 5/30/2006

Part of the problem often stems from one document trying to do two things. It describes the problem to be solved and also what the system must do to solve the problem. These are different things. Properly understood, the use of these two different levels means that the documents more naturally cover the appropriate level of abstraction snd detail. The first level is from the perspective of the user, the second from the perspective of the developer. Another way of looking at this is the user (or, more generally, stakeholder) level describes WHY we are building the system, the system level describes WHAT it must do, then the design describes...Read On

Author's Response:
5/30/2006    
Good point, Keith. I define "business requirements" as describing why we're undertaking the project, "user requirements" as describing what the user will be able to do with the product, and "functional requirements" as describing what the developer builds. A common problem with requirements is embedding solutions that impose unnecessary, inappropriate, or premature design constraints.

 
 
Comment:    
by itz saravan 5/29/2006

I have seen in most of the project testers are introduced at the last stage of SDLC. Tester must be introduced at the beginning of the project life cycle so that tester will get an oppertunity to interact with the business analyst. As well the tester will indentify the testabality of the requirement--this will help the business analyst to write a testable requirement. Testers usually consider requirements(SRS) as a source for test case preparation.

Author's Response:
5/29/2006    
I agree completely. You can begin testing your system right after you've written the first requirement. Including testers in the requirements process will lead to better tests, to better requirements, and to better software.

 
Back to Top


Marketplace

Census: Web-based Bug Tracking and Defect Tracking
Track software bugs, defects, enhancements, support calls, and more. Issue tracking software that is scaleable, fully customizable and integrated with VSS. Includes e-mail notifications, role-based workflow, change history, and Crystal reporting.

Web based bug tracking - AdminiTrack.com
AdminiTrack offers an effective web-based bug tracking system designed for professional software development teams.

Check Out IT Certification Preparation Materials
Sign Up With SkillSoft & Get Access to Training Materials for Over 50 Professional Certifications.

Need Agile Test Cases?
Create statistically complete test cases simply and quickly.

New Webcast: How to Profit with Remote Support.
Discover how REMOTE SUPPORT can fuel your IT business in ways you've never thought of before.

Get your product or service listed here.
Subscribe to Better Software Magazine
Subscribe to Better Software Magazine

First Name:

Last Name:

Email Address:


Home   |   Resources   |   Topics   |   Community   |   PowerPass



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


McCabe Software

Borland

STARWEST 2008

 
Agile Development Conference 2008