Un objetivo de décadas ha sido el encontrar procesos y metodologías, que sean sistemáticas, predecibles y repetibles, a fin de mejorar la productividad en el desarrollo y la calidad del producto "software", en pocas palabras, determina los pasos a seguir y como realizarlos para finalizar una tarea.