Requirements Analysis


Description
This task identifies the information requirements for developing the software. This task also identifies the source systems that will provide the information, and the business rules that need to be applied.

You should allow 80% of the task effort to focus on the immediate requirements. The remaining 20% of the effort should be spent trying to understand what the information requirements for the future look like.

We recommend that you increase this effort (that is, the overall task duration) if the requirements are not well understood. Errors at this point could prejudice the ability of the architecture to evolve to satisfy the user needs.

Steps

  • Interview key users
  • Identify the other source systems for information.
  • Identify the business process through observation
  • Analyze the existing documents
  • Produce the initial report. Expect it to change on an ongoing basis.
  • Identify initial sizing estimates (used in the technical blueprint phase to architect a solution for the whole scope).

Estimating
The following table provides estimates for complex, simple and medium-complexity projects.
 

Step
Complex
Medium
Simple
Interview key users
10
8
5
Observational Studies
10
7
4
Document Analysis
13
8
5


Risks
Because the requirements are never fully understood, beware of a tendency to extend this task. We strongly recommend that this activity is monitored closely and time boxed, because the requirements will almost certainly be impossible to define completely.

Within this task, focus on designing flexibility into the software. Failure to do so at this point may lead to substantial cost penalties in the future.

Making any assumptions during the requirements analysis phase regarding the software to be built can be disastrous.

Prerequisites

  • A documented business case, which identifies the areas of focus for the business requirements
  • A definition of the business processes that will be supported by the software. It is used to understand how to design processes to support intended system.

Deliverables

  • A functional model for the software
  • In structured programming, we develop data flow diagrams.
  • In object oriented programming, we develop use case diagrams.