Por qué a los equipos de ingeniería les encanta Slack (y por qué el tuyo también caerá rendido a sus pies)

Vaya, cómo pasa el tiempo

En 2009, éramos un pequeño equipo de ingenieros de programas que trabajábamos para crear un juego multijugador masivo llamado Glitch.

Empezamos a utilizar el servicio Internet Relay Chat (¿te acuerdas del IRC?) para coordinarnos entre nosotros. A medida que avanzábamos en el desarrollo del juego, queríamos que nuestro canal de IRC pudiera servir para algo más que para una comunicación básica. Así que terminamos haciéndole ajustes, añadiendo funciones y creando nuevas maneras de trabajar más rápido.

El juego acabó siendo un fracaso, así que decidimos centrarnos en esa nueva herramienta de colaboración que habíamos desarrollado.

Y fue una buena decisión, porque nos encontramos con algo muy necesario para el mercado: una forma realmente eficaz de colaboración en equipo.

Tal vez se debió a que no estábamos intentando "diseñar" nada. No había egos ni especulábamos sobre los posibles usuarios. Nosotros éramos los usuarios.

Así fue como nació Slack.

En la actualidad, se ha convertido en algo más grande de lo que jamás hubiéramos imaginado, y esto se debe a su adopción por parte de equipos de desarrolladores de todos los tamaños.

Sí, Slack se usa en prácticamente todos los departamentos y disciplinas existentes, pero fue en el desarrollo de software donde todo empezó, y este sigue siendo el origen de gran parte del entusiasmo de los usuarios; un entusiasmo que nos hace ir a trabajar con una sonrisa en la cara.

Es enormemente gratificante haber creado algo que tiene un efecto directo en la vida laboral diaria de los desarrolladores.

Este libro electrónico es una breve introducción a algunos de los aspectos de Slack que hacen la vida más fácil a los desarrolladores.

Esperamos que sirva para explicar por qué a los ingenieros de programas les encanta Slack.

Por qué Slack se adapta tan bien al desarrollo de software

Slack es usado cada día por equipos no técnicos. Se puede decir que se adapta de un modo orgánico a cualquier tipo de trabajo.

Sin embargo, Slack se ajusta especialmente bien al desarrollo de software. Después de todo, se trata de un tipo de trabajo muy especializado.

Si te paras a pensarlo, todos los tipos de trabajo se parecen cada vez más a esto, pero el desarrollo de software es un ejemplo de uso ideal. Exige un tipo de colaboración que simplemente no se puede llevar a cabo con el correo electrónico y las reuniones en persona. Este tipo de trabajo requiere un nuevo tipo de colaboración.

Slack: una plataforma de mensajes basada en canales

La gente que nunca ha usado Slack piensa que se trata de una aplicación de mensajería, pero es mucho más que eso. Se adapta al modo de trabajo de cualquier equipo, al tipo de software que utilizan... y al cambio.

  • Mensajería basada en canales

Permite a los equipos crear canales dedicados a tareas, proyectos o problemas concretos. Por ejemplo, un canal llamado #desarrollo-nuevo-sitio donde todos los desarrolladores se reúnen para trabajar en un nuevo sitio web. O un canal llamado #triaje-aplicación-móvil en el que los equipos colaboran para depurar los errores de una aplicación móvil.

Los canales son mucho mejores que los mensajes individuales y los correos electrónicos privados porque facilitan la participación de las personas adecuadas en los temas relevantes y en el momento justo.

  • Una base de conocimientos consultable

Un lugar en el que cualquiera puede encontrar todos los documentos, las conversaciones y las decisiones pertinentes, como las especificaciones del producto que necesitas o la conversación que hubo acerca de una nueva función.

Los archivos adjuntos de correo electrónico no suelen llegar a todo el mundo, sino solo a quienes están en copia en el mensaje. El conocimiento solo tiene valor cuando se puede consultar.

  • Una capa de integración

Un lugar en el que el software que más utilizan tus compañeros (como GitHub, Jira, Jenkins o Trello) se conecta al lugar en el que se habla del trabajo cada día.

Esto evita tener que alternar constantemente entre muchas aplicaciones. En lugar de obligar a tus compañeros a ir a las aplicaciones, lleva las aplicaciones hasta ellos.

Nota: reunir estas tres características en un mismo lugar hace que se potencien mutuamente. La herramienta es mucho más que la suma de sus partes.

Ventajas para los equipos de desarrollo de software

Una plataforma de mensajería basada en canales afecta directamente a las cosas que más importan en cualquier equipo de ingenieros: mejor código, en menos tiempo; corrección de errores más eficaz y una mejor experiencia de desarrollo (para que los empleados estén contentos). Merece la pena valorar cualquier programa que te ayude a lograr esto.

