Prototipado

Prototipado: construyendo mejores aplicaciones.

Hace un tiempo que descubrí el prototipado como una nueva forma de documentar nuevas funcionalidades en un proyecto. No es un concepto nuevo para los desarrolladores pero es un nuevo paso en el flujo de trabajo para desarrollar aplicaciones.

Todo el mundo conoce la importancia de los usuarios en el proceso de desarrollo de nuestras aplicaciones. Son una de las fuentes para conocer si estamos construyendo una buena solución o vamos en el camino equivocado.

Otro pilar fundamental es el departamento de I+D. Normalmente, ellos no son gente con conocimientos técnicos y necesitan un punto intermedio para discutir cada detalle. Hasta ahora, contamos con algunas técnicas y procedimientos que nos permiten encontrar este punto: BDD, designs y herramientas de desarrollo rápido.

Y finalmente, el tercer factor que influye en el producto es el equipo de desarrollo. Aquí me encuentro yo. Necesitamos conocer los puntos críticos que nos encontraremos y es nuestra responsabilidad dar una estimación, al menos intentarlo :). Por ello, la información acerca de la nueva funcionalidad necesita ser lo más exacta posible para reducir el margen de error.

*   *   *

El prototipado es ese punto intermedio. Necesitaos construir algo lo suficientemente cercano al diseño que ha sido validado y al resultado final, al mismo tiempo. Y necesitamos  que todo se pueda cambiar rápidamente y con la menor cantidad de recursos posibles. La solución necesita ser práctica también porque se la enviaremos a un grupo reducido de clientes para explorar cómo la van a usar y obtener un valioso feedback de ellos.

En resumen, nuestro prototipo necesita ser:

  • Práctico
  • Representativo
  • Dinámico

¿Cómo lo haremos? La respuesta es: FrontEnd. Si piensas cómo es el proceso de fabricar un coche, el primer paso es el motor, la transmisión, las ruedas…Después el chasis y finalmente las cosas para conducir y demás. ¿Y si lo hiciéramos al revés? Crearíamos en primer lugar el chasis y todo lo que el cliente necesita para hacer un uso real de nuestro coche. Podemos validar la experiencia del usuario con el diseño y nosotros (el equipo de desarrollo) conoceríamos  muchos detalles como el espacio para el motor, la distancia con respecto al suelo, la aerodinámica y más detalles críticos y prácticos para nosotros. Éste es el concepto de prototipado.

*   *   * 

Las claves para crear buenos prototipos son encontrar exactamente el punto intermedio entre el diseño y producción. Por esta razón, necesitamos centrarnos solo en la interfaz con el usuario usando la tecnología que usaremos en la interfaz pero con datos de prueba.

Un ejemplo. En mi empresa (KitmanLabs), estamos usando ReactJS y Highcharts para crear gráficas geniales. Nuestro Backend es Ruby on Rails pero eso no es importante para el prototipo. Tenemos un proyecto publicado específicamente para nuestros prototipos usando datos de prueba para simular casos reales. Como un entorno de pre-producción (staging), podemos acceder a la plataforma de prototipos para visitar a nuestros clientes y discutir con ellos las nuevas funcionalidades y descubrir si serán útiles e importantes para ellos.  El prototipo sigue los diseños aprobados y usa ReactJS y Highcharts. Podemos modificar cualquier cosa rápidamente porque la parte más compleja es cómo procesamos los datos antes de mostrarlos en la interfaz. Después de ajustar el prototipo con el feedback de los cliente, recibir la validación de los departamentos de diseño y producto, sólo tenemos que crear el proceso de backend usando el mismo código que en el prototipo en la interfaz final, porque solventamos cualquier problema que apareció al representar el diseño aprobado. Ese el punto intermedio.

Espero que este artículo te sea útil, si quieres hablar mas sobre prototipado, déjame un comentario o envíame un email. Quiero saber tu opinión y experiencias.

Por cierto, estamos contratando :)

English version