De parejas y equipos de desarrollo
Hace unos días publiqué un enlace a un artículo que "estudiaba" la diferencia entre montar un mueble de Ikea por una pareja con una relación estable de 10 años y una que se acaba de conocer. Pero eso no es lo realmente interesante, que lo es, lo importante fue la reacción de @GermanDZ, la cual me dió la idea de escribir un artículo comparando los equipos de desarrollo de software y la vida en pareja.
@ydarias cualquier relación con el funcionamiento de un equipo de desarrollo es pura coincidencia.— German DZ (@GermanDZ) August 25, 2014
Cuando puse el enlace en Twitter, no se me pasó por la cabeza asociar el artículo al desarrollo de software, simplemente me pareció divertido. Pero si lo piensas detenidamente, tiene mucho sentido y es algo que si llevas un tiempo en este mundillo habrás visto más de una vez, grupos de personas con mucho talento que fracasan y otros que con no tanto talento logran formar un equipo con una calidad genial.
Saber convivir
¿Cuántas parejas conoces que en su fase de novios parecían perfectas y no aguantaron ni medio año viviendo juntas? A primera vista puede parecer que si contratas a 5 personas con talento formarán un gran equipo, capaz de llevar a buen puerto cualquier proyecto, pero no es así en absoluto. Sin lugar a dudas el talento es importante y un aspecto a buscar, pero también se requiere que cada individuo se esfuerce en formar un equipo. Es importante que nadie haga la guerra por su lado, que les domine el ego o que intenten imponer su forma de trabajar. Deben llegar a acuerdos, desde las herramientas y plataformas que van a utilizar hasta acuerdos sobre el código, la forma de organizar el trabajo y una larga lista de cosas que se llevarían un artículo por si solas.
Para formar un buen equipo, al igual que para vivir en pareja, es importante limar asperezas, hablar mucho y conocer al resto de personas. Y por desgracia, simplemente hay personas que no encajan juntas. Puede parecer que al principio funciona, pero se cae a la primera crisis que ocurra, y ten por seguro que ocurrirá alguna. Por esta razón hay que tener mucho cuidado en las fases de contratación, no siempre contratar en menos tiempo es más barato. En mis años en Avantic la contratación de una persona siempre se dilataba a meses, pero como contrapartida el equipo siempre fue estable y nunca se vio comprometido.
Pro-Tip: También ayuda mucho que las amistades se mantengan fuera de la oficina.
Hay que empezar por muebles pequeños
Posiblemente, la razón por la que ganó la pareja con 10 años de relación es que ya habían montado más de un mueble juntos, se habían enfrentado a ese problema y tenían una forma de trabajar. Sabían interpretar las instrucciones y se repartían el trabajo según que supiese hacer mejor cada uno.
Por suerte el 95% de mi carrera profesional lo he podido realizar en empresas pequeñas en donde nos comportábamos como una familia y formábamos un equipo. Empezamos por proyectos más manejables antes de dar el salto a proyectos más ambiciosos, lo cual nos aportó la ventaja de que ya sabíamos como resolver gran cantidad de problemas de forma casi automática.
[Modificado el 1 de septiembre de 2014 tras una reflexión con un lector, gracias Dani] Pero esto no es así siempre, hay empresas que simplemente por su volumen tienen que optar por proyectos con un gran desembolso económico y por lo tanto con una envergadura mucho mayor. Por su forma de organizarse van moviendo recursos entre proyectos según las necesidades de los clientes y por lo tanto tienen individuos de mayor o menor talento, pero que en ningún caso forman un equipo. El resultado final, generalmente, suele ser malo o en muchos casos ni siquiera se llega a implantar el proyecto. Obviamente esto no es así siempre, hay grandes empresas con la capacidad de delegar en los propios equipos y ser auto-organizadas, se pueden ver casos como el de Spotify.
Esto no siempre es así, he observado en el pasado casos de empresas que se presentan a un proyecto con un grupo de personas que no han trabajado nunca juntas y que por la naturaleza del mismo deberían hacerlo durante meses e incluso años. En estos casos la colaboración no es todo lo buena que debiese, la experiencia de las personas a veces no es la requerida y en muchos casos termina en una experiencia negativa, tanto para los propios profesionales como para el cliente.
Es natural que una empresa no tenga en plantilla a todo el personal necesario para un proyecto porque la carga de trabajo varía a lo largo del tiempo. En este caso hay soluciones que se pueden adoptar y que permitirían que el equipo crezca poco a poco o incluso que no necesite crecer. Por ejemplo, cuando en mi anterior empresa trabajamos en el proyecto Vía-Móvil, necesitamos hacer uso de un diseñador, pero en vez de contratar uno a tiempo completo utilizamos a un freelance que permitió que el trámite fuese mucho más sencillo. Igualmente conozco a freelances o empresas que se dedican a crear las bases de un proyecto y dar formación a equipos que son los que finalmente continuarán con el mismo a la larga, esto permite crecer poco a poco y ganar experiencia al mismo tiempo.
Es natural que una empresa no tenga en plantilla a todo el personal necesario para un proyecto porque la carga de trabajo varía a lo largo del tiempo. En este caso hay soluciones que se pueden adoptar y que permitirían que el equipo crezca poco a poco o incluso que no necesite crecer. Por ejemplo, cuando en mi anterior empresa trabajamos en el proyecto Vía-Móvil, necesitamos hacer uso de un diseñador, pero en vez de contratar uno a tiempo completo utilizamos a un freelance que permitió que el trámite fuese mucho más sencillo. Igualmente conozco a freelances o empresas que se dedican a crear las bases de un proyecto y dar formación a equipos que son los que finalmente continuarán con el mismo a la larga, esto permite crecer poco a poco y ganar experiencia al mismo tiempo.
Los problemas crecen con el tamaño de la familia
Hay otro gran tipo de parejas, las que van estupendamente mientras son dos, pero se desmoronan cuando aparecen los niños. Nuevos problemas que crean nuevas crisis y que no siempre se pueden superar.
Si la empresa empieza a buscar proyectos más grandes no le queda más remedio que incrementar el tamaño del equipo o crear nuevos equipos. Y esto, simplemente, no es posible en todos los casos. Puede deberse a que el equipo crece muy rápido y no hay tiempo para adoptar a los nuevos miembros, enseñarles como funciona el equipo y, por así decirlo, entrenarles. O por otro lado, los nuevos miembros simplemente no encajan en la forma de trabajar. No es lo mismo montar un mueble con tu pareja que hacerlo mientras recibes la visita de tu cuñado y un pequeñajo corre por el salón y no deja de tocar las herramientas y jugar con los tornillos.
Siempre hay discusiones
Hay parejas que discuten todo el tiempo y aún así son increiblemente estables, mientras que hay otras que parecen muy felices y en realidad no hablan entre ellas.
A lo largo de mi "corta" vida laboral he tenido momentos de tensión en los que discutes con tus colegas por unas razones u otras. Para mi lo importante en estos casos es:
- Mantener el tono más calmado posible y cuidar mucho las palabras que se utilizan.
- Discutir sólo cuando el tema realmente te importa, si es algo a lo que no le doy valor, o mejor aún que no aporta valor al equipo, prefiero no meterme en una discusión.
- Si hay una discusión es que existe un problema. En este caso tratamos de buscar cual es realmente ese problema y encontramos una solución para el mismo.
A lo que voy es que las discusiones pueden ser sanas y ayudar a mejorar, siempre y cuando no se conviertan en la rutina habitual y aparezcan por cualquier razón sin sentido. Básicamente son una rutina normal, aunque no cotidiana, de la vida en equipo.
Años de experiencia juntos no implica calidad
Como suele decirse, "donde dije digo, digo Diego". Pese a todo lo que he dicho anteriormente, hay que tener cuidado en caer en el error de pensar que un grupo de personas que han trabajado juntas durante mucho tiempo implican calidad.
Durante todo el artículo he hablado de equipos y la calidad de su trabajo, no de grupos de personas que han trabajado juntas mucho tiempo. "Paradójicamente" hay personas que pueden convivir juntas muchísimo tiempo, pero no llegar a formar un equipo en la vida. Generalmente esto se puede notar en que cada uno atiende a sus cosas y no se mete para nada con lo que hace el otro, bien, pero no escala a proyectos más grandes que lo que puede abarcar individualmente cada uno de ellos.
Conclusiones
Formar una pareja, así como formar un equipo es algo que requiere mucho trabajo y esfuerzo, pero en mi experiencia los siguientes puntos son un buen principio.
- Es mejor empezar pequeño, no sólo en el tamaño de los proyectos sino en el tamaño del equipo. Es más fácil encajar a 3 personas que a 9.
- A la hora de crecer es mejor aguantar un tiempo más con proyectos más pequeños y tener tiempo para asimilar nuevos miembros en el equipo, que tirarnos a la piscina con mega-proyectos.
- Evitar discusiones que no aporten algún valor al equipo.
- Cuando a alguien se le ocurra una mejora es mejor introducirla al equipo antes para que haya algún consenso.
180 días después
Por más que lo pienso no tengo ni idea de como comenzar esta entrada, ni tan siquiera sé como escribirla ni organizarla. Es más, ahora mismo podría estar trabajando en una nueva funcionalidad de Runnics.com, pero debo parar y recapacitar sobre todo lo que hemos logrado, o no, en tan poco tiempo. ¿Qué cosas hemos hecho y cuáles hemos dejado de hacer?, ¿por qué cosas que queríamos hacer las hemos dejado de lado por otras que no sabíamos que íbamos a hacer?, porque estamos aprendiendo continuamente.
Tras mi primera semana en Otogami.com ya me hacía una idea de cual era la forma de trabajar y cual era nuestro objetivo, y aunque este último no ha cambiado, la forma de trabajar y la manera de intentar alcanzarlo lo ha hecho constantemente.
De Scrum a Kanban
El primer gran cambio que tuvo lugar desde mi llegada ha sido abandonar Scrum por una aproximación Kanban, pero ¿por qué?. Pues, porque tenemos muy pocos recursos y no tenemos la certeza de QUE es lo debemos construir, así de sencillo. Tenemos que corregir el timón todos los días y priorizar continuamente. Decir que lo que tenemos que construir es Otogami.com y Runnics.com es como decirle a un equipo de Formula 1 que lo que deben construir es un coche ganador, ya lo saben pero la forma de hacerlo no la conoce nadie.
Le acabo de regalar a @ydarias un tablero #Kanban configurado en JIRA para ser aún más “predecibles” y “visibles” :) pic.twitter.com/HyGJrBTv8H
— David Bonilla (@david_bonilla) April 3, 2014
No podemos sentarnos un lunes por la mañana y pensar en las X tareas para las próximas 2 semanas porque no sabemos cuales son, tan sólo tenemos una idea del roadmap a medio y largo plazo. No es que vayamos corriendo como pollo sin cabeza, pero sí que evaluamos día a día que cosas son las que aportan más valor y que nos pueden hacer crecer y precisamente en esas nos centramos. Si un día te debes sentar a crear un proceso automático para generar los ficheros de los robots de Google en vez del filtro de colores de zapatillas, se hace y punto.
A veces realizamos “pequeños” spikes que nos permiten evaluar posibles soluciones y productos, como la primera versión del portal de medios de Otogami.com. Una web a la que los dueños de un blog relacionado con videojuegos se pueden conectar para darse de alta y usar los widgets de Otogami.com, como pueden ser los listados de precios o un carrousel de precios. Una vez terminado el MVP y casi listo para sacar a producción decidimos aparcarlo durante un tiempo para trabajar al 100% en Runnics.com, porque era lo que decía el mercado, las ventas de videojuegos dejan muy poco margen y lo más productivo que podíamos hacer era poner toda la carne en el asador con un mercado con más márgenes. ¿Deberíamos haber gastado nuestros recursos en seguir con el Portal de Medios? Nuestras conclusiones hasta ahora dicen que no.
Roadmap sí, pero para cambiarlo
Cuando llegué teníamos un roadmap que planificaba que lo primero que sacaríamos sería Otogami.com 2.0 y su Portal de Medios, luego vendría una versión de Runnics.com y su propio de Portal de Medios y a partir de ahí evolucionaríamos ambos, llevándolos a Alemania, pero la realidad nos golpeo con fuerza y además de demostrarnos que todo requiere más tiempo del estimado, las prioridades cambian constantemente. Y lo que ocurrió es que en marzo estaba trabajando al 100% en Runnics.com, que hemos puesto en producción antes que Otogami.com 2.0, para Alemania sólo fuimos con una versión de Runnics.de y será ahora en el mes de agosto cuando salga Otogami.com 2.0 y su versión alemana. Hicimos esto porque era lo que la realidad y el mercado dictaban, y los datos nos han dado la razón, en el primer mes Runnics.com vendió, de lejos, más que Otogami.com y con menos tráfico.
Pero al roadmap no sólo le afecta lo que hacemos nosotros como equipo internamente. Tenemos carencias, como por ejemplo el diseño, y las debemos suplir mediante la subcontratación. Cuando se hace esto las fechas de entrega ya no están bajo nuestro control, por lo tanto debemos ajustarnos a nuestro proveedor y eso también hace que unas cosas se adelanten y otras se atrasen. También hay que tener en cuenta que cuando se trabaja con subcontratación el problema no reside en los plazos de entrega, que cuando son buenos profesionales los cumplen, sino en todos los cambios que se te ocurren como cliente y que retrasan la entrega. En este punto me gusta recordar que es mejor una buena web publicada que la web perfecta no publicada.
El SEO, ese gran desconocido
Diría que ahora conozco algunas herramientas que no conocía antes, pero no puedo decir que haya aprendido muchísimo en el aspecto técnico como desarrollador, y tampoco era lo que me habían prometido ni es el momento, donde sí lo he hecho es en la gestión de producto y en otro campo que siempre me había parecido muy etéreo, el SEO. Básicamente todas las técnica alrededor de posicionar mejor o peor ante Google, porque creednos, salir antes en los resultados de búsqueda de Google es muy importante.
Mientras avanzaba la versión 2.0 de Otogami.com, la que corregiría todos sus problemas con Google, construimos Runnics.com alrededor del SEO, desde las técnicas básicas de marcado en cada página, los listados, los rankings de precio hasta la información semántica y el contenido. Y a día de hoy seguimos sin salir en la primera página de resultados excepto si buscas “Runnics”, eso se debe a la primera gran lección, el trabajo en SEO es a largo plazo. Según nos han contado pueden pasar hasta tres meses hasta que Google tiene tu web completamente indexada.
La segunda lección que he concluido es que, expertos, lo que se llama generalmente experto, en SEO no deben existir. Hay gente que sabe mucho desde luego, al igual que hay otros tantos vende-humo que no saben nada, pero quitando cosas bien documentadas nadie sabe con certeza como afectan unas decisiones u otras al posicionamiento. En este caso nos basamos en las cosas que han dado buenos resultados a otros camaradas del metal y la experiencia previa, porque la mejor respuesta que nos han dado es “bueno, no parece descabellado” o “no veo porque no iba a funcionar”.
Por fin se publica Runnics
Uno de los mayores cambios en mi forma de trabajar respecto al sector servicios la viví en el paso a producción de un producto. En mi etapa anterior cuando el producto estaba terminado o teníamos una nueva versión debíamos mandarlo al cliente el cual se encargaba de su despliegue y control. Ni que decir que es un proceso bastante largo y en algunos casos tediosos.
Nada más lejos de la realidad, con Runnics.com nuestro CTO, Jero, ha currado para que los despliegues sean tan sencillos, que durante el fin de semana de la AOS2014 se llegaron a desplegar cambios más de 10 veces, incluso en dudoso estado de sobriedad. Que los canonical de la ficha de producto están mal, despliegue, que las rutas SEO están mal, despliegue, que hay un 404 o un 500, por supuesto que despliegue.
Es nuestro producto y nos gusta que funcione perfectamente, lo mimamos y nos gusta desplegar nuevas funcionalidades desde que están listas para que nuestros usuarios las pongan a prueba y puedan disfrutar de ellas. Desde luego eso hace que a veces no estén probadas en todos los entornos posibles o que la web no esté optimizada, pero es que también he descubierto que la mayoría de los usuarios no activa las herramientas de desarrollo para comprobar el tiempo de descarga de los recursos, por desgracia Google a veces sí :-)
Cambiarse el sombrero de desarrollador
Hasta ahora me había podido permitir ser desarrollador a tiempo completo, quizás a veces incluso diseñador, pero nada más porque los socios de mi anterior empresa se encargaban de resolver todos los problemas. Ahora al estar en una startup la cantidad de sombreros que debes usar al día se incrementa, no sólo debemos pensar como desarrollador sino que también tienes que pensar en la UX, en planificación, y por encima de todo en vender.
En @OtogamiCOM lo mismo hacemos un scraper que un remiendo :-) pic.twitter.com/TCFbDxdxrf— Yeray Darias (@ydarias) June 6, 2014
Y si hay algo que no había hecho nunca y que ahora me veo en “la obligación” de hacer, es llevar el sombrero de vendedor. No solo yo sino todo el equipo debe estar enfocado a vender, porque no vale con construir un buen producto, la gente lo debe conocer primero para querer usarlo.
All flyers are gone!!! @jerolba @ydarias @OtogamiCOM pic.twitter.com/tLdS1KdNKK
— Laura Lacarra (@LauraLacarra) June 28, 2014
Se puede vender de muchas maneras, ya sea técnicamente creando una herramienta que ayude a aumentar el número de usuarios como poniéndote la camiseta de Otogami.com y asistiendo a un evento. Pero cuando estas en una startup no basta con teclear como si no hubiese mañana y desplegar funcionalidades molonas, si no llegas al público es como si no hubieses hecho nada. Es este punto el que explica porque desde final del año pasado Otogami.com no ha recibido funcionalidades al mismo ritmo que antes, porque tenemos que usar tiempo en vender o construir herramientas que nos ayuden a vender, porque somos un negocio no lo olvidemos. No basta con hacer algo que nos guste y que guste a nuestros clientes, debemos ganar dinero con ello o tendremos que dejarlo.
Pero soy optimista :-)