Estimation and the measurements that result are critical success factors for Sofware Intensive Systems. Software development projects exist to design, build, and test products and to provide services from those software systems to customers. These products and there services include hardware, software, the documents describing their use and maintenance, and the operational data needed to provide business value to the customers who paid for that value.
Some may argue the differences between a project, product, or service. That is irrelevant for the discussion here. Some may argue there are many types of way to develop products or services. That is irrelevant here as well. Some projects deliver services on a continuous basis. Some projects have finite period of performance. Each needs to be answer the questions below.
But just to clear the air there are some differences between a system and a product. The system usually implies a unique collection of hardware and software, which a single organization owns and operates. The system of processing ACA eligibility applications is an example I worked on. This system was operated by a State agency in support of the governmental policies of providing affordable health care access to its citizens. The $42,000,000 a year budget for this system includes design, development, test, operations, and support of the hardware and software for a state government health care agency.
The products used to deploy the system included database engines, web servers, security products, development products, testing and integration products, help desk products and similar purpose built or COTS products integrated into a system.
Good Estimates Are One Key To Success
Estimates provide information to the decision makers to assess the impact of those decisions on future outcomes of the project, product, or system. Estimates provide information to make decisions, define feasible performance objectives, and substantiate the credibility of plans, revise designs and improve future estimates and processes.
The big question is, if the activities listed below are needed for the success of the project, how can they be answered in the absence of making an estimate?
Product Size, Performance, and Quality?
- Evaluate feasibility of requirements
- Analyze alternative product designs
- Determine the required capacity and speed of hardware components
- Evaluate product performance - accuracy, speed, reliability, availability and other ...ilities
- Quantify resources needed to develop, deploy, and support a product, service, or system
- Provide technical baselines for tracking and controlling cost,m schedule, and technical performance
Project Effort, Cost, and Schedule?
- Determine project feasibility in terms of cost and schedule
- Identify and assess project risks
- Negotiate achievable commitments
- Prepare realistic plans and budgets
- Evaluate business value, the cost of achieving that value and the cost - benefits of that value
- Provide cost and schedule baselines for tracking and controlling the business and technical processes
Process Capability and Performance
- Predict resources consumption and efficiency of those resources
- Establish norms for expected performance
- Identify opportunities for improvement of technical, cost, and schedule parameters
Anyone conjecturing the answers to these questions can be obtained without estimating needs to show exactly that can happen.