About Us
Site Map
PMP® Certification
PM Tips & Tricks
PM Tools & Techniques
Contact Us



Incorrect, or Incomplete, Requirements

Most software development projects are overwhelmed by requirements from stakeholders of the project. The deluge of requirements may make it seem impossible that any requirements that are critical to the success of your project could be missed, but it is possible to miss them! Remember that requirements will differ from your Scope Statement, or SOW, in that they are the details of how the goals and objectives will be built. Your requirements are like the blueprints for a building or bridge. The requirements must capture all the elements implied in the Scope Statement or SOW, otherwise your project can’t meet those goals and objectives.

You may be capturing so many requirements that you get requirements that conflict. You need to be discerning when capturing the requirements. Requirements that are in conflict with one another cannot be delivered. One, or both, of the requirements is bogus and should be dropped. Requirements that don’t support the stated goals and objectives of the project are unnecessary overhead and will add to the expense of the project without delivering any business benefit. Building a software system is a business venture, not a popularity contest so some project stakeholders will be disappointed in the system. Your job is to ensure that you deliver a system that meets your customer’s/client’s/sponsor’s expectations.

It is a myth that most projects have budget constraints. All projects have budget constraints. Completion of the project within the committed budget may not be the Number 1 project priority but the project must deliver within some budget, otherwise we wouldn’t set budgets at all. Another area where project managers often struggle is the delivery of the required functionality within the budget. The people that you select to define requirements for the project are not concerned with a budget, that’s your job. To deliver your project within budget you will need to ensure that a stated requirement delivers the functionality required to meet an expectation, not exceed it. Telephone carriers actually install redundant systems in their equipment offices to ensure that there is no loss of service should one or the other system experience a problem. They do this because providing service is mission critical. Installing redundant order systems, duplicating all the servers, terminals, and databases involved in the system to provide a 99.9999% availability rate for the system, would be overkill and hugely expensive. Not all "gold plating” requirements are that clear, but they don’t need to be in order to blow your project budget and/or schedule baselines.

Requirements may be within the stated scope of the project, and be as pared down as it is possible to make them, but if they are notclearly understood by the analysts and testers who will read them and make design decisions based on them, you will encounter trouble. Many a project has started out with a great set of requirements – the requirements needed to deliver all the project goals and objectives within the budget and schedule baselines, only to founder when those requirements were not built and tested as intended. Correcting these misunderstandings after the system is delivered to a QA or User Acceptance Test (UAT) group is the second most expensive way of correcting the error, with the first being having a customer in the field identify the error.

Avoidance Strategies

You can guard against the overwhelming deluge of requirements by choosing a requirements gathering method that suits your team and project, then engaging the right number of stakeholders to state requirements. Educate your stakeholders in the proper use of the method and what is expected of them so that time isn’t wasted in education when you are trying to elicit requirements. Gathering requirements for a function or business unit from one stakeholder will eliminate conflicting requirements. Workshops can be used where it isn’t possible to limit input to just one stakeholder per function or business unit. You will need to review the requirements yourself, or with a business analyst, where you can’t use these methods to reconcile the requirements.

Features that are used to support several functions or business units are another source of conflict. For example, your log on feature should be used to provide log on facilities for everyone that will use your order entry and tracking system. Accepting requirements from everyone that will log on to the system is almost certain to cause conflict. You will be better off to identify a stakeholder or SME who is a security specialist and have that person supply the requirements for the log on feature.

Each requirement that you gather must support a deliverable in your SOW or goal or objective in your Scope Statement. Requirements must be captured in a document that relates it to the Scope Statement or SOW. That means that you need to start with a Scope Statement or SOW where each deliverable has a unique identifier. Any requirement that cannot be directly tied to a deliverable, goal, or objective must be questioned. The requirement should be ignored if you aren’t satisfied that the requirement will deliver some functionality that directly supports something in the Scope Statement or SOW.

Cost each requirement as it is captured. You don’t have to provide a monetary estimate for the requirement, or even an effort estimation (although an ROM effort estimation would be valuable). You can simply rate the feature as large, medium, or small, in terms of cost. You’ll have to have a development SME do this for you, unless you are knowledgeable to do it yourself. You may also want to assess the complexity of the feature, e.g. complex, intermediate, simple. My example is an ordinal system, but you can use a cardinal system if that is your preference. Question any requirements that are large and complex (you may want to set a threshold for this exercise). Is there another way to state this requirement that will be less costly to deliver? Empower your business analysts and programmers to identify opportunities for simplifying a requirement so that it delivers the required business function but for less cost.

Requirements should also be prioritized. The purpose of this is to facilitate de-scoping the project during the construction phase, should your initial estimates prove too aggressive. Use an ordinal system for the purpose, for example: high, medium, low. The combination of rating systems for size, complexity, and priority, will allow you to quickly reduce the scope of your project should you need to.

Requirements should be stated in plain language. If you are collecting requirements in a workshop, other workshop attendees should be able to understand the requirement even if they aren’t from the same functional area or business unit. Where you are collecting requirements using a polling method, you should be able to understand the requirement as stated. You may also want to use another team member, from any area other than the person who submitted the requirement, as a sounding board to ensure that the requirement is stated clearly.

Ask the stakeholder to describe how they would go about testing the system to ensure their requirement has been met. You don’t need your stakeholder to completely define a test case, but they should be able to describe a test scenario to you. Capturing their description in the requirements document will go a long way to eliminating misunderstandings between the stakeholder, business analyst, developer, and tester. Your last line of defense will be the stakeholders; the stakeholders should be willing to contribute to system quality during the UAT phase.

The tips and tricks described in this article are intended to help the project manager using the best practices promoted by the PMI. Project managers who are certified have already implemented those best practices. If you haven't been certified as a PMP® (Project Management Professional) by the PMI and would like to learn more about certification, visit the three O Project Solutions website at: http://threeo.ca/pmpcertifications29.php. three O Project Solutions also offers a downloadable software based training tool that has prepared project managers around the world to pass their certification exams. For more information about this product, AceIt, visit the three O website at: http://threeo.ca/aceit-features-c1288.php.