Requirements and Constraints
April 9, 2008 @ Better Projects from Chris
A constraint is a statement of restriction that modifies a requirement or set of requirements by limiting the range of acceptable solutions. While this may initially be perceived as a drawback to the development of a project, constraints in many ways have a powerful way of helping projects work smoothly or reduce the risks of catastrophic failure. Constraints appear across all levels of the requirements hierarchy (business, functional, system, user).
Consider a system that is meant to be used internally by a company that gets built with functionality for users to access from external sources. A constraint - "System shall be used by employees of Company X" - elicited, documented and communicated could potentially save not just development time but also reduce risks. Developers, having been informed of such a constraint, will develop features that keep the scope of development to just the employees of Company X.
It is with such an example, that PMs and BAs must do well to capture early so as to prevent catastrophe and move forward successfully in projects.
Constraints are usually driven by at least three factors: business environment and rules, cost/time/quality balance, and environment such as OS platform, computer languages, product choice, deployment, etc. Constraints need to account for these factors, but BAs need to be careful of being too prescriptive of the solution, thus limiting options too early for the technical team. You should never assume what choices the technical team will make. Getting the balance right between enough information to estimate from while not being too prescriptive is one of the more difficult challenges of setting down requirements.
The rationale for a constraint is also important. While constraints are important to have in any project, one must keep in mind that too many constraints captured without proper rationale can ultimately stifle a project. This can limit meaningful solutions that can arise because of such restrictions on requirements.
Karl Wiegers points out that PMs and BAs must ask why each constraint exists, question its validity, and record the rationale for including such a constraint in a requirement. Test plans must also provide cases for ensuring systems comply with the constraints placed on their requirements. It is also recommended that User Interface options not be constrained at an early stage in the requirements analysis process. Functional Requirements however should be captured as early as possible to risk any re-development of a feature to accommodate the constraint
Consider a system that is meant to be used internally by a company that gets built with functionality for users to access from external sources. A constraint - "System shall be used by employees of Company X" - elicited, documented and communicated could potentially save not just development time but also reduce risks. Developers, having been informed of such a constraint, will develop features that keep the scope of development to just the employees of Company X.
It is with such an example, that PMs and BAs must do well to capture early so as to prevent catastrophe and move forward successfully in projects.
Constraints are usually driven by at least three factors: business environment and rules, cost/time/quality balance, and environment such as OS platform, computer languages, product choice, deployment, etc. Constraints need to account for these factors, but BAs need to be careful of being too prescriptive of the solution, thus limiting options too early for the technical team. You should never assume what choices the technical team will make. Getting the balance right between enough information to estimate from while not being too prescriptive is one of the more difficult challenges of setting down requirements.
The rationale for a constraint is also important. While constraints are important to have in any project, one must keep in mind that too many constraints captured without proper rationale can ultimately stifle a project. This can limit meaningful solutions that can arise because of such restrictions on requirements.
Karl Wiegers points out that PMs and BAs must ask why each constraint exists, question its validity, and record the rationale for including such a constraint in a requirement. Test plans must also provide cases for ensuring systems comply with the constraints placed on their requirements. It is also recommended that User Interface options not be constrained at an early stage in the requirements analysis process. Functional Requirements however should be captured as early as possible to risk any re-development of a feature to accommodate the constraint
This article is syndicated from Better Projects
. The original article is available here. Read more in Better Projects, Project Management News .
No tag for this post.
Popularity: 1%
Reminder : PMToolbox has ZERO tolerance to copyright violation and agrees to follow strictly PMI's Professional Responsibility. That's why each post on this site includes a link to the original version at its source site.
Comments
Got something to say?
[?]
Type in a relevant tag, and click the button, and help organize this blog's information.
[More Help]
[More Help]
Deliverable Templates
Schedule
templates
Tools
Issue Tracking
systems
MS Project
Information Technology Planning
Education and Training
Software
Scope Management
ITIL
It White Papers
Systems Development
human relations
Project
Methodologies
Gantthead
EV
contract
best practices
PMO
Business Intelligence Tools
Risk Management Programs
communications
Package Selection
Articles
Quality
Resources
integration
portfolio management
Cost
Project Office
Cost Benefit Analysis
Project and Program Management
team
Application Development Methodology
procurement
Program Management Office
Risk Analysis
ROI
Crm Applications
Information Engineering
Project Management
Knowledge Management Processes