Code growth is not a new phenomenon—it has plagued software projects since there have been software projects. Code growth refers to the tendency for most software projects to produce more code than was expected or planned for in the early stages of the project. Norm Augustine sagely sums up the problem of code growth with the following statement: "Software is like entropy. It is difficult to grasp, weighs nothing and obeys the second law of thermodynamics; i.e. it always increases."
Most projects experience some code growth. Some projects experience significant code growth. Estimators need some yardstick to help them understand—for a specific code count—where it falls in the spectrum of code counting uncertainty. There are definite indicators as to how risky a particular code count is. The earlier in a project the count was done, before requirements are understood and clearly defined, the more likely the code count is to increase as the project progresses. The amount of invention or new technology is also likely to contribute to the uncertainty of code counts.
From an estimator’s perspective, code growth should be treated like any other uncertainty in a project estimate. The TruePlanning for IT - Software Cost Model Estimating tool (formerly True S) provides a risk analysis feature that determines the cost risk of a project based on input parameter uncertainties and correlations between components in the estimate. This feature is ideally suited to help an estimator incorporate code growth into their estimates. The TruePlanning for IT - Software Cost Model Risk feature has been designed to help an estimator predict uncertainly ranges based on factors that indicate Project Phase and Technology Maturity. When a new Project is initiated in TruePlanning for IT - Software Cost Model, the following screen allows the estimator to make choices that set the default risk ranges for input parameters.