Slack es un centro de documentación vivo y todo se puede buscar.

Malika Rajvanshyingeniera sénior,, Slack

IDC nos ayudó a respaldar nuestras afirmaciones con cifras: Los equipos de ingeniería usan Slack para ser más productivos.

¿De qué forma optimiza Slack todo el proceso de desarrollo de software?

Sin duda, somos uno de los usuarios más avanzados de Slack para el desarrollo de software: nuestros equipos de desarrolladores viven dentro de la herramienta. Sin embargo, todos los días seguimos escuchando nuevos ejemplos de uso y aplicaciones e integraciones interesantes que están usando los equipos de software.

Veamos algunos de ellos, organizados según la fase del ciclo de desarrollo del software.

Plan

Slack ayuda a responsables de producto, diseñadores e ingenieros a ponerse de acuerdo en lo que van a crear y por qué.

Información del canal de Slack
Hilo de la conversación de Slack en el que se habla sobre el formulario de retroalimentación para los usuarios de la aplicación
  • Inicia todo el proceso con un canal especial para un nuevo producto o función

Podrías llamarlo algo así como #función-nueva-aplicación.

Ahora contáis con un lugar específico en el que definir el proyecto, recopilar los requisitos de la función, debatir posibles alternativas y tomar decisiones clave sobre la funcionalidad y experiencia del usuario.

  • Al compartir documentos aquí, todos son consultables

Todos los colaboradores y recién llegados pueden consultarlos. Slack se integra a la perfección con Documentos de Google para que cualquier documento esté solo a un clic de distancia.

  • ¿Tienes alguna pregunta? Publícala en el canal

Inicia una conversación y llegad a una conclusión que todo el mundo podrá ver. Ahora existe un registro permanente. Ahora existe un registro permanente.

Código

Slack ayuda a los desarrolladores a organizar las numerosas partes de un código base de gran tamaño, acelerando el desarrollo y mejorando la calidad.

Cuando llega el momento de empezar a escribir código, Slack garantiza que todo el equipo trabaje conjuntamente:

  • Un canal llamado #desarrollo-nombre-producto es el punto central para todo

Esto incluye el trabajo diario entre desarrolladores y el control de calidad; pull requests, fusión de código, revisiones de diseño, reuniones diarias, conversaciones, etc.

  • Un lugar central para revisar el código

Slack es compatible con cualquier proceso que uses para ramificar, fusionar, revisar y publicar código, ya sea que estés desarrollando en ramas de versión, ramas de función o desde un merged master.

Las integraciones con Git (con GitHub, Bitbucket o tu repositorio elegido) llevan todas las alertas de cambios a Slack.

  • Un nuevo tipo de reunión de sincronización

Las reuniones de sincronización son una parte importante para un desarrollo ágil, pero no tienen por qué ser presenciales. Los equipos de desarrollo usan el Slack de Dev para celebrar sus reuniones de sincronización —ya sean diarias o semanales— y celebran reuniones presenciales solo cuando tiene sentido (para muchos desarrolladores, la reunión más útil es la que se cancela).

Las integraciones con software como Standuply envían automáticamente informes de resumen a Slack para que tus equipos puedan compartir sus objetivos y tareas, supervisar los parámetros empresariales, publicar las notas de las reuniones y controlar el progreso y el bienestar de tu equipo.

Integración de los puestos de control en Slack publicando la pull request en el canal

Fomenta la reutilización del código: La reutilización del código es un principio básico de los equipos de desarrollo eficientes, pero supone todo un reto cuando tienes a cientos de desarrolladores contribuyendo en diferentes productos. Antes de escribir código nuevo, tus desarrolladores pueden buscar en todos los canales de Slack para ver si alguien ha escrito ya algo similar. Siguiente paso: Pregunta en los canales adecuados: "¿Hay alguien que ya haya creado un selector de fechas?" Deja de inventar la rueda del código una y otra vez.

Crea y comparte código mediante extractos Los extractos hacen que sea más sencillo compartir código, archivos de configuración y archivos de registro directamente en Slack. Tus compañeros pueden descargarlos, ver el archivo sin formato y añadir comentarios.

Slack en acción

Alma extensible

Slack no intenta hacer el trabajo de los programas que ya utilizan tus equipos, como PagerDuty, GitHub o Jenkins.

En su lugar, Slack simplemente une todas esas aplicaciones diferentes y lleva la información correspondiente de cada una de ellas hasta los canales donde se está hablando del trabajo (y facilita que se actúe en dichas aplicaciones directamente desde Slack).

