Flujo para demostrar la viabilidad de un producto digital

Es importante validar antes de dar el siguiente paso

Mikesaurio
Nowports Tech and Product
5 min readOct 10, 2022

--

Flujo para demostrar viabilidad de producto digital

Trabajar dentro de equipos de tecnología implica encontrarse con muchas situaciones de incertidumbre y con momentos en los que es necesario aventurarse a probar una nueva biblioteca, herramienta, tecnología y hasta proveedor, siempre teniendo presente que los tiempos de desarrollo son relativamente cortos y que se debe agregar valor rápido.

Por esta razón, constantemente surge la pregunta: ¿cómo se puede validar que esos recursos son los que verdaderamente requiere el proyecto?

Pues bien, primero me gustaría poner este ejemplo: imagina que entras a una empresa a trabajar dentro del equipo de desarrollo y al solicitar tus accesos a las bases de datos te dicen que no tienen usuarios individuales y lo único que obtienes son las credenciales que todos usan.

En este caso, probablemente pienses que eso está mal y que se necesita un proceso diferente. Sin embargo, cuando una empresa apenas está surgiendo o tiene muy poco tiempo en el mercado, las prioridades por sobrevivir y generar valor rápido superan, en muchas ocasiones, a las de tener los más altos índices de calidad en lo que se hace.

Desafortunadamente, esto también sucede en el ámbito de seguridad. Por eso una vez que las compañías maduran en los aspectos tecnológicos, llega un momento donde se preguntan: ¿cómo pasar a un modelo más seguro de roles y permisos?, ¿cuál es el mejor flujo a seguir para esto? o ¿qué herramientas deben usarse para estandarizar los procesos?

Pues bien, ahora imagina que no solo entrarás al área de desarrollo sino que también formarás parte del equipo que gestionará la implementación de esta mejora. En el ejemplo pasado, lo primero que posiblemente pensaste fue en meterte a las bases de datos y empezar a crear roles y usuarios, pero… ¿qué pasará si te enfrentas a estos escenarios?:

  • Si existen muchas bases de datos, schemas o usuarios.
  • Si constantemente cambia la situación de los colaboradores (nuevos ingresos, rotación o ascensos).
  • Si es indispensable que la tarea se realice por varias personas y se pueda escalar.

Generar scripts bash que se ejecuten y sirvan para agregar lo que se necesite, justo en el momento en el que se requiera, puede ser una solución. Esto significa que debe existir un framework, por lo que llegando a este punto ahora la pregunta es: ¿existe algo que provea lo necesario?

Afortunadamente la respuesta es sí. Y, aunque herramientas como Ansible permiten automatizar muchos elementos de la infraestructura de las bases de datos (incluyendo roles y permisos) mediante tecnología robusta y flexible, la realidad es que siempre surgen dudas de este tipo:

  • ¿Qué tan eficiente es?
  • ¿Cómo puedo validar si es lo que se necesita ahora?
  • ¿Qué tan complicado o costoso puede ser implementarla?
  • ¿Es la mejor herramienta para esto o existen otras?
  • ¿Será mejor optar por un Active Directory?
  • ¿La soportará la base de datos?

Para no equivocarte en esta decisión, siempre es importante frenar un momento, evaluar en dónde estás parado y responder:

  • ¿Es el momento adecuado para incorporarla?
  • ¿Cuánto esfuerzo se necesita invertir para realizar algo así?
  • ¿A dónde quiero llegar?
  • ¿Esto cumple con lo que se necesita?

Y para que esto te sea sencillo, debes saber que existe un proceso de 3 etapas que puedes seguir al momento de que desees implementar algo nuevo. En cada una de las siguientes fases podrás agregar valor y validar, paso a paso, las decisiones tecnológicas que necesites tomar:

Etapas de validación en desarrollo de software

Para que lo comprendas mejor, ahora te explico en qué consiste cada una:

Spike

Es un tiempo que sirve para investigar una pregunta o buscar una solución a un problema.

Regresando al ejemplo sobre el manejo de roles y permisos de bases de datos de manera automatizada, te serviría para recopilar información y encontrar respuestas rápido antes de desarrollar un producto.

El tiempo que se destina para hacer esto puede variar mucho, ya que depende de qué tan bueno se sea investigando; se debe profundizar en temas esenciales como: complejidad de la implementación, calidad de la documentación, nivel de soporte, costos, frecuencia de uso, comparación con productos similares, entre otros.

Por otro lado, lo que se entrega al final de esta etapa es un documento que describe todo lo investigado y las conclusiones, mismas que deben estar listas para su validación.

Esto último es muy importante para saber si se está conforme con lo investigado o si se necesita tener otra iteración de investigación. De hecho, en algunas ocasiones, el Spike arroja más de una solución, por lo que la validación ayuda a tener un consenso para decidir con cuál continuar.

POC

Una vez validado el Spike, se pasa a la etapa de POC (prueba de concepto o Proof Of Concept). Aquí es donde se realizan pruebas de código de lo investigado (tomando en cuenta lo aprendido) y normalmente se hacen en el mismo lenguaje que pasará a desarrollo, siempre bajo un ambiente fácil de implementar como Colab, Jupyter Notebooks, etc.

En el ejemplo, iría desde el “Hello World” de Ansible, hasta la creación de roles y permisos para una base de datos en PostgreSQL, así como la asignación de usuarios de prueba.

Asimismo, es esencial considerar Sanity Checks (pruebas básicas para evaluar rápido si una afirmación o el resultado de algo puede ser cierto o si se debe continuar) dentro de los POCs, esto porque pueden volverse Tests muy fácil al pasar a la etapa de implementación, además de que pueden convertirse en temas de negocio que quizá se quieran considerar.

Al igual que con el Spike, no se debe avanzar sin pasar por el ciclo de validación y sin confirmar que la prueba cumpla con el requerimiento planteado. Sin embargo, para un caso extremo, puede darse marcha atrás y regresar a un nuevo Spike, pero es vital ser consciente de que entre más se avance en el flujo de estas etapas, más costoso es equivocarse.

Por esto mismo, es fundamental tener puntos de control de calidad e impedir el avance si no se tiene la seguridad de que se cumplió el objetivo de cada etapa.

Implementación

Una vez que se termine y valide el POC, es momento de pasar a la implementación. Aquí se toma en cuenta lo que cada equipo haya definido como su ciclo de desarrollo y se tiene la certeza de que lo que se va a implementar tiene todos los lineamientos esperados.

Esta tarea debe:

  • Ser rápida y de alta calidad.
  • Realizarse dentro de tiempos mucho más apegados a la realidad de los desarrolladores.
  • Documentar la solución implementada.

Las validaciones aseguran la calidad de tus proyectos

Como desarrolladores, solemos acostumbrarnos a pensar que es más rápido afrontar los problemas justo en el momento en el que se presenten, pero esto no necesariamente es así. Como expliqué, vale la pena tener ciclos de trabajo que eliminen la incertidumbre y permitan avanzar a paso firme hacia una solución.

Cada etapa que se aprovecha para avanzar y validar ayuda a alcanzar de mejor manera los objetivos y a crear productos de más valor y calidad.

¿Quieres leer más temas relacionados? 👉Visita el blog de Nowports Tech👈

--

--