Sólo cuando el último árbol esté muerto, el último río envenenado, y el último pez atrapado, te darás cuenta de que no puedes comer dinero

Archivos del día 27 de November del 2007

[Ajax] – Framework ZK

zk_demo.JPGZK is an open-source Ajax Web Framework that enables rich user interface for Web applications with little programming.

En su web podemos ver en una demo cómo funciona, toquetear código y ver los resultados…

Medias gracias nuevamente a Álvaro, quien dice que mola.

Fork de un proyecto: proyectos multi-rama

Al llegar a un nuevo trabajo, me encalomaron el proyecto mega-marrón : desarrollado  cuatro años antes sin documentación,  me dieron un war que no sabían ni siquiera si era el que estaba en producción, sin metodología, sin comentarios en el código, utilizando librerías propietarias sin documentación, nadie en la organización sabía lo que hacía ni lo que debía hacer, nadie había leído una línea de código… Una maravilla vamos.

Lo primero que se me ocurrió fue duplicar el proyecto en el gestor de versiones, porque quería tener al menos un punto de partida para lavarme las manos, y no me fiaba del software que gestionaba las versiones para realizar una versión del proyecto ni abrir una nueva rama.

Entonces me pidieron por un lado que migrase el código existente para utilizar otras librerías más modernas de libre distribución y otro servidor de aplicaciones, además de pequeños cambios. Estos cambios exigían realizar pequeños desarrollos. Por otro lado también me pidieron que comenzara una migración a struts del código existente. La migración por supuesto es un cambio radical del proyecto. Así que opté por una nueva duplicación.

Al finalizar los desarrollos y la migración, me encontré con tres proyectos diferentes en el gestor de versiones. Con lo cual en lugar de realizar un buen trabajo (reducir la complejidad, documentación, pruebas, depurar el código…) multipliqué por tres los problemas que se hubiese encontrado mi sustituto si me hubiese ido en ese momento, sin ganar nada a cambio.

Si hubiese surgido un nuevo requisito, mi sustituto lo hubiese implementado en las tres ramas ? sólo en una ? en cúal ? y yo ?

Recuerdo haber vivido situaciones más dramáticas, como en una ocasión que cada rama era gestionada por un equipo diferente. Cuando finalmente se necesitó llegar a una versión 1.0 del proyecto, la sincronización entre las ramas fue… curiosa :)

Gestionar proyectos multi-rama es una tarea extremadamente compleja y delicada que requiere un equipo muy profesional y cuidadoso. En la mayoría de los casos es innecesario abrir nuevas ramas de desarrollo. Yo no soy partidario de abrir ramas en los proyectos salvo casos de extrema necesidad porque ya es suficientemente difícil sacar tiempo para gestionar un proyecto, como para tener que gestionar uno con 3 ramas. Además normalmente debe hacerlo la persona que permitió abrir ramas innecesariamente.

Comenta