Cada vez que veo una integración de Slack, la activo. Aporta muchísimo valor y nos permite ahorrar muchísimos pasos extra en el proceso.

Thomas Lawless,ingeniero informático sénior,, IBM

Estas integraciones ayudan a los desarrolladores a hacer lo que más les gusta: crear sistemas que simplemente funcionan.

Los ejemplos que compartimos en este libro electrónico no son más que eso: ejemplos. Hay tantas formas de usar Slack como equipos de software que utilizan esta herramienta.

Prueba

Las pruebas son una parte fundamental del proceso moderno de desarrollo e implementación. Slack aporta un enfoque dinámico, colaborativo y transparente a la realización de pruebas.

La integración continua ejecuta tu paquete de pruebas con cada fusión y con cada nuevo fragmento de código. Slack agiliza el proceso de muchas maneras, grandes y pequeñas:

  • Un canal llamado #prueba–función coordina el control de calidad

Permite que el equipo de control de calidad colabore con los desarrolladores en un foro abierto.

  • La integración con Jira automatiza los flujos de trabajo de prueba

Captura las incidencias en Slack y añádelas al proyecto automáticamente. Envía notificaciones personalizadas desde Jira a tus canales. Asigna rápidamente incidencias a otros usuarios y conoce su destino cuando se registran.

Algunos equipos usan Slack para mover automáticamente las solicitudes de cambios a un nuevo canal y actualizar así Trello y Asana al mismo tiempo.

  • Divide un canal para cada cliente

Con canales para pruebas independientes para iOS, Android y Web.

Comando de barra diagonal de Jira en Slack

Trabajar con Jenkins

Muchos equipos usan Jenkins como su servidor de integración continua. No tardaron mucho en descubrir nuevos modos de integrar Jenkins con Slack para automatizar todo tipo de tareas de programación rutinarias.

Ejemplo: La integración personalizada con Slack de un equipo de software crea un servidor de Jenkins en el que se ejecuta un gran paquete de pruebas cuando un desarrollador abre una pull request.

Cuando se han ejecutado las pruebas, se muestran las notificaciones correspondientes en los canales de Slack adecuados. Si la prueba del código da error, se envía una notificación al desarrollador.

Lanzamiento

Slack ayuda a enviar código a producción al automatizar los flujos de trabajo y las notificaciones.

Una entrega continuada exige muchos lanzamientos de código pequeños, con frecuencia. Slack ayuda a los equipos de desarrollo a agilizar en parte ese proceso.

Ejemplo: uno de nuestros propios equipos de software creó una aplicación llamada Deploy Wizard, que se integra con operaciones e informa del estado del código en el canal. Empieza con una fase Canary (un lanzamiento pequeño para comprobar que no haya fallos repentinos) y, luego, se expande al 10, 25, 75 y 100 % de la base de usuarios.

La integración de Deploy Wizard en Slack publicando actualizaciones del ensayo

Deploy Wizard avisa a los desarrolladores y canales adecuados en Slack a medida que progresa la implementación. Todo el proceso lo gestionan los encargados de implementación en servicio (ingenieros especializados que trabajan en turnos de tres horas).

Si los desarrolladores quieren probar su código en el entorno de ensayo, lo especifican en su solicitud merge. La implementación se detendrá en el ensayo hasta que un desarrollador informe de que ha probado el código en el canal de implementación.

Algunos equipos de desarrolladores usan comandos de barra diagonal (como /deploy_productname_staging) para activar una implementación directamente desde Slack. Los mensajes automatizados muestran cuándo se ha realizado correctamente la implementación, con un enlace al que acceder para comprobarlo (o un botón para enviarlo a producción).

Operaciones 

Los equipos de desarrolladores utilizan Slack para hacer triaje de tickets sobre problemas, debatir sobre incidencias y eliminar errores.

  • Todas las incidencias fluyen a través del canal #triaje nombre-producto

Incluidos los informes de atención al cliente (manualmente o a través de herramientas de integración como Zendesk).

  • Las integraciones reúnen todas las alertas en un mismo lugar

En lugar de esperar a que los desarrolladores supervisen el correo electrónico o revisen paneles, Slack se transforma en el único lugar en el que se da respuesta a todas las alertas por parte de las personas más adecuadas para hacerlo.

Añadir eventos de PagerDuty o tickets de Asana, y publicarlos en los canales pertinentes reduce los tiempos de resolución de incidencias y crea un recorrido de triaje. Los miembros del equipo pueden trabajar juntos para activar, ver, confirmar y resolver incidencias directamente desde Slack.

