Cloud & Serverless desde adentro

Hace tiempo que en Flux IT creemos que la velocidad en las soluciones técnicas puede ir completamente de la mano de la calidad y la adecuación. No solo estamos convencidos, sino que arrancamos por casa, en 30 días y full serverless.

Pablo Iaria
Flux IT Thoughts

--

En Flux IT tenemos un proceso de Feedback Colaborativo en el que el fluxer mismo es el dueño de su propio feedback, recibiendo devoluciones de su líder y de sus compañeros. A la vez, cada fluxer hace también una autoevaluación. Todas estas valoraciones se hacen con el fin de potenciar el desarrollo profesional.

Hasta hace poco, la gestión del proceso venía siendo bastante manual, utilizando Documentos de Google, un método que, con el crecimiento de la compañía, requería mucho esfuerzo para llevarse adelante. Así fue que comenzamos a pensar en que si tuviéramos una aplicación dedicada al Feedback Colaborativo, se agilizaría mucho todo el procedimiento.

En un primer momento, casi por inercia tecnológica, el impulso fue construirla haciendo uso de las tecnologías y herramientas que nos eran más familiares. Hicimos un intento utilizando NodeJS, Angular2 y MongoDB. Varios meses después, tras hacer testeos junto al área de Valor Humano, nos dimos cuenta de que habíamos construido una aplicación que, por diferentes motivos (no todos relacionados con la tecnología que habíamos escogido), no estaba lista para ser utilizada masivamente. Requería (todavía) de varios ajustes para poder completar el circuito básico de feedback.

Tomamos esa situación como un aprendizaje y decidimos cambiar la estrategia adoptando un enfoque minimalista (al estilo garage architecture). Desde la tecnología, nos apropiamos de conceptos como serverless y cloud, buscando utilizar mayormente funciones y recursos ya existentes.

Round Two

Nos propusimos crear la aplicación en un mes. Ni más ni menos: un mes. Una aplicación que permita recibir feedback del líder, de los compañeros y realizar la auto-valoración. Considerando el intento anterior como lección, determinamos implementar una solución lo más rápidamente posible, de manera simplificada.

Adoptamos el enfoque arquitectónico serverless, el cual establece la idea de utilizar al máximo los servicios que ya están construidos por terceras partes y disponibles en Internet. El desarrollo, entonces, fue afrontado por el área de Herramientas Internas, ya que creímos que la mejor forma de capitalizar ese conocimiento era probando primero en casa.

MVP (Minimum Viable Product)

Hoy, 30 días después de iniciado el reto, puedo decir que tenemos una aplicación de feedback funcional, que no solo cubre el alcance que nos habíamos planteado, sino que logró superar esa expectativas.

Para lograrlo, junto al equipo seguimos algunas prácticas de Scrum (sprints semanales, dailys y demos); y puedo decir que desde la primera demo tuvimos algo de valor que mostrar. A lo largo de los sprints hemos conseguido implementar las funcionalidades esperadas, sumando además la gestión de los acuerdos de objetivos entre el líder y el fluxer (que no estaba contemplada en el origen y en las demos con el Product Owner).

De la misma manera, pudimos incluir notificaciones web push, para que los fluxers se enteren cuando tienen alguna notificación sin la necesidad de tener la app abierta. Además la misma funciona tanto en browsers de escritorio como desde los celulares.

Mirando en retrospectiva, varios factores debieron darse para llegar a construir la aplicación en el tiempo estipulado:

  • Seteamos el factor tiempo, que fue una referencia constante para todas las decisiones que tomamos y que, además, nos hizo estar más enfocados.
  • El compromiso del Product Owner y del equipo de desarrollo fue determinante.
  • Cambiamos el enfoque del problema, abordándolo desde un punto de vista minimalista y concreto.
  • Adoptamos lineamientos serverless, en el sentido de utilizar lo más posible todo lo que ya estaba construido.

Stack

La aplicación fue construida con las siguientes tecnologías y servicios:

  • Firebase, para la persistencia de la información, la autenticación de los usuarios, funciones cloud y el hosting de la aplicación web.
  • OneSignal, para las web push notifications (aún no soportado por iOS).
  • VueJS, como framework web; y VueMaterial, para el Material Design de la aplicación.
  • PWA, para que desde dispositivos móviles se puedan recibir web push notifications y se parezca a la interacción de una aplicación nativa.

A fin de cuentas

Fue un mes muy intenso, tanto por el trabajo de desarrollo como (sobre todo) por el entusiasmo que nos generó la dinámica de trabajo y el aprendizaje del enfoque tecnológico. Afortunadamente, ambos se dieron en un contexto en el que es válido equivocarse, para aprender y superarse constantemente.

--

--