Los proyectos de desarrollo de software presentan muchos fracasos y pocos éxitos, pero no tiene que ser así.
Los modelos formales, como CMMi, ISO 9000 y RUP son demasiado complejos, pesados y caros para una organización pequeña, en tanto que los modelos ágiles carecen de suficiente estructura para asegurar el éxito repetible desde el principio.