El desarrollo iterativo e incremental de software se caracteriza por planificar el desarrollo de un programa en “partes”, completando toda la funcionalidad requerida poco a poco, en distintas entregas a los usuarios finales (por contraposición al desarrollo “en cascada” –Waterfall– donde se analizan los requerimientos de los usuarios, se diseña el producto, se programa y finalmente se entrega el producto terminado a los usuarios del mismo).
Sobre la importancia de este principio, me gusta citar a Martin Fowler:
“Cuándo se debe usar el desarrollo iterativo: El desarrollo iterativo únicamente se debe utilizar en aquellos proyectos que se quiere que tengan éxito.”