intive Argentina Blog

Cómo hacer Pruebas de Concepto y cómo hacer una Bomba

Cuando estaba en la universidad, un profesor siempre me usaba para probar tecnologías sobre las que leía en algún artículo. Por supuesto, en nuestra profesión siempre estamos sujetos a que aparezcan nuevas herramientas que nos facilitan (y nos dificultan) nuestras tareas. A veces los pedidos surgen por nuestra inquietud y en otros casos vienen del lado del cliente, ya que este considera que el cambio puede ser beneficioso para el proyecto en que estemos trabajando. Tenemos que tener en cuenta que, con cada tecnología emergente, como Terraform, React, Angular o Kubernetes, siempre aparecen desarrolladores que consideran que pueden facilitarnos las cosas o, inclusive que las usan para crear soluciones a problemas que no fueron contemplados al principio.

Así que es normal que, cuando buscamos soluciones a problemáticas, nos encontremos con otra persona que ya haya implementado una nueva librería o framework que puede ser beneficioso; pero esto conlleva a aprender otra herramienta que nos pone en jaque, porque implica tomar decisiones para ver si es factible o no incluirla en nuestras implementaciones. Con todo esto en mente, la siguiente es una pequeña introducción a la tarea de crear pruebas de concepto y cómo no morir en el intento (o sufrir menos).

Las pruebas de concepto o PoC

Las pruebas de concepto o, como las llamaremos de acá en adelante, PoC (Proof of Concept) tienen dos resultados posibles: Sí o No. Veamos:

  • Si el resultado es Sí –> contestamos “SÍ, en caso de”
  • Si el resultado es No –> contestamos con “NO, porque”

Pero para lo anterior necesitamos definir un objetivo. El mayor problema de una PoC surge cuando no tenemos definidos un objetivo y un tiempo.

Al enfrentar una tecnología o herramienta nueva nos encontramos con un montón de incertidumbres, las cuales vienen de la pregunta: ¿Nos va a ser útil esto? Pero, en muchos casos solo tenemos premisas de las herramientas como las siguientes:

  • Nos facilita la implementación de Kubernetes en producción.
  • Ayuda con el manejo de paquetes de JavaScript.

Aparte, muchas veces tenemos el conocimiento de la problemática ya que nos hemos enfrentado a la misma y, al mismo tiempo no entendemos o comprendemos como puede ser más fácil. Entonces entramos en un proceso de conformidad, hasta que alguien o algo nos haga ver una luz y, es ahí donde nos surge la curiosidad de implementar una solución nueva a una problemática.

Así que necesitamos entender la problemática que queremos resolver y cuantificar cuánto cuesta para el negocio (tiempo, dinero, esfuerzo). De esa manera, lograremos definir un objetivo. En caso de no definir un objetivo contundente nunca sabremos si la PoC fue exitosa o no, o si llegamos a donde necesitamos llegar. Por eso, desde un principio definir un objetivo claro nos permite saber si resolvimos la problemática o no con algo nuevo.

En caso de no definir una fecha, la PoC puede continuar por mucho tiempo hasta llegar al objetivo. El momento de considerar cuánto tiempo nos puede llevar implementar y conocer lo nuevo se vuelve una incertidumbre y, al mismo tiempo no nos permite definir resultados claros.

Cómo crear una PoC eficiente

Ahora que sabemos que objetivo y tiempo son dos variables, clave, veamos los dos escenarios de los que puede surgir una PoC.

Tengo una problemática que impacta en mi negocio y no sé cómo solucionarlo. Esto “nuevo” nos puede ayudar a resolver tareas que nos quitan tiempo.

1er Escenario

En el primer caso necesitamos hacer un esfuerzo extra y trabajar en el estado del arte, del cómo otras empresas están resolviendo la problemática y con qué herramientas implementan las soluciones.

2do Escenario

En el segundo caso nos guiamos por las promesas de la herramienta y no tomamos en cuenta el mercado como un factor determinante.

Ahora, ante todas las consideraciones anteriores los pasos para hacer una PoC que sea beneficiosa serían los siguientes:

Definir objetivos generales

Entendemos la problemática, y definimos qué queremos resolver.  Esto nos permite saber hasta dónde debemos llegar con la PoC.

Definir las herramientas, librerías y frameworks a probar

Después de analizar las nuevas herramientas o la nueva herramienta, planteamos el estado del arte, y resolvemos preguntas como:

  • ¿Esto tiene soporte?
  • ¿La comunidad es activa?
  • ¿Cuándo fue su última actualización y cada cuánto lo hace?
  • ¿Otras empresas la utilizan?
  • ¿Tiene documentación contundente que nos facilite resolver cualquier problema en su implementación?

Definimos un plazo, objetivos específicos y planificamos

En esta etapa intentamos asociar las pruebas a preguntas como:

“Yo necesito que esto pueda hacer esto, así que ¿cómo lo puedo resolver?”

Es así de abstracto, pero funciona. Así logramos tener los objetivos específicos y resolver las incertidumbres que vienen desde el planteamiento. Además, definir fechas nos permite entender el esfuerzo que vamos a necesitar y la curva de aprendizaje que otros van a tener.

Es normal que aparezca alguno de estos dos objetivos específicos que se tengan que definir:

¿Cómo se debe instalar?

¿Cómo se puede configurar?

La importancia de las PoC

Si en la anterior etapa no logramos resolver algunos de los objetivos específicos y el objetivo general, eso está bien, es parte de la PoC. El saber si se puede o no y, al mismo tiempo, entender el porqué, nos ayuda a tener una idea de la factibilidad. En este punto muchas incertidumbres ya se resolvieron, y al menos sabemos si vale la pena el esfuerzo o no.

Si logramos completar todos los objetivos específicos y el general debemos crear una respuesta basada en evidencia. Por eso debemos tomar en cuenta el esfuerzo que toma la implementación, el costo de cambiar y al menos un borrador de un plan de cómo hacer la implementación. Como cuando planificamos un producto, debemos saber qué conocimientos necesitamos tener, de cuáles podemos disponer y cuáles serían beneficiosos tener para darle mantenimiento a la implementación.

En todo caso las PoC siempre me ayudan a crecer, ya que nos permite salir un poco afuera de nuestra zona de confort y amplían nuestros conocimientos de las tecnologías que otras empresas están utilizando. Así que me pregunto, ustedes, ¿en sus proyectos le dan importancia a los PoC?

Post Data: Cómo hacer una Bomba

Una mano en la cabeza

Un movimiento sexy

y aquí se viene Azul, Azul, con este baile que es una bomba

Rodolfo Cordero

Rodolfo Cordero es desarrollador en la compañía desde junio de 2016. Es Licenciado en Desarrollo de Software, graduado de la Universidad Latina de Costa Rica, país del cual es oriundo. Asiduo lector y melómano, hizo cursos de coctelería y barismo, habilidades con las que deleita al staff de intive en los afters organizados por la compañía.

Deja un comentario