lunes, 9 de abril de 2012

GeneXus y el modelo cascada


http://es.wikipedia.org/wiki/GeneXus
"GeneXus es una herramienta de desarrollo de software basada en conocimiento, orientada principalmente a aplicaciones web empresariales, plataformas Windows y aparatos inteligentes."

Genexus parece un framework 100% adaptado al modelo de desarrollo Cascada (Waterfall); y siguiendo la metodología al pie de la letra, si en algun momento  - a mitad de camino del desarrollo y ya superada la etapa de diseño - surgiera la necesidad de hacer modificaciones en los requerimientos, habría que volver a la etapa de diseño y regenerar el código desde cero (literalmente en el caso de Genexus).

Entiendo aunque a primera vista parece haber "dificultad" para modificar un proyecto Genexus "sobre la marcha", sería en realidad algo así como pedirle peras al olmo, si en cambio se desarrolla haciendo Waterfall puro, Genexus no debería presentar ninguna dificultad.

[Obviamente, Waterfall va a tener un costo asociado (tiempo, dinero, personas, etc.), al tener que volver a comenzar desde cero, podemos "pensar" ese costo como "elevado", pero también convendría compararlo con lo que costaría en tiempo, dinero, personas, etc., intentar forzar cambios a mitad de camino en una herramienta que no está pensada para ello]

Conclusión (e hipótesis diría): para que Genexus funcione bien (pero "bien-bien"), hay que tener todos (pero todos), los requerimientos (redundo, el 100%), ANTES de comenzar el diseño (ni hablar de codear). Si una necesidad del desarrollo fuera re-adaptarse continuamente a
cambios y adiciones de requerimientos a un proyecto que ya superó la etapa de diseño, pensaría que Genexus no va a adaptarse muy bien (y ello podría tener importantes consecuencias en el consumo de recursos: tiempo, dinero, etc.)

La noción de modificar requerimientos a mitad del desarrollo en cambio, se alinea perfectamente con los modelos ágiles de desarrollo, con "chunks" (sprint en Scrum por ejemplo), de tiempo entre requerimientos y publicar código de nivel de producción (release de código usable), donde al final de cada "chunk" se puede introducir nuevos requerimientos (y cambiar el diseño), justo a mitad de camino del desarrollo "total" (el que va a cumplir con el 100% de los requerimientos).

Muchos frameworks se adaptan bien al desarrollo ágil, dejo al lector googlear al respecto.

Correcciones, ideas? Más que bienvenidas.

Dejo el link del próximo Framewar Resistencia (del 14/04/2012), al final, donde - ya está confirmado - van a poder ver a developers Genexus y conversar con ellos al respecto.

Links:
http://en.wikipedia.org/wiki/Waterfall_model 
http://en.wikipedia.org/wiki/Agile_software_development
http://es.wikipedia.org/wiki/Scrum#Sprint
http://neavalley.org/FRAMEWAR/

No hay comentarios: