A finales del 2016, junto con dos grandes profesionales y amigos, fundamos Envíame, la plataforma y API multicourier que ayuda al e-Commerce a gestionar sus envíos.
Cada uno de nosotros asumió el rol fundamental más cercano a su experiencia o área de estudio. Lo mío siempre fue el desarrollo y operación de servicios de tecnología, así como el desarrollo de software. Así que sin mucha reflexión, me puse el sobrenombre de CTO de Envíame.
No deja de ser gracioso -y pretencioso- el título de CTO en una StartUp de 5 personas, donde únicamente existían tres personas dedicadas al desarrollo de software, me cuento entre una de ellas. En un contexto como ese, para el equipo DEV, CTO significaba un desarrollador más.
Nuestro micro equipo DEV fue laboratorio para explorar diferentes enfoques respecto del desarrollo de software escalable, además de constatar cómo las dinámicas de comunicación y colaboración definen la arquitectura de un sistema.
En nuestra etapa de MVP operamos como un equipo “fuertemente acoplado” con una única fuente y organización de requerimientos. Fiel a la proposición de la “Ley de Conway”, que señala que la estructura de un sistema de software será congruente con las estructuras sociales que produce el sistema, el resultado que emergió de nuestro trabajo fue un sistema monolítico.
Mientras continuamos desarrollando y perfeccionando nuestro servicio, el mercado del comercio electrónico continuaba creciendo fuertemente. La solución de software que construimos se convertía en un eslabón clave para resolver una serie de problemas activos en la relación entre el e-Commerce y los proveedores de servicios de distribución, por lo que el crecimiento en la base de clientes y transacciones de la plataforma se multiplicó varias veces año tras año. Poniendo a prueba constantemente nuestras habilidades para rediseñar la arquitectura, para implementar tecnología nueva y para mantenernos en una constante reingeniería de software. Así fue como fuimos transitando desde una arquitectura de monolito hacia la construcción de microservicios desacoplados y una arquitectura dirigida por eventos.
Uno de los desafíos más emocionantes de desarrollar software para este mercado es, sin duda alguna, exponer los sistemas que construimos a momentos de alta demanda, como los CyberDay. Es el momento en que los DEV nos ponemos al frente y demostramos que construimos software de calidad.
Siendo un equipo de tres, vivimos varios momentos de peaks de demanda, y al mirar cómo aumentaba abruptamente la exigencia sobre nuestros servicios, era inevitable sentir un nudo en el estómago. En ese momento resultaban irresistibles comentarios como “Hold the door!”, haciendo referencia a la famosa escena de Game Of Thrones.
Así transcurrieron un par de años en que me dediqué completamente a escribir código.
Desarrollar software es una de las actividades que más me apasiona, y escribir código me transporta a una dimensión de inmersión analítica, reflexiva y creativa de total desconexión con el entorno físico: Lo que algunos llaman entrar en “La zona”, ese estado mental de total implicación y foco en la tarea que se ejecuta y el éxito de la misma. En un momento como ese mi mejor compañero de viaje es esa playlist de música que le da ritmo a cada pulsación del teclado y los auriculares que me mantienen atrapado y aislado de cualquier estímulo del “mundo real”.
Al escribir código buscando resolver un problema, detectar un bug, optimizar algún proceso o probar alguna tecnología nueva, me desafío a superar un límite, a dar el extra por llegar a la meta, a no desesperar frente a los obstáculos y poner foco en el objetivo, a perfeccionarme en la marcha, a intentar mirar el futuro y anticiparme, a escribir un mapa y notas sobre el que se pueda volver a recorrer el mismo camino y perfeccionar el texto escrito.
Hoy nuestro equipo de DEV continúa creciendo, con varios equipos de desarrollo, incorporando más personas constantemente. Inevitablemente, me he alejado progresivamente del desarrollo de software para poner el foco en la organización de equipos. Hoy el sobrenombre de CTO tiene un poco más de sentido.
Intentar desempeñar varios roles ha impactado necesariamente a la dedicación de mi tiempo al desarrollo de software, convirtiéndome en un impedimento para que el sistema mantenga e incremente el ritmo de evolución. Un momento decisivo e ilustrativo de lo anterior ocurrió cuando uno de mis compañeros DEV originales, durante una reunión de feedback me observó: “Te percibo bien en tu rol de líder, no así en tu rol Dev, principalmente porque estás menos disponible cada vez”.
Colgar los guantes del desarrollo ha sido un proceso intenso pero necesario para llevar a Envíame al siguiente nivel.
Toda renuncia conlleva un duelo, pero la otra cara de la moneda se ha pagado con creces. Construir un gran equipo, con una gran cultura y que continúe desarrollando un servicio de excelencia es un desafío enorme y tremendamente motivante.