¡Las nuevas funciones han sido desplegadas, beneficio! Pero espera, aún no están disponibles para todos los clientes, porque están esperando a ser traducidas. Eso no es lo ideal. ¿Qué hacemos al respecto? Desde que alcanzamos el flujo de un solo elemento para nuestro proceso de desarrollo, hemos estado trabajando duro para conseguir lo mismo para nuestro proceso de traducción, con nuestro equipo de traductores autónomos. Una tarea que al principio parecía imposible. ¡Reto aceptado!
El reto
Practicamos la Kata de la Mejora, que es una forma estupenda de trabajar para conseguir grandes objetivos (aparentemente imposibles) de forma incremental y experimental, de modo que la tarea se vuelve menos hercúlea.
Así es como definimos nuestro reto para las traducciones de nuevas funciones:
Llegar al flujo de un solo artículo.
Traducido en un día.
Sin perder tiempo respondiendo a las preguntas del equipo de traducción.
Sin dedicar más de cinco minutos a preparar el paquete de un solo artículo.
Queríamos mucho. ¿Por dónde empezar? Empezamos por establecer dos condiciones objetivo, la primera etapa de nuestro maratón, por así decirlo:
Defina y mida el tiempo que se tarda en traducir un solo elemento a todos los idiomas.
Consiga traducir todas las etiquetas de las nuevas funciones en un plazo de tres días (bajo demanda)*
Eso sí que era algo factible...
Definir un único elemento
En cuanto al desarrollo
Un elemento individual es una función que se desarrolla e implanta. Queríamos entregar las traducciones de cada función al equipo de traducción a medida que estuvieran disponibles. Necesitábamos una forma de empaquetar esta información para su entrega.
Queríamos entregar las traducciones de cada función al equipo de traducción a medida que estuvieran disponibles.
Utilizamos Jira para gestionar nuestro flujo de desarrollo, y los requisitos de cada función se escriben en lo que llamamos una historia en Jira. Empezamos añadiendo un nuevo campo a cada historia, donde los desarrolladores podían añadir detalles de las nuevas etiquetas o páginas que creaban para la nueva función. También vinculamos las nuevas etiquetas a su historia en nuestra base de datos, para poder comprobar fácilmente qué etiquetas pertenecen a qué historia.
A continuación, se añadió un nuevo estado al flujo de desarrollo una vez que una historia estaba en línea: procesando traducciones. Al pasar un artículo por este estado, se enviaba un mensaje con el contenido del campo al equipo de traducción. Para ello utilizamos un webhook. Los webhooks son una forma de que las aplicaciones se comuniquen entre sí cuando se produce un evento específico. Esta fue nuestra primera iteración.
Rápidamente nos dimos cuenta de que tanto el nuevo campo como el estado se olvidaban u omitían con facilidad, así que lo convertimos en una ventana emergente que no se podía ignorar y que aparecía al principio del proceso, cuando una historia pasaba de la fase de prueba a la de despliegue.
Siguieron algunas discusiones (sanas...) sobre qué información era suficiente para los traductores. Necesitaban conocer el contexto de lo que estaban traduciendo y entender cómo se comportaba una nueva función. Llegamos a la conclusión de que lo ideal eran capturas de pantalla comentadas y una breve descripción. Enviar muchas palabras con jerga técnica, no tanto.
Nos dimos cuenta de que ya escribimos una breve descripción de cada historia para las notas de la versión interna, por lo que añadir esto a la notificación automáticamente ahorró un paso a los desarrolladores. Al principio, las imágenes no se incluían en el webhook, así que tuvimos que añadirlas manualmente, lo que supuso una molestia. Así que dedicamos algo de tiempo a conseguir que funcionara también.
Todos estos pequeños pasos empezaban a convertirse en algo realmente útil.
En cuanto a la traducción
Una vez que teníamos listo un paquete individual, teníamos que decidir dónde enviarlo. Upwork era nuestra principal vía de comunicación con los traductores, a nivel individual. Admitimos 24 idiomas, así que era importante que la configuración fuera manejable. Como de todos modos utilizamos Slack internamente, invitamos a todo el equipo de autónomos a unirse a un espacio Slack dedicado a la traducción. Todos y cada uno de ellos aceptaron. Fue un cambio radical.
Era importante que el montaje fuera manejable
Tener a los 24 miembros del equipo juntos en un espacio, en una comunidad, fue mucho más fácil de gestionar. Creamos un canal de grupo específico en Slack para enviar los webhooks con las nuevas traducciones y canales de idiomas para cada contacto.

