Devops para Startups


¡Necesitamos Hacer Software! Muchos emprendimientos Fintech (sino todos) necesitan en alguna medida desarrollar su propio Software. Para muchos de ellos ese software que desarrollan es un factor gravitante de su éxito pues será el principal canal de interacción con sus clientes y/o ese software va a implementar procesos centrales de su modelo de negocio. Sea cualquiera de estas 2 razones (y muy comúnmente ambas) es evidente que muchas Startups Fintech necesitan desarrollar Software y ese Software es de tremenda importancia para su proyecto.

Pero, cómo vamos a hacer ese Software? Generalmente esa pregunta termina contestandose  en Términos técnicos muy específico como por ejemplo el lenguaje que vamos a usar o la Nube en la que lo vamos a hostear todo. O bien, deriva a qué metodología vamos a usar en el equipo de trabajo. 

Poco se discute sobre cómo vamos a administrar u operar este Software. Es aquí donde las Startups competitivas simplemente no pueden darse el lujo de cometer un error. Como voy a administrar mi código fuente? Como voy a probar cada cambio? Como voy a pasar un cambio a producción?

Luego, la respuesta a todas esas preguntas sigue siendo válida para un equipo de desarrollo 5 veces más grande? La respuesta a esas preguntas permite al negocio experimentar y avanzar rápido?

La solución a este problema yace en poner en marcha desde las etapas más tempranas del proyecto un DevOps moderno y adecuado. DevOps es el conjunto de herramientas tecnológicas, frameworks de trabajo y acuerdos entre personas que en su conjunto construyen la administración del software desde que es escrito hasta que termina ejecutándose en producción.

Un DevOps moderno permite a un desarrollador:

  • Maximizar el tiempo que ocupa propiamente tal desarrollando gracias a disminuir casi a cero el tiempo que emplea administrando, probando y deployando su código fuente, pues la administración y liberación descansa en procesos automatizados.
  • Reducir el desenfoque y frustración que produce lidiar con la infraestructura donde el software ejecuta. Pues un DevOps moderno va a poner el software a ejecutar en el lugar correcto sin necesidad de que el desarrollador tome esa decisión o ejecute la acción propiamente tal.
  • Escalar el capacity de un equipo. No tener un devops adecuado pone inmediatamente un techo al capacity de un equipo. El ratio entre la productividad de un equipo y su cantidad de integrantes comienza a bajar abruptamente cuando el equipo alcanza una cantidad de personas para la cual simplemente el proceso de administración y liberacion de codigo ya no es sostenible.

Para el negocio, un Devops moderno permite:

  • Un time-to-market muy competitivo. Es muy común que codificar un cambio tome a un desarrollador 2 horas. Pero el trabajo administrativo y operativo de ponerlo en producción tomé otras 4 horas. Un Devops moderno permite llevar a cero el tiempo necesario para promover cambios a producción.
  • Ser eficientes en la administración de recursos. El recurso más valioso de una startup es el tiempo de las personas que la componen. Una de sus decisiones tempranas más importantes es en que trabajará su equipo de desarrollo en el próximo Sprint. Un Devops moderno permite que ese valioso tiempo sea empleado en desarrollar UX/UI para sus clientes, en lugar de gastarlo en el overhead administrativo que promover un cambio a producción habitualmente conlleva.

En Global66 valoramos profundamente el tiempo de nuestro equipo de desarrollo de software y somos firmes creyentes de que ese tiempo debe ser invertido en nuestros clientes y en labores que agreguen valor de manera directa a ellos.

Nuestro Devops parte en el repositorio de código fuente. Un desarrollador descarga una copia del branch maestro que es bautizada con el ID de la historia de usuario. Una vez que ese cambio pasa por aseguramiento de calidad, un simple push de código al repositorio de Release produce que comience la magia! Ese push gatilla un Devops que con cero intervención humana y en menos de 2 minutos:

  1. hace los merge de código fuente
  2. compila el código fuente y genera los ejecutable
  3. Deploya los ejecutables Dockerizados en los ambientes de producción
  4. Refresca todos los cache y sesiones
  5. Refresca el branch maestro a su nueva versión.
  6. Finalmente un bot nos avisa por Slack cuando está todo listo 😀

Tener un proceso de devops moderno nos permite comprometer al negocio y a nuestros clientes times-to-market de horas e incluso minutos. El negocio confía en que podemos codificar, probar, promover y evaluar extremadamente rápido. Eso nos permite tomar decisiones y experimentar con cambios a velocidad muy altas y así evolucionar el producto y traer mejores soluciones para nuestros clientes lo antes posible.

Leave a Reply