Diario de programación

Seguramente te estés imaginando la típica libreta en la que la gente apunta las cosas y lo que va haciendo, pero en este caso hablaremos de la primera aplicación gratuita creada por Mi Alejandría.

¿Que es un diario de programación?

Comencemos pues definiendo lo que es un 'diario de programación', para lo cual debemos ponernos en el contexto adecuado, el de un programador trabajando en su día a día.

A un programador su jefe de proyectos le mandará realizar una serie de tareas, para crear o modificar funcionalidades de las aplicaciones o web que este programando. Lo normal es que una tarea pueda durar desde días hasta unas dos semanas como máximo. Bien, durante esos días, el programador, pondrá/modificará/borrará un numero bastante elevado de lineas de código y cuando haya terminado la tarea guardará una versión en el control de versiones que use su empresa.

El problema mas común a la hora de escribir código durante al menos una semana, suele ser que se pueden eliminar partes de código que se escribieron nuevas, después se borraron y tras dos días nos damos cuenta de que eran necesarias. Un ejemplo seria el siguiente:

Un programador X comienza una tarea que deberá terminar en 2 semanas, el lunes escribe 50 lineas de código en diferentes apartados, el martes elimina la mitad de dichas lineas por pensar que no son necesarias y el viernes se da cuenta de que debe volver a pensar y codificar de cero dichas lineas, debido a que entre inicio  y fin de tarea no se guardan versiones de lo realizado en el control de versiones de su empresa.

Un diario de programación es una aplicación que soluciona dicho problema permitiendo ver como era el código a lo largo de distintos días.

Que hace, como funciona

El funcionamiento de cara al programador que lo utiliza es muy simple. Al encender la aplicación, esta escanea las carpetas de proyectos, con código que le mandemos y, de forma automática hace un guardado periódico de la versión actual de los archivos de código que encuentre, todo ello de forma local sin alterar el control de versiones de su empresa.

Al guardar las distintas versiones de lo que vamos haciendo cada día podremos tener un diario que nos permita recuperar fácilmente las partes del código que necesitemos dependiendo de en qué fecha se guardó.
Una ventaja es que el programador no tiene que andar creando versiones cada día debido a que el propio programa las genera. 

En Mi Alejandría analizamos lo que otras empresas proponen, como hacer guardados diarios por parte del programador. Esto ocasiona un gran numero de versiones que han de ser creadas por los programadores y si se hacen en la misma rama de desarrollo ocasionan perdidas de tiempo en integraciones (merge) innecesarias para un código y tareas no terminadas.

Otros proponen que por cada programador se cree una rama de desarrollo y después un integrador (programador solo dedicado a unir ramas) las une periódicamente, pero de igual manera seguimos cargando de trabajo al programador al tener que crear versiones regularmente.

Y por ultimo, pero no menos importante es el hecho de que lo único que debe contener un diario de programacion es el codigo fuente. Archivos de iconos, imagenes, archivos de configuracion para entornos de desarrollo (IDE como  visual studio, netbeans....), bases de datos, etc. No es lógico guardar versiones diarias de dichos archivos y en este aspecto es en lo que radica la diferencia entre un software para control de versiones y un diario de programación.

Comentarios