En la actualidad la construcción de aplicaciones informáticas debe responder a requerimientos muy complejos y de carácter crítico de las organizaciones. La complejidad inmersa en los proyectos de desarrollo de software está asociada a múltiples fuentes: metodologías utilizadas, tecnologías de apoyo, capacidades de las personas, productividad de los equipos de trabajo, requerimientos de los clientes, entre otras. Muchos de los productos de software deben ser construidos por personas organizadas en equipos de trabajo. Es difícil pensar que una sola persona pueda desarrollar un sistema complejo tratando de responder en términos de calidad y tiempo. En el caso de un desarrollador de software, la productividad se ve afectada por la cantidad de defectos encontrados y arreglados , lo cual se traduce directamente en tiempos de desarrollo, costos y calidad. La calidad del software depende en gran medida de la calidad del proceso empleado. El proceso incluye actividades tales como la medición, planificación y la estimación entre otras. También debe permitir el mejoramiento continuo con base en indicadores previos, mediciones y datos históricos.