Software Intensive Systems: A Quick Guide to Successful Estimates
Our daily lives depend on complex software-intensive systems, from banking to transportation and medicine. A software-intensive system is, by definition, any system where software influences to a large extend the design, construction, deployment, and evolution of the system as a whole. A few examples include embedded systems for automotive applications, telecommunications, wireless ad hoc systems, business applications with an emphasis on web services, etc.
Estimates and measurements are crucial factors for the success of software-intensive systems. To put it simply, software development projects are aimed at creating products and providing services to customers, including hardware, software, documents describing use and maintenance, etc. Still, it’s important to differentiate between a system and a product.
The system means a unique collection of hardware and software, which a single organisation owns and operates. Products are used to deploy the system and usually include database engines, web servers, security products, development products, testing and integration products, help desk products and COTS products integrated into a system.
Estimating Software-Intensive Systems
Estimates provide information crucial for making decisions and understanding their impact on outcomes of the project/product/system. Estimates are also necessary to define realistic performance objectives, prove the credibility of existing plans, revise designs and establish a framework for future estimates.
Estimating product size, performance and quality
- Evaluate feasibility of requirements
- Quantify resources necessary to develop, deploy, and support a product/service/system
- Evaluate product performance – accuracy, speed, reliability, availability
- Determine the required capacity and speed of hardware components
- Analyse alternative product designs
- Provide technical baselines for tracking and controlling cost, schedule, and technical performance
Estimating project cost and schedule
- Determine project feasibility in terms of cost and schedule
- Identify project risks
- 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
Estimating 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