Scope Planning
Project Requirements
After all the deliverables are identified, the project manager needs to document all the requirements of the project. Requirements describe the characteristics of the final deliverable, whether it is a product or a service. They describe the required functionality that the final deliverable must have or specific conditions the final deliverable must meet in order to satisfy the objectives of the project. A requirement is an objective that must be met. The project's requirements, defined in the scope plan, describe what a project is supposed to accomplish and how the project is supposed to be created and implemented. Requirements answer the following questions regarding the as-is and to-be states of the business: who, what, where, when, how much, and how does a business process work?
Requirements may include attributes like dimensions, ease of use, colour, specific ingredients, and so on. If we go back to the example of the company producing holiday eggnog, one of the major deliverables is the cartons that hold the eggnog. The requirements for that deliverable may include carton design, photographs that will appear on the carton, colour choices, etc.
Requirements specify what the final project deliverable should look like and what it should do. Requirements must be measurable, testable, related to identified business needs or opportunities, and defined to a level of detail sufficient for system design. They can be divided into six basic categories: functional, non-functional, technical, business, user, and regulatory requirements.
Functional Requirements
Functional requirements describe the characteristics of the final deliverable in ordinary non-technical language. They should be understandable to the customers, and the customers should play a direct role in their development. Functional requirements are what you want the deliverable to do.
Vehicle Example
If you were buying vehicles for a business, your functional requirement might be: "The vehicles should be able to take up to a one ton load from a warehouse to a shop".
Computer System Example
For a computer system you may define what the system is to do: "The system should store all details of a customer's order".
The important point to note is that what is wanted is specified and not how it will be delivered.
Non-Functional Requirements
Non-functional requirements specify criteria that can be used to judge the final product or service that your project delivers. They are restrictions or constraints to be placed on the deliverable and how to build it. Their purpose is to restrict the number of solutions that will meet a set of requirements. Using the vehicle example, the functional requirement is for a vehicle to take a load from a warehouse to a shop. Without any constraints, the solutions being offered might result in anything from a small to a large truck. Non-functional requirements can be split into two types: performance and development.
To restrict the types of solutions, you might include these performance constraints:
- The purchased trucks should be American-made trucks due to government incentives.
- The load area must be covered.
- The load area must have a height of at least 10 feet.
Similarly, for the computer system example, you might specify values for the generic types of performance constraints:
- The response time for information is displayed on the screen for the user.
- The number of hours a system should be available.
- The number of records a system should be able to hold.
- The capacity for growth of the system should be built in.
- The length of time a record should be held for auditing purposes.
For the customer records example, the constraints might be:
- The system should be available from 9 a.m. to 5 p.m.Monday to Friday.
- The system should be able to hold 100,000 customer records initially.
- The system should be able to add 10,000 records a year for 10 years.
- A record should be fully available on the system for at least seven years.
One important point with these examples is that they restrict the number of solution options that are offered to you by the developer. In addition to the performance constraints, you may include some development constraints.
There are three general types of non-functional development constraints:
- Time: When a deliverable should be delivered
- Resource: How much money is available to develop the deliverable
- Quality: Any standards that are used to develop the deliverable, development methods, etc.
Technical Requirements
Technical requirements emerge from the functional requirements to answer the questions: how will the problem be solved this time and will it be solved technologically and/or procedurally? They specify how the system needs to be designed and implemented to provide required functionality and fulfill required operational characteristics.
For example, in a software project, the functional requirements may stipulate that a database system will be developed to allow access to financial data through a remote terminal. The corresponding technical requirements would spell out the required data elements, the language in which the database management system will be written (due to existing knowledge in-house), the hardware on which the system will run (due to existing infrastructure), telecommunication protocols that should be used, and so forth.
Business Requirements
Business requirements are the needs of the sponsoring organization, always from a management perspective. Business requirements are statements of the business rationale for the project. They are usually expressed in broad outcomes, satisfying the business needs, rather than specific functions the system must perform. These requirements grow out of the vision for the product that, in turn, is driven by mission (or business) goals and objectives.
User Requirements
User requirements describe what the users need to do with the system or product. The focus is on the user experience with the system under all scenarios. These requirements are the input for the next development phases: user-interface design and system test cases design.
Regulatory requirements
Regulatory requirements can be internal or external and are usually non-negotiable. They are the restrictions, licenses, and laws applicable to a product or business that are imposed by the government.
An Example of Requirements
Automated teller machines (ATMs) can be used to illustrate a wide range of requirements (Figure 9.1). What are some of the physical features of these machines, and what kinds of functions do they perform for the bank's customers? Why did banks put these systems in place? What are the high-level business requirements?
The following represents one possible example of each type of requirement as they would be applied to a bank's external ATM.
- ATM functional requirement: The system will enable the user to select whether or not to produce a hard-copy transaction receipt before completing a transaction.
- ATM non-functional requirement: All displays will be in white, 14-point Arial text on black backĀground.
- ATM technical requirement: The ATM system will connect seamlessly to the existing customer's database.
- ATM user requirement: The system will complete a standard withdrawal from a personal account, from login to cash, in less than two minutes.
- ATM business requirement: By providing superior service to our retail customers, Monumental Bank's ATM network will allow us to increase associated service fee revenue by 10% annually on an ongoing basis.
- ATM regulatory requirement: All ATMs will connect to standard utility power sources within their civic jurisdiction, and be supplied with an uninterrupted power source approved by the company.
The effective specification of requirements is one of the most challenging undertakings project managers face. Inadequately specified requirements will guarantee poor project results.
Documenting requirements is much more than just the process of writing down the requirements as the user sees them; it should cover not only what decisions have been made, but why they have been made, as well. Understanding the reasoning that was used to arrive at a decision is critical in avoiding repetition. For example, the fact that a particular feature has been excluded, because it is simply not feasible, needs to be recorded. If it is not, then the project risks wasted work and repetition, when a stakeholder requests the feature be reinstated during development or testing.
Once the requirements are documented, have the stakeholders sign off on their requirements as a confirmation of what they desire.
While the project manager is responsible for making certain the requirements are documented, it does not mean that the project manager performs this task. The project manager enlists the help of all the stakeholdĀers (business analysts, requirement analysts, business process owners, customers and other team members) to conduct the discussions, brain-storming, and interviews, and to document and sign off the requirements. The project manager is responsible only for enabling the process and facilitating it. If the project manager feels that the quality of the document is questionable, his or her duty is to stop the development process.
The project manager reviews the requirements, incorporates them into the project documentation library, and uses them as an input for the project plan.
Software Requirements Fundamentals
This section refers to requirements of "software" because it is concerned with problems to be addressed by software. A software requirement is a property that must be exhibited by software developed or adapted to solve a particular problem. The problem may be to automate part of a task of someone who will use the software, to support the business processes of the organization that has commissioned the software, to correct shortcomings of existing software, to control a device, etc. The functioning of users, business processes, and devices is typically complex. Therefore, the requirements on particular software are typically a complex combination of requirements from different people at different levels of an organization and from the environment in which the software will operate.
An essential property of all software requirements is that they be verifiable. It may be difficult or costly to verify certain software requirements. For example, verification of the throughput requirement on a call centre may necessitate the development of simulation software. Both the software requirements and software quality personnel must ensure that the requirements can be verified within the available resource constraints.
Requirements have other attributes in addition to the behavioural properties that they express. Common examples include a priority rating to enable trade-offs in the face of finite resources and a status value to enable project progress to be monitored. Typically, software requirements are uniquely identified so that they can be monitored over the entire software life cycle.
Measuring Requirements
As a practical matter, it is typically useful to have some concept of the volume of the requirements for a particular software product. This number is useful in evaluating the size of a change in requirements, in estimating the cost of a development or maintenance task, or simply in using it as the denominator in other measurements (see Table 9.1).
Property | Measure |
---|---|
Speed |
|
Size |
|
Ease of use |
|
Reliability |
|
Robustness |
|
Portability |
|
Table 9.1. Measuring Requirements