Es debido a que los requerimientos del software cambian, pero el efecto que los cambios tienen varía según la época en la que se introducen. Cuando se solicitan al principio cambios en los requerimientos (antes de que haya comenzado el diseño o la elaboración de código), el efecto sobre el costo es relativamente pequeño. Sin embargo, conforme pasa el tiempo, el costo aumenta con rapidez: los recursos ya se han comprometido, se ha establecido la estructura del diseño y el cambio ocasiona perturbaciones que exigen recursos adicionales y modificaciones importantes del diseño.
Ademas el desarrollo del software requiere razonamiento y lógica, es por eso que
estos productos de software son complicados al momento de estimar los
costos ya que los desarrolladores cobran por lo que saben y no por el
trabajo que realizan.