Desde los inicios de redradix una piedra angular de nuestro sistema de trabajo ha sido la calidad de vida para las personas que componen la empresa. No me refiero a seguro dental, ni a cheques guardería, que solo se hacen para pagar menos bruto y tener beneficios sociales a nivel de empresa, sino a cosas que realmente importan en tu dia a dia. Y seamos sinceros, la razón de ello, no es otra que captar a las personas que realmente te interesan y que ellos se fijen en ti.

Todo gira entorno a la confianza. Si no confías en la gente que te rodea, como vas a poder hacer bien tu trabajo? Entre programadores, entre maquetadores, entre diseñadores, desde un disenador a un maquetador y viceversa, desde un maquetador a un programador y viceversa, desde un programador al CEO o desde el CTO al programador. Entre todas las personas y desde todos sus roles. La confianza es el pilar básico de una empresa. Casi ninguna lo tiene. Por eso inventan todo tipo de reglas que lo único que hacen es aumentar la sensación de control del que está por encima y disminuir las ganas de trabajar de todo aquel que es controlado.

Confiando, tanto en las habilidades como en la responsabilidad y determinación de cada una de las personas que componen la empresa, conseguirás lo mejor que cada uno tiene que ofrecer. No es creencia o conversación intelectual. Es nuestra experiencia.

Flexibilidad de horarios y lugar de trabajo

Recuerdo que cuando creamos Redradix, le comenté a Juan que una de mis metas era crear una empresa a la que a nadie le diese pereza volver a trabajar después del fin de semana. Con esta meta en mente creamos Redradix. Una de las propuestas para lograr esta meta es la posibilidad que tiene cada uno para decidir sus horarios y su lugar de trabajo.

Status de remoteo

A día de hoy somos 18 personas. Utilizamos slack como herramienta de comunicación y la utilizamos exhaustivamente. Una idea que tuvo un compañero, a raíz de una conversación por slack, es utilizar un emoticono para indicar, de forma visual, si estamos trabajando y desde donde. Como imaginareis, la casita implica “trabajando desde casa”, el rascacielos, “desde la oficina” y la palmera desde “lugar recóndito” (si el círculo verde está activo, sino, implica vacaciones). Te puedes hacer una idea de cómo funcionamos con respecto al remoteo.

Dificultad de comunicación

Esta flexibilidad implica muchas ventajas que no voy a listar ni detallar en este post. Donde si me voy a centrar es en el problema principal que puede generar, la dificultad de comunicación, y en las soluciones que hemos tomado. Recuerdo que estas dificultades se hicieron patentes desde que superamos la decena, con la inclusión de Dani. Los horarios empezaron a no coincidir, se empezó a trabajar más días en remoto y hubo bastante caos.

Cada uno seguía las prácticas que quería, costaba mucho unificar formas de trabajar y cada proyecto era un mundo, un universo diferente de tecnologías, herramientas de gestión, incluso leer el código se hacía difícil por no tener unas reglas de estilo comunes ni unas arquitecturas con elementos compartidos. Dani me preguntó un proyecto que pudiera coger como base para aprender la metodología redradix. No había ninguno que sirviese.

Soluciones

Vimos que si no aplicábamos soluciones, acabaría degenerando en personas convertidas en islas, donde la comunicación con el resto de islas se reduciría más y más, dificultando la unificación de procesos y la difusión de la cultura de empresa. Todas las soluciones que hemos aplicado desde entonces, comparten la idea misma idea. Crear puentes para la difusión del conocimiento y las buenas prácticas, de forma que se aumente la calidad y productividad a la vez que manteniendo unas buenas condiciones de trabajo.

1) Proceso, metodología y motivación

Define tu metodología, en base a la experiencia y, con un proceso de mejora continua, refínalo indefinidamente. En cada momento, encuentra el set de herramientas que más se ajusten a tu forma de trabajo. Domina esas herramientas y exprime todo su potencial. Escoge con cuidado, deben tener una entrada fácil, para que todos las utilicen pero a la vez potentes para sacar el máximo rendimiento al tiempo de cada uno. Y mantén la comunicación fluida. El boca a boca hará el resto.

Un requisito básico para estas herramientas de comunicación, ya estés en remoto o en local, es la asincronicidad de las interrupciones. Hace tiempo Elías, ex CTO de redradix, me contó que los programadores, como imagino que en muchas otras disciplinas, entramos en modo Berserker solo al cabo de 20 o 30 minutos de concentración ininterrumpida. En ese modo somos extremadamente productivos y no se debería, bajo ninguna circunstancia, interrumpir a nadie en este estado.

