After 40 plus years in the soft and hardware estimation and analysis game, Unison Cost Engineering knows that estimating the cost of Software (SW) development is very challenging. Cost estimators struggle to appreciate the development process’s creative (and often unpredictable) nature; The process does not always fit the linear models they use for estimating. In return, SW developers and engineers do not always appreciate the scope and application of a cost estimate and question the need to provide a detailed baseline for their creative processes.
The transition to agile management approaches for SW development has introduced even more challenges for cost estimating teams, especially as they support long-term budget development and program execution. For example:
- Required SW capabilities are mapped to short release cycles/increments, focusing on the immediate cycle in-work, and pushing planning for future cycles to occur just as they schedule to start.
- SW development and testing is accomplished in short term iterations, such as sprints. Daily changes may occur in the order and priority for work to be completed in each release cycle.
- Useable SW features are delivered to the end user as they are completed and not at the end of a lengthy waterfall schedule.
- Effort is measured in hours, based on qualitative sizing (e.g., story points) relative to the specific SW being used and the development cycle in-work.
- A “story point” does not have a standard, well-defined meaning and changes from development team to development team.
Adapting to an agile program, Unison Cost Engineering experts are using estimating methods to capture the flexibility and dynamics of rapid iterations, increased automation and frequent deliveries of working SW features. The following characteristics and assumptions have guided the effort:
- Agile is a management paradigm, not a new way to write code or a new programming language.
- In an agile program, regular SW development activities still occur but are enhanced by automated testing, more user interaction, and increased concurrency, delivering working SW to the user faster.
- SW development effort is still measured in hours, driven by the relative size of the SW stories needed to be coded.
- Work from the backlog pool is selected and sized to fit an increment time box, and teams cannot do more than they are capable of in any time box period (sprint, release).
- Any “capability” is not complete and ready for delivery to the user until it integrates into deliverable working features including tests completed by the development team and user.
Unison Cost Engineering made several changes in our models to accommodate these real-world agile characteristics and modified our internal cost estimating relationships:
First, we had to re-imagine sizing measures.
- Users define qualitative size measures described by the SW development team, such as stories or story points.
- These measures describe a velocity (effort per unit time) based on the type of SW being coded — lines of code, function points, use cases, RICE-FW objects, or whatever is appropriate for the SW being developed by that team. The velocity and size measure can be changed as often as needed.
We then modified our predictive models to create two agile-specific model objects:
- A SW Development Model incorporates the capabilities of a development team, including measures of their experience, team size, and productivity (the calibrated agile velocity described above). Users enter the number of customized size units (e.g., story points) to be accomplished in the increment, enabling a cost estimate that reflects the user-entered team capabilities.
- A Feature Integration Model captures costs for a release iteration, including integrating and testing multiple features comprising one or more SW components.
Benefit from supervised, predictive models validated by a dedicated research team to give leadership more confidence in program decisions. Unique, powerful technology derived from the study of data, information, and knowledge for decades gives faster decisions with less risk.