Endorse Maximize your ROI, minimize your project risk
 Consulting
The Fine Art of Gathering and Documenting Requirements
We’ve all done this many times and know it is about as much fun as a stick in the eye but it has to get done. So can we make it
a fun activity? Maybe. For sure though, we can make some changes to the process so it isn’t as painful. In fact, it is also
possible to make quantum leaps in the effectiveness of requirements with very little effort.

The following paragraphs will explain how you can help your project by gathering more complete business and technical
requirements, ensuring that gaps in the design do not exist, and test coverage is significantly improved.

Quality Assurance
You may be wondering why mention Quality Assurance (QA) upfront. Well simply put, if you expect to produce a quality
product, quality needs to be built into the product at the very beginning. What we are looking for here from the QA perspective
is to ensure that Requirements Traceability can be easily accomplished. The objective for Requirements Traceability is to pick
any requirement from the business, technical or test case document and be able to quickly identify the corresponding
requirement all of the associated documents.

To get a better understanding of what is meant by requirements traceability, let’s take a look at Figure 1 below. We see 2
business requirements generated 4 technical requirements; each technical requirement spawned 4 test cases.

Figure 1 – Example of Requirements Traceability

























This graphic simplifies the relationship between the business requirements, technical requirements and  test cases. How you
maintain the actual relationship in real practice is not as simple. One approach that can be used to tie the different documents
together is to derive a numbering system that can be inherited by the subsequent documents as a reference as shown in Figure 2.

Figure 2 – Requirements Traceability Outline

•        Business Requirement 1

•        Technical Requirement 1
(refers to Business Requirement 1)

•        Test Suite 1 (refers to Technical Requirement 1)

By coming up with a logical structuring of the business document, the task of reconciling business and technical requirements
becomes much simpler and more effective. You can also almost guarantee yourself full test coverage if your test case
development follows the same methodology. The take away here is to note the importance to structuring the business
requirements at the start of the project which will drive the outline structure for the subsequent documents.

Business Requirements
So what is the best way to capture business requirements? Lock your users in a room and grill them for 8 hours, send out a
survey, or maybe just make them up yourself. These approaches have all been used to varying degrees of effectiveness, but
whichever method you use, your requirements will still go through several iterations of brainstorming and review before they are
complete.

Using the example from Figure 1, assume the first business requirement states “Track Customer Purchases”. That sounds
straight forward enough but there is no mention of what to do when an invalid condition is encountered or a purchase is
cancelled. Granted that this is a weak example, but my point is when the business requirements have ambiguity or omissions,
this may not become apparent until the technical requirements are being developed. Even worse, these issues may not surface
until design and development.

To flush out these hidden details, you will need to gather the requirements from your users in bite size chunks based on what
their tolerance level is for time and their attention span. This will be an iterative process because you too will have work to do
from gathering the business requirements. As the requirement sessions progress, you should build a mock up of the application
based on what you have to date. This will become your platform for discussion explaining how you view what the customer is
asking for. This will help your customer make the leap from concept to reality now that they have something concrete to relate
their ideas to.

Your platform mock up does not have to be a working model at this point. A simple slide presentation or static web pages will
suffice. Don’t be surprised if your business requirements change drastically at this point because your customers may view
what they were asking for in a whole different light now. Before you call the business requirements a wrap, have a walk through
of the document to ensure all the content is still required and that no ambiguity exists.

A tip for who should be part of the audience when gathering your business requirements besides your users is representation
from development and test. You may not need/want them initially, but you certainly want them involved once you get to the
mock up phase. I can’t say enough about how important early buy in is for the project to succeed.

Technical Requirements
Now that you have a robust set of business requirements it is time to begin developing the technical requirements. Your technical
requirements document should maintain the same structure as the business requirements wherever possible. If you need to
deviate, ensure there is traceability back to the business requirements.

Once you have the technical requirements to the point where the system flow is well defined, a working prototype should be
developed. The prototype does not need to do more than convey the screen logic flow and basic functionality. The intent of
presenting the prototype is to ensure the technical requirements accurately reflect the business requirements. The prototype will
also benefit everyone on the development side of the house to gain an understanding of what is to be built. You most likely will
be peppered with some tough questions from the crowd but this is good constructive criticism. If you follow this advice, fewer
issues are likely to surface during the design phase.

Test Case Document
Testing is one of my personal favorites although it does not get the respect it deserves. Testing to me is truly an art where the
number of test cases generated is limited by the imagination of the tester. Not having a good method of documenting the test
cases further limits the effectiveness.

If we follow the same outline methodology as in the business and technical requirements, tracking requirement test coverage
becomes a non-issue. This structuring of the test cases will also allow for easier selection of test case scenarios and a more
manageable method of organizing the test cases if they are to be automated.

Summary
If you implement any or all of the suggested approach above, you are certain to improve upon your existing process. The
requirements gathering techniques described here are a proven method for building a solid foundation for your application. Since
no one can guarantee a 100% fool proof method, I would put this one up as one of the contenders to come close.

Ken Pohl is the president and founder of Endorse Consulting which specializes in minimizing the risk to a project’s ROI by
mitigating potential problems before they arise. His many years of developing and implementing data warehousing,  business
intelligence and CRM systems has provided a wealth of knowledge as proven techniques.  These techniques translate into real
world not from a book “best practices”.