Requirement Analysis - Concepts & Principles In Project Management
In order to ensure that the system specifications properly meet customer expectations we need to follow a solid requirement analysis process. Requirement analysis is critical to the success of a development project. It takes into account all the tasks that determine the needs for the project.
It helps ensure that requirements specified are clear, testable, traceable, measurable, sufficiently detailed and related to actual business needs. It is appropriate to involve all stakeholders in requirement analysis for practical benefit.
The types of requirements can be Customer Requirements, Functional Requirements, Performance Requirements, Design Requirements, Derived Requirements or Allocated requirement. Customer Requirements define the expectations in terms of objective, environment, constraints and measure of effectiveness. Functional requirements identify the tasks or activities.
Performance requirements express the expectation of the mission in terms of the quality, quantity, coverage, timeliness. Design requirements tell us how the process is to be executed. Derived requirements are derived from a higher level requirement. Allocated requirements are established by allocating a high level requirement into multiple lower level requirements.
The process of requirements engineering can be described in steps [SOM97] as Requirements Elicitation, Requirements Analysis and Negotiation, Requirements Specification, System modeling, Requirements validation and Requirements Management in sequence.
Requirement Elicitation can be difficult because of the problem of scope ambiguity, problem of understanding by the customer and the problem of volatility where requirements keep changing and are hard to freeze.[SOM97] gives guidelines in the elicitation process , such as to assess the business and technical feasibility of the requirements, identify the stakeholders, define the technical environment, identify domain constraints, define elicitation methods , involve participation from many stakeholders, identify the would be proto typing cases and create usage scenarios to help customers with key requirements.
The work products produced as an output for the requirement elicitation process can be a statement of need and feasibility, a list of requirements with domain constraints, a set of usage scenarios or any proto types to define requirements explicitly.
Requirement Analysis and Negotiation follows requirement gathering. Analysis categorizes requirements and examines them for consistency, coverage, necessity, ambiguity, confliction, achievability and testability. Conflicts are reconciled by negotiation and impact of each requirement on project cost and delivery time is assessed. Using an iterative approach, requirements are either considered, eliminated, combined or slightly modified for the satisfaction of all parties concerned.
Requirement Specification is the final work product produced by the system and requirements development team. It describes all the function and performance of the system and the constraints associated with it. It gives the complete description of the system to be developed. It can be a written document with a standard template, a prototype or use case.
Prototypes are mock-ups or model of the application. With Prototype the users can have an early view of the application and hence this leads to fewer changes later. A use case is a technique for documentation of the requirements of a system or software change. Each use case provides one or more scenarios for describing the behavior of the system.
System Modeling is about using a model to assess the efficiency of work flow and to evaluate the systems components in relationship to one another.
Requirements validation is a process to validate that all requirements are clear and all inconsistencies and errors have been corrected and standards are met. The review team includes the stakeholders of the project. It is important to examine each requirement against a checklist maintained for requirements, to ensure that validation is a thorough process.
Requirement management is involved with managing the identification and tracking of changes in requirements at any time of the project. Traceability diagrams are used to relate the requirement to source and to show interdependencies and relation to external interfaces. One of the biggest challenges, the aim of developing a system to meet all objectives is to have a well defined requirement management process.
| Useful Cost and Effort Estimation Tips and Techniques for Software Projects | Overview on the Responsibility Assignment Matrix (RACI) | Overview on Virtual Project Management | Popular Project Managing Artifacts and The Tools used in Project Management | Project Risk Management – Identifying Risks and Assessment Process | Project Scheduling and Tracking – Basic Concepts | Quality Concepts – Overview on Quality Control Assurance and Cost in Project Management | Requirement Analysis - Concepts and Principles in Project Management |