Una herramienta que facilite la comunicación asíncrona es vital en este tipo de trabajos. Ayer Julián, mi compañero de mesa, tuvo una necesidad, quería comparar una implementación de un widget, con otro muy parecido que hice hace un par de meses. Me lo comunicó por Slack y cuando terminé mi tarea, comprobé si tenía algún mensaje. Entonces lo vi y respondí. No se levantó, ni vino a mi sitio y me interrumpió. No alteró mi modo Berserker.

Os pongo algunos ejemplos de herramientas que utilizamos:

Slack

Recuerdo que cuando alguien mencionó cambiar de Skype a Slack fui bastante escéptico. Recuerdo pensar: “En Skype no puedes tener diferentes canales, no tiene integraciones con otras herramientas, su forma de compartir archivos es nefasta, pero, cómo de diferente puede ser otro chat para que merezca la pena hacer el cambio?”

La primera vez que use slack, empecé a crear canales, mande PMs, use sus emoticonos, envié archivos, integre Github y hangouts, y me convertí. Me di cuenta el cariño con el que se ha hecho. Hoy en día, Slack es core de nuestro día a día.

Además de la comunicación entre proyectos, otro uso muy interesante que le damos a la herramienta es tener diferentes canales de conversación para scopes concretos.

Nuestros canales

Tenemos canales para todo:

Todos ellos contribuyen a mantener la comunicación, a conocer mejor a tus compañeros, a disfrutar el día a día en tus descansos.

El más importante de ellos es el canal general (#redradix-general) donde entre otras muchas cosas, toda persona debe saludar al entrar a trabajar y despedirse al terminar.

Cuando Roman, que trabajaba desde Ucrania, empezó con nosotros, me comentó lo mucho que le ayudaba en el día a día, para sentirse parte del equipo, para sentirse más cerca de la gente. Y es que todo esto contribuye a mejorar la comunicación entre las personas y evitar el efecto isla antes mencionado.

Google Hangouts

Muchas veces el chat no es suficiente para describir un problema o una solución. Durante el proyecto de Acordes que realice como apoyo a Elías que trabaja desde Puerto Rico, dos o tres veces al día hablábamos por Hangouts compartiendo la pantalla para hablar sobre el código, no importa lo corta que vaya a ser la conversación. No dudamos en hacer videoconferencia con la persona o personas necesarias. Y no solo por compartir pantalla. Cuando hacemos la primera toma de contacto técnica con un cliente, siempre intento que sea por videoconferencia. Me da tranquilidad, detecto red flags con mucha mayor facilidad y creo que ellos también se sienten más seguros.

Trello

Una herramienta muy interesante para gestionar y entender el estado actual de cualquier proceso. Pero, por defecto, es muy básica. Tienes que tener muy clara una metodología, tú metodología, y buscar la forma de implementarla en Trello.

Nuestro trello

En redradix tenemos tres tipos de tableros:

La razón por la que funciona, es porque todos, incluido el cliente, conocemos la metodología, de forma que nos comunicamos con mucha facilidad a través de la herramienta. Comunicamos no solo preguntas sobre las historias, sino, las tareas que vamos a afrontar, el esfuerzo que vamos a dedicar, los concerns que nos vayan surgiendo… de forma que cliente y proveedor se transformen en un único equipo. Trello ayuda a que toda esa información esté clara y concisa en un único lugar.

Ayer, vuelta de vacaciones, hice un repaso del estado de los proyectos. Abrí Trello, y en aquellos proyectos donde estamos aplicando esta metodología, pude ver en un momento, su estado, problemas actuales e incluso velocidad de desarrollo y porcentaje completado. En el resto, pasé el doble de tiempo y no termine de entender el estado en el que se encontraban

Google Calendar

En muchos casos es necesario tener un calendario global donde ver de un plumazo todos los eventos que hay previstos para los próximos días. Cuando Juan hace su encaje de bolillos para tener a todos con proyecto, accede a Google Calendar, donde cada uno ha publicado sus vacaciones y ocupaciones. O cuando ayer cerré una reunión con IMS, de todo un equipo de desarrollo, fui al calendario y pude ver fácilmente disponibilidades de todos los implicados. Es una forma de comunicar de forma general tu disponibilidad.

Google Drive

Otra herramienta que encontramos fundamental para trabajar en equipos distribuidos, es ese lugar compartido y bien ordenado donde almacenar el material de los proyectos y de la empresa. Con Antevenio, que ya llevamos unos cuantos años, nos resulta imprescindible, tener todos los documentos accesibles y fácilmente localizables, desde guías del uso de la maqueta, diseños, contabilización de esfuerzo dedicado…

Muchas veces también lo utilizamos para compartir documentos directamente con el cliente. Todo sea dicho, estamos utilizando Google Drive y estamos altamente descontentos con su funcionalidad. Principalmente con la forma de visualizar la jerarquía de carpetas y la dificultad de ver con quién compartes qué.

Esperamos encontrar una alternativa viable y de fácil migración. Pero en cualquier caso es una herramienta de comunicación, concretamente de los productos generados durante el desarrollo de proyectos.

Reuniones

Obviamente, una de las herramientas de comunicación más efectivas son las reuniones. Las hacemos de muchos tipos. Reuniones generales donde el CEO nos pone al día del estado general, reuniones de CTO, con enfoque más tecnológico, reuniones intraproceso (UX, diseño, maqueta, frontend o backend), reuniones interproceso, y dentro de las reuniones de proyecto, tenemos reunión de kick off, reunion de división de componentes, y obviamente sprint planning y demo antes y después de cada sprint.

Siempre con un marco bien definido pero muy flexibles sobre los temas a comentar. Siempre concisas y lo más breve posibles. Siempre respetando el turno de palabra y escuchando con atención a los demás. Siempre con respeto. Hace poco realizamos una reunión de buenas prácticas entre los javascripters y sin haberlo planeado, y en menos de una hora, redefinimos nuestra guía de estilos. Ese es el espíritu.

2) Flujos de trabajo

