Project Cost Estimation
I am frequently asked how much a project will cost, after being given no more than a hazy
idea of requirements – what may seem a "simple" system to the Client, can often turn
out to have many complexities. Then there is the problem of miscommunication:
"I know you believe you understand what you think I said, but I'm not
sure you realize that what you heard is not what I meant."
To give an estimate of the cost of a project and the time to completion, it is necessary for
the system requirements and functional specifications to be precisely defined.
The more imprecise the specifications are, the more imprecise any estimate of costs will be.
Even with exact specifications, it is always necessary to add a contingency margin. Estimates
are notoriously over optimistic – project cost estimation is not an exact science. Unanticipated
problems, incorrect analysis, hazy logic and changes of mind will all cause cost overruns.
The Project Scope
A Project's scope defines the broad parameters of a project It specifies the required features
and functionality that needs to be delivered. The scope provides a blueprint for all the stages
of the development process.
Defining the scope is the most important part of the initial planning process. A well-defined
project will set the boundaries of the work to be done. The more aspects of the project scope
that are identified, the more accurate cost estimations and the system design process will
be.
If the boundaries of a project are properly defined, there is a good chance that expectations
will be met. The result will be a successful project and a happy client. The scoping may also
result in a project getting abandoned or scaled down – when the objectives are found
to be too costly to achieve.
The scope must be defined, documented and agreed before any coding is started.
Documenting the Project Scope
To do this, provide a short description of the software required:
- Define the objectives and what deliverables are required.
- What benefits are to be derived?
- Describe the background and origin of the existing system.
- Detail the major functions that the system must perform.
- Specify the number of concurrent users to be supported.
- List all documents which define the Software Requirements.
- Will the users all be at the same location, or are they dispersed?
- What volumes are involved?
Operating Environment
Describe the environment in which the software will operate – the hardware platform,
operating system, etc.
Detail the relationship between the system and external relationships – databases, libraries,
tools, etc.
System Functionality
Describe each function in detail, and its priority:
- Detail the Forms required.
- Detail the Reports required.
- Describe the data to be entered.
- Describe the data and the fields to be stored.
- Are exports required (i.e. to Excel, Word or Email)?
- Are graphics and charting required?
- Are historical records required?
- Are AD Hoc queries required?
- Is general documentation required by the users, or context-specific documentation?
The answers to these points will help create a picture of the system envisaged.
Security Requirements
Detail the requirements regarding security, integrity, or privacy issues that affect the use
of the product and the data handled by the system. Define which users are to be limited to
specific functions.
Example of a Scoping Exercise
To download the Microsoft Word file, click the Download button