De igual modo, Slack puede extraer todas las alertas web, de transacciones, servidor y móviles desde New Relic a un canal de Slack para responder rápidamente. Todo el que esté interesado en la incidencia puede entrar al canal sin más e informarse. Esto evita que los gerentes interrumpan a los encargados de responder a la incidencia para solicitarles actualizaciones constantes. Está todo en el canal.

Los emojis y las reacji ayudan a hacer el triaje de incidencias y activar flujos de trabajo

Las reacji son un modo eficaz de registrar las respuestas de los miembros del equipo; pero también son una manera de activar flujos de trabajo automatizados. Una aplicación los recopila para que puedan agregarse, marcarse y actuar sobre ellos. Todas las incidencias abiertas (emoji del ojo, pero sin marca de verificación) se muestran en PagerDuty.

Un canal automatizado para #decisiones: algunos equipos usan el emoji del martillo para indicar que se ha tomado una decisión. Un bot se encarga de enviar todas estas decisiones a un canal llamado #decisiones, donde la dirección puede ver el flujo de decisiones y los miembros del equipo pueden realizar búsquedas fácilmente.

Además, creamos un bot que recopila y crea informes sobre esto en un canal específico.

El lado humano

Los desarrolladores de software están muy demandados. Para conservar el talento, tienes que ofrecerles la mejor experiencia laboral que puedas.

Contar con la herramienta adecuada puede ser de vital importancia para todo esto: ayuda a reducir la fricción en el trabajo, fomenta la transparencia, automatiza las tareas rutinarias y facilita el trabajo entre equipos.

Habla con cualquier equipo de desarrollo de software que use Slack.

Pregúntales cómo usan los canales, aplicaciones e integraciones.

Y, después, pregúntales qué harían sin esta herramienta.

Incorporación de nuevos desarrolladores

Dos desarrolladores nuevos se han unido al equipo. ¿Qué haces para que se pongan al día?

Manera antigua: muchas reuniones de incorporación y unos cuantos hilos de correo electrónico reenviados para que intenten apañarse. Buena suerte con eso.

Manera nueva: invitarlos al canal #desarrollo–nuevo–producto para que revisen las notas fijadas con una chincheta, como por ejemplo:

  • Especificaciones del producto
  • Especificaciones técnicas
  • Diseños

(Si estas están en Documentos de Google, OneDrive o DropBox, tendrás que asegurarte de que siempre estén actualizadas).

También pueden revisar todas las conversaciones previas, las decisiones adoptadas y las personas involucradas. Así es como se incorpora a un nuevo desarrollador.

Así es como usan Slack los ingenieros de software

Este ha sido nuestro breve recorrido para ver cómo Slack ayuda a los equipos de software a optimizar, automatizar y acelerar el trabajo. Esperamos haber explicado bien los puntos principales:

  • Esto es algo nuevo: Una herramienta de colaboración adaptativa ayuda a los desarrolladores a trabajar de un modo diferente. Es mucho más que una aplicación de mensajería.​
  • Es muy flexible: Permite a tus equipos "trabajar a su manera" con los espacios de trabajo, los canales, las aplicaciones y las integraciones que reflejan el modo en que les gusta trabajar.
  • Te ayuda a aprovechar mejor tu software existente: De GitHub a Bitbucket, pasando por Jenkins, Jira, PagerDuty, New Relic, Zendesk… Independientemente de lo que usen tus desarrolladores, compañeros de producto, control de calidad o asistencia, usarán esas herramientas de un modo más eficaz si reúnen todo el trabajo en Slack.
  • Añade valor en cada fase del ciclo de desarrollo: Desde la planificación al desarrollo, pasando por las pruebas, funcionamiento, implementación y depuración de errores.
  • A los ingenieros de software les encanta​: Esto significa que lo adoptarán y ampliarán su uso con el tiempo.

Disponemos de lo que nos gusta llamar una 'canalización de entrega de principio a fin' que se inicia con el código fuente y recorre todo el proceso hasta la implementación de la producción. Y ahora hemos integrado Slack en todos los hitos fundamentales de ese proceso.

Thomas Lawlessingeniero informático sénior,, IBM

Si quieres ver más, reserva una demostración o habla con uno de nuestros desarrolladores para que te enseñe nuestra propia instancia de Slack. Estamos muy orgullosos de ella.

Notas a pie de página

  1. IDC research, The Business Value of Slack, 2017, sponsored by Slack

¿Te ha parecido útil este recurso?

0/600

¡Genial!

¡Muchísimas gracias por tus comentarios!

Entendido

Gracias por tus comentarios.

Vaya. Estamos teniendo dificultades. ¡Inténtalo de nuevo más tarde!