Requirements that are too high-level can cause more harm than good

Apr 02 2010

Schedule pressure can cause us to gather requirements before the stakeholders are fully ready to define what they really would like.  So in order to meet the deadline we may gather a high-level requirement such as “The system shall capture additional data from the client on the screen XYZ”.  This may be used as a placeholder to be further defined during system design or development.  It may seem harmless to just put in this placeholder; however, it may end up causing more harm than good to the project in the end.

High-level requirements can be beneficial when first meeting with a stakeholder to help define the scope of the project and to determine a schedule and resource plan.  However, if as business analysts we do not delve into the details as we are generating the business requirements, we leave ourselves open to confusion and conflicts later on.  Many times during a project a group of stakeholders may only be available during the requirements gather process.  For instance, the Compliance department will attend the requirement gathering sessions and sign-off on the Business Requirements Document and then not participate in the design, testing, or implementation portions of the project.  If we include a requirement that is too open-ended, it forces those reading it to interpret for themselves what it really means.  This can lead to conflict between stakeholders as to what the system should really be doing.

Another potential issue with vague requirements is around other projects that may be relying on the work that is being done within your project.  If they are handed a list of requirements to base their work on that is not detailed enough they will also have to interpret and assume.  The other option for them would be to wait for your project to fully define the requirements which could cause delays in their project.  If they begin their design with your vague requirements and then you present them with the details later on it may cause a great impact to their project with the rework that is involved.  You have basically injected a change into their project without going through the formal change process.

The final issue with vague requirements looks at the test planning that occurs based on the requirements that were gathered.  During most projects the test plan and test scenarios are written based on the requirements that were gathered.  One of the tenants of a good requirement is that it needs to be testable and verifiable.  If we look at the requirement I mentioned in the beginning of this post, “The system shall capture additional data from the client on the screen XYZ”, how do we test this? What additional data is supposed to be captured?  The testing team may write a test script based on this requirement, but when it comes to executing it how will they know if they can pass that step or not?

As you can see, the inclusion of a requirement that is too vague in a Business Requirements Document can affect a lot of downstream within a project.  What are we to do as business analysts when presented with this issue?  Here are a few suggestions:

  1. Get as much detail as you can from the stakeholders and include that in your requirements document.  Using the example above, maybe the stakeholder knows 6 of the 10 additional data items they would like to capture.  Gather detailed requirements around those 6 and then either include information about the other 4 through a Change Request to this project or included it in a future project.  In most organizations the Change Request process involves input from many different groups that will be affected.  This allows all impacted groups/projects to provide input on what that change will impact.
  2. If there are enough vague requirements being gathered then maybe the project should be delayed.  If the business is not ready to make a decision about what they would like or need then time and resources should not be wasted waiting around for them to make a decision.  This may not always be a feasible solution, but should be considered
  3. Force the stakeholder to make a decision. This may sound drastic, but many times the business owner needs to be directed.  Your job as a Business Analyst is to elicit quality requirements.  If the project has good stakeholder management, then all of the necessary stakeholders should have been defined.  Use this list to setup sessions where everyone can attend and the best solution can be determined.  If everyone understands the goal of the session then you should be able to come out of it with the detailed requirements that you need. 

This post is a small part of what goes into good requirement documentation and system design.  For more information see the Business Analyst Body of Knowledge at theiiba.org

 

About the Author

Kevin Pious's picture

Kevin is a Manager at CapTech with over 10 years of experience as both a developer and a business analyst. He is lead of the Requirements and System Analysis Servicing Offering at CapTech and enjoys training other BSAs to be the best analysts they can. He has worked in the financial services, retail, and government fields in the areas of business analysis, requirements gathering and management, system architecture, system design, development, and testing. Outside of work Kevin enjoys cooking, photography, and attending college football games.

 

Disclaimer

The words and opinions expressed here are those of each article's respective author, and do not necessarily represent the views of CapTech Ventures.