lunes, 28 de enero de 2008

Cockburn y la analogía de la fabrica

Es muy común ver el uso de analogías entre el desarrollo de software y la fabricación de productos. Por ejemplo, cuando se considera que se puede tener una línea de producción de software con trabajadores haciendo actividades acotadas y simples. Un analista escribe un requerimiento, un arquitecto lo diseña, un desarrollador edita un archivo XML que es luego interpretado por un framework mágico que le da forma a una aplicación empresarial. Por último un testeador sigue mecánicamente los pasos detallados de un caso de prueba para comprobar que no entiende cual es el resultado esperado. Desarrollo de software a la "Henry Ford".

Por suerte, últimamente también es frecuente escuchar hablar de las diferencias entre el desarrollo de software y la manufactura, y como estas diferencias invalidan cualquier aplicación de conocimientos de un ámbito hacia el otro.

Pero es posible que ninguna de estas posturas sea tan acertada. Lo más lógico es analizar las diferencias, identificar que cosas se pueden trasladar de la manufactura de productos al software y aprovechar los años de conocimiento que esta industria le lleva de ventaja al software.

Alistair Cockburn escribe What engineering has in common with manufacturing and why it matters tomando esa perspectiva con interesantes conclusiones.

Tambien vale la pena chequear los autores que lista al final del articulo, David Anderson y Tom & Mary Poppendieck.

sábado, 19 de enero de 2008

Iterativo vs. Incremental

Los términos iterativo e incremental son actualmente muy utilizados a la hora de describir procesos de desarrollo de software. Pienso que existe cierto consenso generalizado con respecto a las virtudes de desarrollar software de manera incremental e iterativa. Sin embargo, no es tan claro cuál es el definición de cada uno y cuales las diferencias entre desarrollo iterativo y desarrollo incremental. Esto es claro cuando se considera la cantidad de veces que algunas personas tratan de explicarlo.
Alistair Cockburn ha hecho varios intentos y ahora agrega un nuevo artículo con este objetivo, además de agregar un resumen con varias referencias hablando sobre desarrollo iterativo, incremental y sus diferencias:

Incremental means adding, iterative means reworking
de Alistair Cockburn

Artículo recomendado para entender la diferencia entre desarrollo iterativo e incremental. No dejen de revisar las referencias del final del artículo.