Top Level User Requirement
Specifications define the boundaries of a system. A Specification is the core document in any software project, and is so important that its value cannot be overestimated.
The following advantages are brought to the project by a properly defined Specification:
- Your involvement is high from early Iterations
- Schedule is accurate and the Milestones are met without delays
- Risks are identified and managed in advance, the project is stable
- Budget includes only real numbers and is optimal
- Team morale is high since all parties involved know the project objectives
- Support and enhancements are easy, even if the team experiences changes
Requirements are gathered from your informal customer. A preliminary Specification, called the Vision, is then created. Utilizing more defined details, an Alpha-Specification is subsequently created based upon the Vision. You are an active participant throughout this entire process. The Alpha-Specification is created during the Inception Phase.
When the Alpha-Specification is ready and receives your approval, it becomes a Beta-Specification on a LCO Milestone. The Beta-Specification is a paper prototype of the system, and is presented in the form of a SRS.
On the LCO Milestone, you approve the continuation of the project, and the Specification becomes effective.
The effective Specification is used by the project team. All Requirements are communicated with you through documented changes in the effective Specification. Communicating any changes ensures that you will be aware of the project status and the activities of the project team at all times.
The Specification can be changed at any time during project lifecycle. All changes to the effective Specification are implemented as new Specifications through a process called Change Requests. Change Requests are small documents (1-2 pages) created by a system analyst in response to concerns about the project from you and other stakeholders.
Specification is part of contractual Deliverables.