Infraestructura 1: Conciencia situacional
Cuando se trabaja en un repositorio es imprescindible que se sepa, en todo momento, en qué estado está ese repositorio: si se encuentra sincronizado con el repositorio principal, si el indice está actualizado pero no está sincronizado, en qué rama se está trabajando, y una serie adicional de información que componen la conciencia situacional: qué estamos haciendo en un momento determinado y dónde lo estamos haciendo. Eso evita errores, y en muchos casos puede darte una pista de qué es lo que hay que hacer a continuación, siguiendo la máxima habitual en ingeniería de software, que es “qué tengo que hacer ahora”.
La mejor forma de lograrla es usando herramientas que, en la línea de órdenes, nos muestren toda esa información cada vez que se haga algún cambio en el repositorio o se ejecute algún comando.
En general, la forma de lograr esto es usando temas del intérprete de línea de órdenes. El intérprete de línea de órdenes es lo que se ejecuta desde el terminal para interpretar las órdenes que se le dan y los programas que estén disponibles, y a través de una serie de capacidades permiten seleccionar y usar temas. El programa para hacer esto dependerá del intérprete que usemos, pero algunos populares son Oh-my-zsh
que se usa desde el shell llamado zsh
o Bash-it para el intérprete habitual llamado bash
.
Otros programas de terminal en diferentes sistemas operativos también tienen sistemas similares. Conviene que tengas uno instalado, el que más te guste, y sepas interpretar los diferentes símbolos que tiene para poder conseguir esa conciencia situacional de la que hemos hablado.
A otro nivel, el equipo tiene que ser consciente de lo que el resto del equipo está haciendo. Las reuniones daily ayudan, pero también hace falta tener información en tiempo real cuando algún otro compañero ha creado un pull request o actualizado el mismo. Para esto se suelen usar bots asociados a sistemas de mensajería tales como Slack o Telegram: esos bots se configuran para que envíen un mensaje al canal de Slack o grupo de Telegram (en el que estarán todos los miembros del equipo) cada vez que ocurre un cambio significativo. Así, más allá de los involucrados directamente en alguna actividad, todo el equipo “sabe” lo qu ese está haciendo y puede, si no echar una mano, al menos mirar y ser consciente de cómo se está avanzando en otras partes.