gestionar tareas desde la tty #
En gcoop 1 utilizamos principalmente como gestor de tareas
redmine 2 y a diario registro y resuelvo tareas de varios
proyectos usando redmine-bash-utils 3 desde mi consola (prefiero
bash antes que firefox).
la secuencia ideal #
Ni bien hay un nuevo issue es necesario evaluar si es un bug o se trata de un nuevo desarrollo, una mejora, o tal vez no hay nada para hacer o si es necesario solicitar MAS DATOS para determinar a acción a realizar.
De manera simplificada una tarea comienza en Nueva, cambia a En Curso y ni bien se termina pasa a Resuelta para que alguien la valide
y la de por Cerrada.
+-----+ +-------------+ +-------+ +--------+
| new | --> | in-progress | --> | fixed | --> | closed |
+-----+ +-------------+ +-------+ +--------+
y vos con issue qué estás? #
El flujo de trabajo puede variar, hay diferentes metodologías y posibles estados intermedios, pero lo más importante es saber si la tarea esta tomada por alguien y luego tener algún indicador de progreso de la misma.
Es una mala práctica iniciar una tarea sin al menos cambiarla a estado
En Curso y luego no comentar nada sobre ella.
Registrar el progreso es vital para detectar cuando podemos estar "enroscándonos" innecesariamente y para esto nada mejor que escribir nuestros comentarios o adjuntar el log de trabajo realizado hasta el momento en el issue, asi el resto del equipo puede estar al tanto e incuso aportar con tips o alternativas de posibles soluciones y hasta ayudarnos a encontrar el camino más directo a la resolución del problema con otro enfoque.
la salida es colectiva #
De nada sirve iniciar la tarea y 2 o 3 días después comentar que no
tuviste varios errores, te trabaste y no podiste resolverla o por el
contraro que si la pudiste resolver y sin ningún comentario simplemente
la cambiás a Resuelta, en ambos casos no estas permitiendo una
construcción colectiva y estás enfrentando el problema a solas y
probablemente con una visión sesgada del problema.
Documentar durante el desarrollo te ayuda a ayudarte!
registrá todo lo que hacés! #
En mi caso personal, no escribo directamente en el Redmine, tengo mi
versión digital de cuaderno borrador o journal, en forma de comandos
de bash, simplemente invocando jrnl 4 puedo registrar
fácilmente lo que hago a diario en archivos de texto plano que luego
mediante el comando redmine-from-jrnl puedo convertir ese jrnl en un
comentario de Redmine y gracias a esto no necesito que Redmine este
accesible todo el tiempo, puedo trabajar offline y sobre todo poder
buscar rápidamente en mi bitácora sobre tareas de días pasados.
Aunque también me apoyo en una libreta de papel, que luego la uso para mejorar mis journals y finalmente organizar el Redmine.
hace cuánto no informás el progreso? #
Muchas veces sucede que en la vorágine del apuro por resolver algo
crítico o porque simplemente me concentré demansiado y bajé a las
profundidades de algún código, no llego a enviar mis comentarios al
Redmine, pero sé que los tengo, por lo general esta todo el registro
en mi jrnl.
La solución a este problema la encontré con un par de scripts, primero
redmine-history 5 revisa el historial de bash y muestra que
comandos de redmine ejecuté hoy y a que hora exactamente!
redmine-history
09:57 redmine-new-issue "scrum $(today)"
11:01 redmine-from-jrnl
11:31 redmine-add-comment-from-file issue.txt
11:32 redmine-fix 48648
11:32 redmine-time-entry-from-file issue.txt
12:08 redmine-from-jrnl
14:18 redmine-timediff-last-comment
Luego el comando redmine-timediff-last-comment 6 discrimina que
comandos envían comentarios a redmine y calcula la diferencia de
tiempo con la última ejecución:
redmine-timediff-last-comment
02:30
De esta manera ahora puedo saber que hace exactamente 02:30 hs que no
informo nada de lo que estoy haciendo y me ayuda a ordenarme!
timediff en tmux #
Agregando #(redmine-timediff-last-comment) al status-right en
~/.tmux.conf puedo tener un indicar en todo momento que va cambiando
de color pasando de verde a narajana y finalmente a rojo cuando pasó
demasiado tiempo!
A futuro se me ocurre darle mas "inteligencia" al comando y que interactué con la API de Redmine sobre un issue en particular.
ChangeLog #
2021-03-31 14:58agregar tarea en progreso
