Product Crafter Emilio Carrión

Código de prototipado vs productivo

Qué es el código de prototipado y cuándo y dónde usarlo.

Cuando desarrollas producto una de las cosas más importantes a tener en cuenta es el time-to-market. No solo por las oportunidades de mercado que puedes perder al atrasar el lanzamiento de tu producto, sino por las oportunidades de aprender que ofrece tener tu producto funcionando cara al publico.

Como ingenieros de producto, tenemos que tener esto muy en cuenta a la hora de desarrollar software. Debemos desarrollar de una manera que nos permita lanzar rápido, validar rápido y (sobretodo) desechar rápido. Uno de los mantras que más me gusta repetir es que el mejor código que hay es el que no se escribe.

Entonces, cuando estamos validando una idea, tardar lo menos posible para empezar a probar los nuevos cambios con nuestros usuarios es esencial. Al fin y al cabo, no sabemos si esa nueva funcionalidad va a salir adelante.

Prototipar es la forma de conseguir no malgastar tiempo y recursos en algo que no se ha validado o en algo de lo que tenemos que aprender.

Los prototipos puede que nos suenen a algo que solo hace diseño, pero la verdad es que hay muchos beneficios en que todo el mundo prototipe. El poner un prototipo sobre la mesa hace que todos podamos hablar sobre la misma cosa1.

Aquí es donde entra el concepto de código de prototipado. Este es el código que escribes rápido para sacar una funcionalidad al mercado (genial para poner en verde un test dentro de un ciclo de TDD). No tiene porqué seguir todos nuestros consensos, no tiene que ser perfecto ni estar súper optimizado. Nos permite tener algo para poder empezar a validar sin importarnos tanto el largo plazo.

Qué es el código de prototipado

El código de prototipado es, en esencia, una versión rápida y “sucia” de una idea de producto. Su objetivo principal es poner en práctica una idea de manera ágil para evaluar su viabilidad y utilidad. Por lo tanto el código de prototipado es:

Rápido

Una de sus principales ventajas es su capacidad para permitirnos validar ideas rápidamente. En lugar de invertir semanas en el desarrollo de una funcionalidad completa, podemos crear un prototipo funcional en cuestión de días o incluso horas. Esto nos permite verificar si la idea resuelve el problema que pretendemos abordar.

Publicable

Al crear un prototipo, podemos mostrarlo a compañeros, usuarios o partes interesadas de manera temprana. Esto nos ofrece la oportunidad de recopilar feedback valioso antes de invertir recursos significativos en el desarrollo de la idea. Los comentarios iniciales pueden ayudarnos a refinar la dirección del desarrollo y evitar posibles errores costosos.

Sucio

El código de prototipado muchas veces no se ajusta a todas las mejores prácticas de desarrollo y no está diseñado para ser una solución duradera. Esto puede parecer un enfoque “poco ortodoxo”, pero en realidad, es una estrategia inteligente. Al evitar la sobreingeniería en esta etapa, ahorramos tiempo y recursos que podemos destinar a la implementación final una vez que hayamos validado la idea.

Qué no es el código de prototipado

Una vez visto que entendemos por código de prototipado hay que hacer algunas aclaraciones sobre qué no es:

Una excusa para hacer las cosas mal

El prototipar para poder validar algo no es una excusa para hacer las cosas de mala manera. Rapidez no significa hacer una chapuza. El código de prototipado debería seguir estando testeado, debería ser seguro y lo suficientemente eficiente para ser desplegado a tu base de usuarios.

Por otro lado, el código de prototipado sirve también para despejar dudas sobre la implementación de nuevas funcionalidades, hace ese trabajo de “descubrir” como queremos implementar las cosas. Pero eso ocurre si hay incertidumbre, todo aquello en lo que estemos seguros ya (por ser algo básico o algo a lo que hemos llegado a un consenso) deberíamos aplicarlo desde el principio, siempre y cuando el tiempo requerido no afecte al tiempo de sacar la nueva funcionalidad.

Algo permanente

Puede que sea obvio decirlo, pero el código de prototipado debería vivir el menor tiempo posible. Su vida útil debe ser la justa para lo que ha sido concebido: validar una idea o nueva funcionalidad. Si esta nueva idea ya ha sido validada es hora que este código promocione a algo más para el largo plazo: el código productivo.

Importante recalcar que aquí es donde la mayoría de equipos cometen el fallo. No comprometiendonos a eliminar el código de prototipado una vez validado estamos generando deuda técnica y dejando una sección de nuestra base de código difícil de mantener a largo plazo.

Qué es el código productivo

El código productivo es la evolución del código de prototipado. Una vez que hemos validado nuestra idea y hemos recopilado feedback valioso, es hora de convertirla en una solución estable y duradera. Por lo tanto, el código productivo:

Cumple estándares y consensos

Sigue las mejores prácticas de desarrollo. Se ajusta a los estándares de calidad, seguridad y rendimiento. Esto garantiza que el producto final sea sólido, escalable y fácil de mantener a largo plazo.

Es estable y escalable

La estabilidad y el rendimiento son cruciales en el código productivo. Debe ser capaz de manejar una carga de trabajo significativa sin errores o interrupciones. Esto asegura una experiencia de usuario consistente y confiable.

Es mantenible y extensible

El código productivo está diseñado para perdurar. Es flexible ante actualizaciones, correcciones de errores y nuevas funcionalidades. Además, es más fácil para los desarrolladores posteriores comprender y modificar el código de manera segura.

Código de prototipado vs código productivo

El código de prototipado y el código productivo son dos fases cruciales en el proceso de desarrollo de producto. El código de prototipado se enfoca en la velocidad, la validación y la recopilación de feedback. Es una herramienta valiosa para probar ideas rápidamente y evitar la inversión de recursos en soluciones no validadas.

El código productivo, por otro lado, se centra en la estabilidad y la durabilidad. Se basa en el aprendizaje y el feedback obtenidos del código de prototipado para crear una solución final sólida y mantenible.

La combinación adecuada de ambas fases es esencial. Al implementar código de prototipado, podemos acelerar la validación de ideas y reducir los riesgos, mientras que el código productivo garantiza que las soluciones sean robustas y eficientes a largo plazo. Esta estrategia nos permite innovar de manera más efectiva y satisfacer las necesidades cambiantes de nuestros usuarios.