lunes, abril 24, 2006

Next Step

Nota: Antes de comenzar, este post es literal, el siguiente paso, no tiene que ver ni con la empresa de Steve Jobs (no alcancé a conocer esos equipos, ni su sistema operativo, ni he usado el actual de Mac, que viene de allí), ni a otros que hacen juego de palabras similares ;-)

Realizada la prueba de concepto, lo lógico es dar el siguiente paso, el cual corresponde a habilitar el control de versiones... ¿qué? ¿no es programar? Probablemente más de una persona puede estar haciéndose esa pregunta. Si ya escribimos código, ¿por qué parar? Otro, podría decir, ¿y el diseño?

Al primero, la respuesta es simple, si no habilitamos al principio el control de versiones, ¿cuando? ¿al completar el primer millón de líneas de código? Como muchas cosas, el mejor momento para hacerlo es lo antes posible.

Al segundo, efectivamente vamos a hacer diseño, pero ese diseño hay que documentarlo, y la documentación también es un entregable del proyecto, por lo tanto, preparar el ambiente es recomendable en ambos casos.

Ok, convencidos o no, viene el proceso de habilitar nuestro control de versiones, en mi caso, tengo un repositorio de Subversion creado en mi Notebook, por lo cual sólo fue necesario hacer un Add y luego un Commit del código correspondiente.

Automáticamente, desde Trac pude ver los cambios y el proyecto pudo darse por iniciado. Finalmente, generé un branch en que quedó registrado cual fue el proyecto utilizado como prueba de concepto. En otras palabras, en menos de tres minutos esta tarea fue cumplida......

¿Para qué? Alguien puede estar preguntando eso, si es el desarrollo de una sola persona, ¿para qué darse la lata de tener un repositorio, administrarlo, respaldarlo, agregar, hacer commits, etc?

La respuesta podría ser simplemente para practicar, pero la verdad es que no, este tipo de herramientas es útil independiente de la cantidad de usuarios, es cierto que con uno se elimina el problema de los conflictos, pero no se elimina el querer regresar a un instante dado, comparar los cambios que uno ha hecho y obtener la ventaja de monitorear los cambios en forma incremental.

En otras palabras, el control de versiones exige poco de los desarrolladores (lo malo es que por poco que sea requiere algo, y los programadores son reacios a invertir ese tiempo mientras no visualizan las ganacias), ya sea con Source Safe, CVS o Subversion (los 3 que yo he utilizado), y los beneficios, en un desarrollo ordenado, son relevantes.

En todo caso, más adelante voy a escribir un post más detallado de los que significa el uso de una herramienta de Control de Versiones y de los problemas de implantación que un sistema como este tiene, para aprender de errores anteriores ;-).

1 comentario:

Luis Becerra Ureta dijo...

Alejandro con respecto a este tema te quiero agradecer, porque logre aprender cosas nuevas trabajando bajo tu jefatura, como lo es trabajar con CVS y por lo tanto implementarlo en un proyecto de la empresa BAC y lograr sacar un gran provecho a TortoiseCVS. Saludos Luis Becerra Ureta