Sí, definitivamente la he cagado.

Hace unos días comentaba si la habría cagado al aceptar un puesto un poco más de "jefecillo" que antes. Y efectivamente, compruebo que la he cagado. La prueba de ello es que en vez de hacer código, me estoy dedicando a mirar cosas como statcvs, una herramienta que mira el log de todos los commits que se han hecho en un proyecto en CVS y luego saca un montón de gráficos molones, inútiles, pero molones.

Aquí van unos cuantos ejemplos. El siguiente es un gráfico que muestra los commits como puntitos de varios desarrolladores a lo largo de cerca de cuatro años. Me he cargado el nombre del proyecto y de los desarrolladores, por  aquello de la discrección. En cada gráfico, el eje y son las horas del día, de 0 a 24. En el eje x son los días a lo largo de los años. El primer gráfico, de puntitos azules, muestra el total de commits del proyecto. Los siguientes, con puntitos rojos, cada uno de los desarrolladores.

Llama la atención el tercer desarrollador, que se fue a teletrabajar hace un año. Se nota claramente que desde ese día NO tiene horarios. Antes hacía commits de 8 a 6, horario de oficina. Ahora es habitual que haga commits a la una de la madrugada.

También llama la atención el último, con una densidad de commits especialmente alta. Se ve que es amigo de CVS. Curiosamente, se ve una pequeña franja horizontal sin commits, correspondiente a la hora de comer.

En el sexto desarrollador, hacia el principio del gráfico, también se ven unos días de agobio. con un commit pasada la media noche.

También se ve, gracias a Dios, que en mi empresa tenemos un horario en general normal. Son raros los commits más allá de las seis de la tarde.

y en este otro gráfico, se ve cómo han ido añdiendo líneas de ćodigo en otro proyecto distintos desarrolladores. Las grandes subidas se deben posiblemente a copy-paste de otros proyectos (vergüenza) o bien a "refactoring" intensivo, a base de mover grandes fuentes bloques de fuente de un sitio a otro (espero que sea eso). En la parte baja estaba el nombre de los desarrolladores, asociado a cada una de las líneas de color, pero me los he cargado.

y aunque no he puesto ejemplos, también hay gráficos para cada desarrollador indicando en qué horas del día mete más en CVS o en que días de la semana. Aunque en general este tipo de gráficos si es más o menos aleatorio, a veces se ve gente que tiende a meter en CVS los viernes, o bien justo antes de comer o de irse a casa por la tarde. Supongo que eso también es una mala costumbre, da la impresión de que no meten el código cuando lo han probado bien, sino como una especie de "backup" de su trabajo diario, metiendo en CVS cosas que quizás no están lo suficientemente probadas.

Aquí puedes ver un ejemplo completo de los gráficos estadíscos generados por statcvs.

Esta entrada ha sido publicada en Herramientas, trabajo y etiquetada como , , , . Guarda el enlace permanente.

10 respuestas a Sí, definitivamente la he cagado.

  1. Jersson dijo:

    Hola, como que sientes que quieres regresar al «trabajo de campo», si, es toda una transicion, pero, cuestion de ver la manera de como hacer mas productivo el trabajo del equipo, aunque, viendo parte de los graficos, creo comprender parte de tu desazon.

    A seguir para adelante nomas.
    Suerte.

  2. Chuidiang dijo:

    Hola Jersson:

    Por favor, dime qué problemas ves en los gráficos. Como bien comentas, mi objetivo principal ahora, aparte de que las cosas salgan a tiempo, es que trabajemos bien y a gusto. Quizás veas cosas que yo no veo.

    Gracias y se bueno.

  3. seiju dijo:

    ¡Todavía hay gente usando Cvs! Qué cosas se ven por ahí. Si quieres sugerencias para mejorar el desarrollo una sustitución de cvs creo que sería uno de los puntos de partida necesarios. No me creo que siquiera alguno de los desarrolladores prefiera cvs frente a vcs’s decentes como git o bazaar.

  4. Chuidiang dijo:

    CVS no es tan raro, échale un ojo a esta encuesta http://www.javahispano.org/polls.results.action?option=88

    Si es cierto que le tengo echados el ojo a los sistemas de control de versiones distribuidos, pero git queda descartado porque trabajamos en windows. Sí, sí, hay cygwin y cosas de esas, pero tendría que tener muy claro que quiero git para hacer que todo el mundo se instale además cygwin.

    Se bueno.

  5. jorge dijo:

    yo estoy bastante interesado en el control de versiones. Trabajamos en asp net con un control de código Source Safe y aunque no está del todo mal, da muchos dolores de cabeza. Por otro lado, he trabajado con cvs y no está mal tampoco. Desconozco las diferencias de estos últimos sistemas respecto a éste. Cygwin parece no ser del todo aconsejable para aplicaciones de windows no??

  6. Pingback: Diario de Programación » Blog Archive » Jugando con Bazaar

  7. Chuidiang dijo:

    Hola Jorge:

    cygwin es «sólo» un entorno unix sobre windows, útil en este caso para poder compilar y ejecutar Git en windows.

    Git, bazaar, mercury, etc son sistemas de control de versiones distribuidos. En vez de haber un repositorio central de fuentes y todos trabajar con él, cada desarrollador puede tener además su propio repositorio del proyecto. Estos sistemas dan comandos suficientes para que dos desarrolladores puedan hacer «merge» de sus repositorios locales, compartiendo código sin necesidad de subirlo previamente al repositorio central.

    cvs y sbuversion son los gratuitos más conocidos, aunque no son distribuidos, sino que se basan en un repositorio central donde todos los desarrolladores deben dejar el código cuando hacen commit.

    Se bueno.

  8. Jersson dijo:

    Hola, cvs se sigue usando, digamos que es la base que permite comprender otras herramientas, no?
    Por otro lado, me referia al primer gráfico (el de los commits), era un reflejo de lo que comentabas en el post.

    El trabajo en equipo es de por si una Odisea, pues tienes que lidiar con todas las realidades (una por persona) que puedas imaginar. A esto debemos sumarle el nivel de profesionalismo, responsabilidad e identificación que se tenga con el proyecto.

    Considero que es importante tener las metas claras (una de ellas, cumplir con el proyecto), incrementar las reuniones de control de avance, intentar identificar riesgos, como menguar los problemas y de paso (aunque a veces no se tome en cuenta) ver la manera de encontrar el lado humano del equipo.

    Un Saludo.

  9. jorge dijo:

    Correcto Chuidiang, entiendo perfectamente la utilidad pero pienso el hecho de utilizar estos sistemas distribuidos únicamente para proyectos bastante o muy grandes. Para el resto creo que es una pérdida de tiempo y una fuente de problemas.

  10. Chuidiang dijo:

    Hola Jorge:

    De hecho, no creo que intente cambiar en el trabajo CVS por Bazaar (ni ninguno otro distribuido), aunque quizás si por subversion. Con CVS nos va bien y para nuestros proyectos no veo necesidad de un sistema distribuido y sí prevo muchos problemas de adaptación (la mitad de la gente no sabe de CVS más que un uso básico) y de integración con el IDE (eclipse). Hay plugis de bazaar para eclipse que no he probado todavía, pero que dan aspecto de estar un poco «verdes».

    De Subversion me llama la atención, sobre todo, la posibilidad de mover o cambiar ficheros de nombre conservando toda su historia.

    Se bueno.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.