← Volver

Green Kiwi Games

La creación de Green Kiwi Games como producto mínimo viable: un proyecto personal para validar una idea, aprender el stack MEAN y construir de forma iterativa.

EmprendimientoLean Startup

Green Kiwi Games
Green Kiwi Games ©

Green Kiwi Games es un proyecto en el que he ido trabajando muy poco a poco en los últimos meses y que constituye lo que se llama un producto mínimo viable (MVP), esto es, un producto o proyecto que muestra la esencia de algo y que se expone para validar su propuesta de valor (o sea, si a la gente le resulta útil o no).

Si hay algo que he aprendido en los últimos diez años, y no exagero, es que tu día a día como profesional termina reduciendo tus habilidades a un conjunto de tecnologías, las que usas lógicamente en la compañía para la que trabajas. Y esto no es bueno, más aún cuando el cambio en nuestra profesión es vertiginoso. No obstante, en tecnología en general y en software en particular, las posibilidades son tremendas y la cantidad de tecnologías consolidadas y stacks maduros que existen te obligan a tener que estar al día si en unos años no quieres estar más obsoleto que el T-800 de Terminator.

Pues bien, Green Kiwi Games ha sido para mí la forma de profundizar en el stack MySQL + Express + AngularJS + Node.js (lo que se suele llamar MEAN, pero en esta ocasión sin MongoDB…).

Ya he hablado en alguna ocasión brevemente sobre cómo enfocar proyectos de emprendimiento desde el punto de vista del software, campo en el que he tenido mis éxitos, pero también mis fracasos. Es un tema muy amplio y, lamentablemente, muchos proyectos fallan no por falta de una idea que pueda funcionar, sino por la ejecución del propio proyecto y la falta de disciplina para llevarlo a cabo en el tiempo. Buena ejecución, tenacidad y disciplina en el trabajo: ésta es la receta, en mi opinión.

En cualquier caso, todo parte de una idea que termina siendo lo que nos anima a seguir adelante porque, de algún modo, creemos en ella. Ahora bien, ¿cómo saber si los demás también la ven útil? Desde luego, no es contándola, sino creando algo que lo muestre, algo que se pueda tocar y evaluar. De ahí lo del producto mínimo.

Pero ¿cómo surgió la idea y qué es Green Kiwi Games? Hace un tiempo me encontré con ciertas personas que hacían por su cuenta juegos de cartas, pero con un esfuerzo tremendo al no dominar ninguna herramienta informática y hacerlo todo de forma totalmente manual. ¿Por qué no habilitar una web en la que el usuario subiera las imágenes y la aplicación web se encargara de generar un PDF con las cartas listo para imprimir? Sencillo, nada del otro mundo. Una idea, para ser buena, se tiene que poder explicar con muy pocas palabras. La innovación no trata de generar productos cercanos a la ciencia ficción; también se puede innovar en cosas sencillas y banales. Es más, la mayor parte de la innovación pertenece a este último grupo. Tendemos a mitificar la innovación.

Eso es Green Kiwi Games: un sencillo portal que permite a un usuario crear juegos de cartas de manera muy fácil, casi a golpe de clic. En un mundo en el que va dominando el do-it-yourself, descubrí auténticas comunidades dedicadas a hacer juegos de cartas personales y distribuirlos fuera de los canales comerciales habituales.

Sin embargo, no hay dos sin tres, de modo que aproveché este miniproyecto para meterme de lleno en tecnologías que me apasionan. Así que puedo decir que he pasado por todos los elementos que debe dominar un full-stack developer y que describo a continuación.

Muy brevemente, resumo todas las piezas que he ido utilizando, al menos las más relevantes:

  • Por supuesto, Node.js. He sufrido por el camino el cambio producido con la integración, por fin, de io.js y la creación de la Node.js Foundation, magnífica noticia para quienes amamos este entorno.
  • Express para construir la infraestructura de la web, con infinidad de módulos relacionados y bien integrados.
  • AngularJS para el front-end.
  • Muchísimas pruebas unitarias con Mocha para ejecutarlas y Chai como librería de aserciones.
  • Lodash, que me ha salvado la vida para construir código más legible. Impresionante el trabajo de la gente de esta librería.
  • FabricJS, tanto en el front-end como en el back-end, para construir las cartas.
  • ImageMagick para el tratamiento de imágenes.
  • Redis para mantener las sesiones de usuario y almacenar información útil y relevante, sin abusar de la base de datos.
  • Amazon S3 para almacenar grandes cantidades de imágenes y los PDF finales.
  • wkhtmltopdf para construir los PDF con las cartas.
  • Grunt como gestor de tareas para la construcción del proyecto de cara a su despliegue.
  • Despliegue en DigitalOcean con nginx y un certificado adquirido en Namecheap.
  • Y muchísimos más paquetes y librerías.

