Software Estimation Is the problem solved? Sanathanan Rajagopal CAAS

Size: px
Start display at page:

Download "Software Estimation Is the problem solved? Sanathanan Rajagopal CAAS"

Transcription

1 Software Estimation Is the problem solved? Sanathanan Rajagopal CAAS

2 Content Difference between Software and Hardware estimation Why we think it is difficult to estimate software cost (Myths, Perception, Facts and Reality) The software engineering problems Software sizing Software life cycle Problem makers (is it integration, system engineers, software designers, developers, testers, project managers or the requirements) Summary

3 Disclaimer This is my personal view and does not represent views of the Ministry of Defence

4 Software Estimation-Why is it different to Hardware? Software engineering is a new discipline compared to civil/mechanical/electrical Software weigh nothing Software is invisible It always increases Software is intangible Complexity Conformity Software is malleable can be shaped to do anything

5 Why we think it is difficult to estimate software cost (Myths, perception and facts) 1. Software is difficult to understand 2. Software estimation is a black art 3. Software costs are estimated under systems cost 4. Software cannot be measured in any form, therefore difficult to estimate the cost 5. Software is added as a Risk 6. Systems are driven by software 7. Increasing resources will increase the productivity 8. Software does not get obsolete

6 Software Engineering Problems (Software Crisis) First used in 1968 NATO Conference on software engineering Unreliable Delivered late Prohibitive in terms of modification costs Impossible to maintain Performing at an inadequate level Surprise : It is still with us today in some form or the other!!!! Each of these complaints can be traced to the inability to define the requirements Inability to estimate with accuracy the cost, resources and schedule required for a software project Exceeding budget cost

7 Software Sizing It is the quantification of effort required One of the key cost drivers Various methods are used to determine software sizes Function Points SLOC IFPUG COSMIC Object points etc Other key cost drivers are complexity and dependencies

8 Software Development Life Cycle The complete lifetime of a software system from initial conception through to final obsolescence. Different Models Code and Fix (Before software engineering) Waterfall (Various derivatives available) Agile Prototyping Incremental Iterative Evolutionary Spiral

9 Waterfall Valid if all requirements can be specified before any design or implementation is conducted and requirements do not change

10 Incremental System Analysis Requirements Increment 1 Detailed Design Valid if all requirements for that increment Code be specified Product before any design or implementation is conducted Design and requirements do not change within an increment Test Deliver Detailed Design Code Increment n Test Deliver Maintenance

11 Iterative With iterative the requirements are incomplete and we seek to discover them as we go along

12 Evolutionary Stop Start Requirements Gathering and Refinement Engineer Product Typically with evolutionary, Refining Prototype the requirements are never complete. Project stops when the money / time runs out Customer Evaluation of Prototype Quick Design Build Prototype

13 Software Estimating Where is the problem? New capability in new platform System Engineers Requirement New capability in old platform Old capability in new platform System Architecture Different Model like USE case, Class, Object model etc Software Designers Software Hardware Software Developers System Software Tester

14 Parametric Approach Parametric estimating is building estimates based on CER s With available sizing matrix and software development standards its relatively easy to create CER s Tools such as SEER SEM, PRICE, COCOMO is used widely to estimate software cost.

15 Summary The problem is not in the way that we estimate as we have Approved sizing standards Approved Software development life cycle Understanding of how software works Software estimating issue is similar to that of any hardware estimating One of the problem why the software projects fail is due to the uncertainty around project requirements

16