
Desde hace unas semanas ya está disponible en modo beta 1 la primera versión de Picly, un servidor de imágenes con transformaciones al vuelo a través de la misma URL. Han pasado ocho meses desde su primer prototipo y, aunque en unas semanas liberaremos la versión comercial, hemos comenzado a «comunicar al mercado» este nuevo producto por aquello de que si sales con demasiadas características, es que sales tarde…
Hay muchísimo trabajo detrás de este proyecto, en el que participa todo el equipo de desarrollo de Solid Stack. Está realizado en Node.js, usa una base de datos en Redis y requirió mucho, muchísimo testing antes de liberar esta primera versión.
¿He dicho «muchísimo trabajo»?
Se suele ignorar que detrás de una simple web comercial —que ya tiene lo suyo en diseño, usabilidad, calls to action, etc.— existe toda una infraestructura que le da soporte para implementar todos los procesos de negocio.
Las personas no demasiado técnicas, e incluso muchos desarrolladores que se lanzan a probar una idea, no tienen claro el enorme esfuerzo que supone coordinar, desarrollar y, sobre todo, mantener una infraestructura de software y hardware para comercializar un producto que, con el tiempo, tendrá diferentes versiones y se podrá usar en distintas modalidades comerciales (gratuita, profesional y empresarial).
Me temo que no, que esto no consiste en publicar una web atractiva y ponerse a hacer caja desde el minuto uno…
Tan solo para poder lanzar una primera beta, resumo a continuación todo lo que necesitamos desplegar y desarrollar:
- Una web adaptable, con un diseño atractivo y comercial: www.picly.io.
- Una aplicación web, también fácil de usar y adaptable, para el panel de los usuarios registrados, publicada en account.picly.io.
- Una API REST para dar soporte a lo anterior, publicada ahora mismo en
api.picly.io. - Y, claro está, el propio producto, descargable y listo para ejecutarse en una máquina local.
Tan solo para desarrollar todo lo anterior, nos ha hecho falta:
- Desarrollar el producto con la suficiente calidad como para publicarlo como beta 1 (con pruebas, verificaciones manuales y exploratorias, etc.). Esto es, en sí, un reto: se trata de algo relativamente complejo a nivel técnico que pretende ofrecer una solución de menor coste y mucho más flexible que servicios como Cloudinary.
- Dedicar un esfuerzo considerable a la gestión de la configuración y al procedimiento de «compilación» de la versión: seleccionar los assets que se van a publicar, ofuscar las partes más sensibles del código, minificar las librerías y el CSS de las distintas webs y del panel de control de Picly, etc.
- Conocer en profundidad las tecnologías y librerías que hemos utilizado: Node.js, Redis, Bootstrap, diseño de una arquitectura distribuida, GraphicsMagick, OpenCV, etc.
- Poner en marcha un mecanismo de «inversión de control» para incorporar los plugins de Picly, que son los que hacen las transformaciones al vuelo.
- Celebrar infinidad de reuniones para consolidar lo ya implementado y definir los próximos pasos.
- Integrar la pasarela de pago a través de Stripe.
- Integrar muchos otros servicios, como Google Analytics, Hotjar, etc.
Todo esto parece abrumador al principio y, en realidad, lo es. Sin embargo, lo importante es ir dando pasos continuamente, poco a poco pero con la dirección clara, hasta completar la funcionalidad mínima para salir y dar a conocer este nuevo proyecto en el mercado.
Para mí, la esencia de un buen trabajo que parece enorme es el refinamiento continuo.
Y a partir de ahí, ¿qué?
A partir de este momento, el trabajo duro continúa, pero en una fase diferente: hay que poner en marcha los procesos de negocio mediante procedimientos bien establecidos y ordenados, como los siguientes:
- Comunicación regular al mercado mediante noticias, tweets, etc.
- Campañas de divulgación, webinars, meetups, listas de correo, contacto directo con compañías como potenciales clientes, etc.
- Mecanismos para recoger, recopilar y analizar el feedback.
- Procedimientos de soporte.
- Auditorías internas de seguridad de toda la infraestructura creada para dar soporte a Picly.
- Seguimiento de las licencias vendidas.
- Monitorización de la actividad de los usuarios.
- Procedimientos para publicar nuevas actualizaciones, tanto de las webs como del propio producto.
- Definición de métricas no vanidosas para comprobar el impacto de cualquier comunicación al mercado.
- Etc.
Todo esto es muchísimo trabajo, pero, si está bien definido y ordenado, se puede llevar a cabo con la disciplina necesaria para tener éxito con un producto como Picly.
Picly es un producto en el que se ha puesto mucho esfuerzo para mantener un diseño limpio y claro, con módulos sencillos respaldados por pruebas, clean code y todas las buenas prácticas necesarias para desarrollar un producto mantenible y evolucionable. Durante este tiempo han surgido muchas anécdotas que iré contando poco a poco: por ejemplo, por qué no hemos usado ningún framework como Angular o React para las distintas aplicaciones web, por qué tomé la decisión de diseño de usar Redis como base de datos y muchas cosas más.
Continuaré hablando de todo lo anterior, tanto a nivel técnico sobre Picly como de los procesos de negocio específicos que estamos poniendo en marcha ahora mismo.
En cualquier caso, os animo a descargar el producto y a inundarnos de sugerencias y feedback.