Slack es una de esas herramientas que se ponen de moda de manera fulminante en el mundo del desarrollo de software y que, posteriormente, o viven “eternamente” o mueren tan rápido como han nacido. En mi opinión, Slack ha venido para quedarse con nosotros, así que en Belike hace ya mucho tiempo que decidimos darle la bienvenida y convertirla en un imprescindible en la gestión de nuestros proyectos.
Puedes encontrar infinidad de entradas en multitud de blogs acerca de qué es Slack, de cómo se utiliza y para qué puede servir. En este post sólo describiré esto de manera introductoria, porque el verdadero objetivo del post es mostrar un caso real de uso: Slack es la herramienta principal de comunicación en uno de nuestros proyectos de desarrollo de software. Por temas de privacidad, me vas a permitir no decir el nombre del proyecto y también enmascarar las URL en las capturas de pantallas incluidas en el post.
¿Qué es Slack?
Slack es un sistema de mensajería en tiempo real que permite la comunicación entre distintos equipos y que integra una gran cantidad de herramientas y sistemas de terceros (Google Drive, Bitbucket, Trello, etc.). Puedes conocer los distintos planes que ofrece, incluido uno gratuito en su web. Slack se puede utilizar desde cualquier navegador web o bien descargando sus aplicaciones (iOS, Android o Windows).
¿Para qué sirve Slack?
Tiene infinidad de aplicaciones, tantas como se te puedan ocurrir, pero como a nosotros nos interesan los proyectos de desarrollo de software. Podemos decir que sirve para centralizar todas las comunicaciones que puedan existir entre todos los integrantes de un proyecto, pudiendo ser los integrantes de distintas empresas, distintos departamentos, distintos equipos, etc. De esta forma, Slack nos permitirá:
- Centralizar y organizar los distintos hilos de comunicación que existan en el proyecto.
- La comunicación podrá ser escrita o mediante el envío de archivos.
- Buscar y acceder rápidamente al contenido (conversaciones, contenido o archivos).
- Integrar con otras herramientas que se utilizan en el proyecto.
- Optimizar el tiempo y facilitar la comunicación 360º dentro del proyecto.
¿Cómo funciona Slack?
La herramienta ofrece una serie de componentes al usuario para su uso, que son:
Canales (públicos o privados)
Los distintos hilos de conversación se organizan en canales. Podrás crear tantos canales como necesites. Los canales podrán definirse como públicos (visibles a todos los integrantes del proyecto) o privados (visibles solo a una lista de integrantes).
Mensajes directos
La comunicación puede realizarse de una persona a un canal (muchas personas) o de una persona a otra. Esta última opción puede realizarse mediante mensajes directos a usuarios.
Compartición de archivos
Otra de las grandes funcionalidades que ofrece Slack es el envío de archivos a una persona o a un canal. De esta forma, y simplemente arrastrando y soltando en el canal correspondiente, podremos incluir imágenes, PDFs, documentos, diagramas, etc. Por supuesto, otra función muy interesante es la posibilidad de añadir comentarios a un determinado archivo.
Caso práctico: así utilizamos Slack en Belike
La primera tarea que hacemos tras el kick-off de un proyecto es crear un grupo de Slack con el nombre del proyecto y añadir a todos los integrantes. Para nosotros, los integrantes son:
- Cliente
- Responsables de sistemas
- Contactos técnicos
- Responsables funcionales
- otros stakeholders
- Otros proveedores
- Diseñadores gráficos
- Contenidos
- Otras empresas de desarrollo
- Nuestro equipo (con todos los integrantes asignados al proyecto).
En todos los proyectos, el proceso de construcción de las interfaces gráficos suele conllevar un número considerable de cambios desde el mockup hasta el diseño de las pantallas en Photoshop, finalizando con la programación de las mismas. Estos cambios, en ocasiones se pueden hacer complejos de seguir.
En Belike, creamos un canal UX en el que subimos laa diferentes capturas de las interfaces de usuario, ya se encuentren en formato mockup, diseño o visual final. De esta manera, agilizamos el proceso de generación de interfaces gráficas de manera muy significativa.
En Belike creamos los siguientes canales:
En cuanto a los canales, creamos los que te listo a continuación, aunque evidentemente la lista varia en función del proyecto:
- Backend: comunicaciones relacionadas con el backend del sistema.
- Frontend: los hilos de conversación relacionados con el frontend.
- UX: diseños, wireframes, y aspectos relacionados con la experiencia de usuario.
- Datos: modelado de datos.
- Entrega_continua: aquí irán a parar las integraciones con los sistemas encargados de la integración continua y de la entrega continua.
- IT: comunicaciones relacionadas con infraestructuras, Cloud y similares.
- Task: aquí va la integración que realizamos con Trello, donde podremos ver todo el cambio de estado y generación de tareas en el proyecto.
- Gestión_proyecto: este suele ser un canal privado, entre cliente y el gestor de proyecto, donde se comunican aspectos relacionados con la contratación, facturación, seguimiento, etc.
- Proveedores: acostumbramos a crear un canal independiente para cada uno de los distintos proveedores que participan en el proyecto.
La siguiente figura muestra una captura de pantalla del proyecto que estamos evaluando:
Integración de Slack con otros sistemas
Como comentaba al principio, Slack permite la integración con multitud de herramientas y sistemas de terceros. En nuestro caso, nuestros proyectos los integramos con:
- Trello: Cuando una tarjeta (tarea) cambia de estado en Trello, se emite un mensaje automático al canal #Task con el contenido del cambio. En la siguiente figura se muestra un ejemplo:
- Bitbucket: Cada vez que un programador hace un commit de código en Bitbucket, se comunica automáticamente al canal correspondiente, en nuestro caso, solemos utilizar #entrega_continua.
- Shippable: cuando Shippable detecta un nuevo commit de código en Bitbucket, comienza el build de Shippable con los distintos trabajos de compilación y pruebas. El resultado se comunica directamente al canal #entrega_continua, visualizándose de esta forma los estados de finalización. En caso de fallo, el despliegue será notificado como fallido y, en caso de despliegue correcto, se comunicará e indicará la URL de acceso a la aplicación donde los usuarios podrán probar los últimos cambios confirmados. Quizás este sea uno de las principales usos que damos en Belike a esta funcionalidad. Con ella conseguimos que los clientes puedan visualizar los cambios que ocurren en la aplicación tan pronto estén disponibles, pudiendo de esta forma recibir una notificación en el móvil y probar la aplicación en el mismo instante sobre el entorno de test. La siguiente figura muestra una de estas notificaciones:
- Jenkins: De igual forma que en Shippable gestionamos la integración y entrega continua del Frontend de la aplicación, en Jenkins hacemos lo mismo con el Backend. Cuando Jenkins detecta los cambios de código y ejecuta la compilación y pruebas, el resultado de finalización es volcado sobre un canal de Slack. Nuevamente el canal #entrega_continua es el más habitual.
Es importante insistir en lo importante que puede llegar a ser para un proyecto de desarrollo moderno de software la comunicación completa e intensiva entre todos los integrantes del proyecto. La mejor forma de asegurar que esto ocurra es apoyarse en herramientas sencillas, completas y, sobre todo, que puedan integrarse y automatizarse con el resto de componentes del ecosistema de herramientas para el desarrollo de aplicaciones. Sin duda alguna, Slack – a día de hoy – es la herramienta ideal para conseguir este fin.
Leave a Reply