Del mismo modo, este proyecto me ha permitido adentrarme en todo lo relacionado con el rendimiento y la seguridad web, un tema fascinante que muchos desarrolladores de aplicaciones web dejan muy de lado y que tiene un enorme campo comercial por delante: optimización de todos los recursos del proyecto, carga retrasada de imágenes sólo si se muestran en el navegador, minificación de ficheros, optimizaciones en JavaScript, reducción del número de solicitudes, seguridad frente a los ataques más comunes, etc. Este tema me gusta muchísimo y, de hecho, estoy escribiendo unos cuadernos prácticos de cara a su publicación en 2016.

¿Y ahora qué? Realmente, es después de crear el producto mínimo viable cuando se abren todas las posibilidades: el MVP es un primer paso con el que validas cualquier idea; después hay que recibir todo el feedback posible para mejorarla, pivotar sobre algunos conceptos o bien tirar la idea a la basura y pasar a otra cosa. Es así, aunque lo bueno es que podemos probar ideas con una metodología, sin reinventar continuamente la rueda y sin dedicarles demasiado esfuerzo.

Mi interés fundamental con Green Kiwi Games es ayudar a esa comunidad de creadores de juegos de cartas a realizarlos y fomentar esa actividad. También quiero conocer desde dentro la construcción de un proyecto real con esas tecnologías y no quedarme en sencillos artículos que te muestran sólo la punta del iceberg. Sobre todo, quiero conocer de primera mano cómo se debe construir un proyecto de esta naturaleza para su futura escalabilidad, en caso de tener miles de usuarios.

Si quieres conocer una tecnología, la mejor forma es construir un proyecto real con ella.

Para la idea esencial me he centrado en lo que he considerado importante; no obstante, los próximos pasos serán:

  • Hacer la web adaptable. Ya sé que existe el enfoque mobile-first, pero para avanzar hacia el MVP lo descarté en un principio.
  • Añadir características muy poco a poco según el feedback recibido. Me gusta el enfoque de AccuRadio: si usas a menudo su servicio para escuchar las maravillosas compilaciones de música que hacen, te darás cuenta de que poco a poco van agregando pequeños detalles y mejoras, muy sutilmente.
  • Si el proyecto despega, lógicamente habrá que prepararlo para su explotación comercial con un modelo de negocio que lo haga sostenible, para lo que contaré sin duda con la empresa para la que trabajo. Hay gurús que opinan que el proyecto debería generar ingresos desde un primer momento, aunque éste es un proyecto personal con el que sencillamente me relajo trabajando en cosas que me gustan. Si el proyecto o su futura evolución funciona, los ingresos llegarán de un modo u otro.

Si hay algo importante que he aprendido con Green Kiwi Games es el poder de las pequeñas tareas mantenidas en el tiempo: pequeños ratos, unas horas los fines de semana, lecturas en el baño de artículos relacionados (…). En fin, cualquier momento es bueno; al cabo del tiempo, has acumulado cientos de minitareas que terminan generando un proyecto con cierta madurez y listo para su publicación. La satisfacción de hacer un despliegue final a disposición de todo el mundo es casi adictiva.

Siempre insisto en lo siguiente: si trabajas para una empresa, la mejor forma de mejorar tu trabajo y convertirte en intraemprendedor es crear proyectos personales en áreas que no tocas con frecuencia. Las habilidades que aprendes en estos proyectos terminan volcándose en tu día a día en la compañía para la que trabajas, así que todos ganan.

Uno o dos proyectos personales al año, al margen de los que ocupan tu dedicación profesional si trabajas para una compañía: ése es siempre mi objetivo y, paradójicamente, eso me ha permitido mejorar sustancialmente mi trabajo en la empresa.