Por último mencionar, la necesidad de unos flujos de trabajo completamente definidos. Una vez tuvimos claras las áreas de trabajo en Redradix (UX, definición, diseño, maqueta, desarrollo) y hubimos depurado su funcionamiento, nos vimos en la necesidad de mejorar también la comunicación entre estas áreas. Recuerdo la frase que me dijo Alicia hace unos meses:

Ahora mismo funcionamos como pequeñas fábricas cada una generando un producto distinto, y así es como lo ve el cliente. Debemos ser una única fábrica de cara al cliente, un proceso único con todas sus piezas bien engrasadas

Desde entonces, ese ha sido nuestro foco. Definir el input y output de cada una para que encaje con el siguiente proceso, mejorar el pipeline de producción, limar asperezas entre las diferentes piezas que forman el puzzle, para que la percepción del cliente, no sea la de varias fases, sino la de una unidad, una fábrica, una caja negra, donde, como cliente, presento una idea y obtengo un producto. Y más importante aún, donde, como trabajador, se perfectamente que inputs voy a tener y que outputs debo producir. Tengo definida la comunicación entre procesos.

3) Remotear 24/7

A pesar de todo lo que defiendo la flexibilidad del horario y del lugar de trabajo, no creo, basado en mi experiencia en estos años en redradix, en el trabajo en remoto a tiempo completo. El tipo de lazos que se generan estando en el mismo sitio físico, compartiendo vivencias locales, durante algunos días a la semana, me parece esencial para que el resto de comunicaciones de trabajo, funcionen como deben hacerlo.

Todos los lunes nos juntamos para desayunar y tratar algunos temas que consideramos relevantes. Y los viernes salimos a comer fuera, en grupo, hacemos charlas tecnológicas en vivo, talleres, juegos creativos, descansos de 5 minutos que acaban siendo 20, pair programming, code reviews, charlas postmortem… todo ello contribuye a que, ayer por la tarde, cuando nos juntamos por Hangouts para resolver entre Arturo, Diana y yo, la mejor solución para hacer nodos conectados por flechas en un canvas, encontrásemos la solución en 5 minutos, en vez de en 20. Es mi experiencia.

Todos los veranos experimentamos el síndrome de la oficina vacía. Y todos los Septiembres luchamos por volver a la normalidad. Es como una epidemia, como una depresión, que se mete en bucle y cada vez va a peor. No dejes que se extienda. Haz entender a tu gente que, solo entre todos podemos mantener este gran ambiente de trabajo, esta facilidad para que, cuando llegan los lunes, vayamos a trabajar con ganas.

Oficina

Conclusión

En definitiva, manteniendo una cultura de empresa que gire en torno a la confianza, fomentando la autosuficiencia, con un proceso bien definido, con sus piezas bien engrasadas, podrás ofrecer flexibilidad de horarios y de lugar de trabajo sin que ello repercuta a la calidad ni productividad de tu equipo.