Ejemplo de uno de nuestros mensajes automatizados de Slack
El siguiente trabajo consistió en comunicar a los traductores nuestro reto y nuestras expectativas: reaccionar a los webhooks en cuanto llegaran, idealmente en 24 horas. Teníamos curiosidad por cómo se recibiría esto, pero el equipo se adaptó rápidamente. Slack es ideal para mensajes instantáneos, un rápido pulgar hacia arriba o una marca de verificación. A continuación redactamos un pequeño manual de traducción para explicar cómo queríamos que funcionara y por qué, y respondimos a algunas preguntas habituales. Lo colgamos en Slack para que el equipo pudiera consultarlo siempre que lo necesitara.
Como creamos y gestionamos nuestra propia herramienta de traducción, otro cambio que hicimos para los traductores fue añadirles un nuevo filtro para que pudieran encontrar fácilmente las etiquetas de cada historia. Luego fuimos un paso más allá y añadimos un enlace a su webhook que les llevaría directamente a esa selección filtrada.
Medir los tiempos
Una vez implantado el sistema, necesitábamos poder medir los progresos. Queríamos saber con qué rapidez se entregaban las traducciones. No queríamos hacerlo manualmente para cada idioma y para cada historia desplegada, ¡la vida es demasiado corta! Así que creamos una forma de obtener un informe de la base de datos sobre los tiempos de traducción por idioma, por historia. Ahora es posible con unos pocos clics... ¡sin necesidad de un desarrollador! Nos ha dado algunas cifras para hacer números y algo para reflexionar.
Reducir el tiempo de respuesta
Vale, todo está en su sitio, pero el plazo de entrega no es el que esperábamos. Pedimos mucho al reducir un plazo de entrega de dos semanas a tres días (esforzándonos por conseguir un día). Queríamos saber qué estaba impidiendo al equipo autónomo actuar sobre los webhooks a medida que llegaban. Sólo había una forma de averiguarlo: preguntar. Así lo hicimos, y las respuestas fueron sorprendentes.
Algunos traductores tendían a trabajar por lotes, en lugar de hacerlo de uno en uno, por problemas con el registro de tiempo de Upwork y por temor a cobrarnos de más. Fomentar el registro manual del tiempo fue la solución en este caso. Confiamos en el equipo y queremos compensar de forma justa el tiempo que dedican a nuestro proyecto. Algunos simplemente necesitaron tiempo para adaptarse a la nueva forma de trabajar.
Teníamos quejas recurrentes sobre problemas con las notificaciones de Slack, o pings. No todos los miembros del equipo utilizan Slack con regularidad. Tras experimentar con varias funciones de Slack, como palabras clave, menciones, etiquetas y notificaciones por correo electrónico, conseguimos resolver el problema. Añadimos una mención de canal y palabras clave a nuestro webhook, que activaba tanto pings como correos electrónicos en función de las preferencias de cada traductor. Así, ninguno de ellos se perdería las actualizaciones en el futuro.
También llegaron peticiones de cambios en nuestra herramienta de traducción para hacernos la vida más fácil. Nos lo han pedido y les hemos escuchado. Hemos mejorado la forma en que se guardan las etiquetas, para que sea más rápido trabajar con una lista. También hemos mejorado el filtro de búsqueda de etiquetas similares para mantener la coherencia. También hemos añadido un script de mantenimiento de la conexión, para que las sesiones activas en la herramienta de traducción no expiren a los 24 minutos, como ocurría antes.
La vida de un autónomo puede ser solitaria
La vida de un autónomo puede ser solitaria, y nos gusta hacer saber al equipo que se les aprecia, ya que son inestimables para nosotros y forman parte integral de nuestros planes. Las camisetas de Owlsome Knowly podrían haber ayudado a ello, junto con un poco de espíritu de comunidad en Slack...

Éxito
¿Hemos superado nuestro reto? Aún no. Pero no pasa nada. Hemos dado pasos de gigante en la dirección correcta, que no podíamos imaginar hace un año. También hemos aprendido mucho por el camino. Nuestros traductores son una fuente inestimable de información y comentarios, tanto para nosotros como para los demás. Tenemos un flujo único de artículos con un proceso establecido para las traducciones. El equipo obtiene el contexto adecuado, lo que se traduce en traducciones mejores y más rápidas para nuestros clientes. A eso le llamamos ganar.
El equipo obtiene el contexto adecuado, lo que se traduce en traducciones mejores y más rápidas para nuestros clientes.
El plazo de entrega aún no es tan rápido como lo definimos en nuestro reto, pero nos estamos acercando. La mayoría de nuestros idiomas tienen traducciones listas en tres días. En el último recuento, teníamos traducciones para 17 de los 24 idiomas en tres días, cuatro poco después y sólo tres pendientes durante más de 10 días.
¿Y ahora qué? Bueno, le mantendremos informado. El maratón no ha terminado. Ya estamos trabajando en el próximo reto.