Versión resumida: Estamos mejorando éste blog, trabajando en los detalles que diferencían un producto tecnológico increíble, de código que funciona.
Crear experiencias y productos tecnológicos increíbles es una jornada de mucho tiempo, de constante aprendizaje sobre las necesidades del usuario y de una atención delicada por los detalles.
Personalmente, no me considero un perfeccionista, de hecho, trabajar en los detalles siempre ha sido difícil para mí, por años alimenté esa mala costumbre de desarrollador de software de poner más trabajo en lo nuevo, que en refinar lo existente.
Los productos increíbles no son los que hacen de todo, si no los que hacen poco casi perfectamente. Escuché esto hace mucho tiempo, pero me tomó muchos años más tener la madurez profesional como para seguir el mantra, la idea de los nuevos features, de las adiciones, de crear nuevo siempre llama mucho más que la de trabajar en lo existente, pulir los detalles, mejorar, refactorizar o iterar.
Los productos increíbles toman tiempo
Hace varios años vi una imagen de cómo Slack decide a dónde o si te enviará una notificación push, esta es la imagen:
Si alguna vez leíste a alguien decir que puede hacer un clon de Slack en un fin de semana, muéstrale esta imagen. Si nunca has escuchado a alguien decir que puede clonar la funcionalidad de un producto popular en poco tiempo, bien por ti, pero es una creencia popular entre los desarrolladores, quizás alimentada por el ego y el valor desmesurado que le damos al código.
El código que escribimos es solo un reflejo de las ideas y de la toma de decisiones que seguimos, escribir código es fácil en comparación con el proceso de deciciones que se toman para construir el producto adecuado.
Estas decisiones se alimentan del nivel de experiencia que se desarrolla sobre un área en particular, en éste caso la comunicación asíncrona, que es un expertise distinto al de desarrollar, que es tan importante como el de producto, pero distinto.
Esta es la principal razón por la que los productos nunca se lanzan perfectos, porque la identificación de lo que significa perfecto para nuestro producto, solo se conoce del nivel de dominio que tenemos sobre el producto, los usuarios, los distintos casos de uso, la práctica, entre otros factores. Esto quiere decir que tratar de perfeccionar un producto, antes de si quiera presentarlo a sus usuarios, es una pérdida de tiempo, porque son los usuarios los que definen el producto perfecto.
Tips para mejorar tu producto
El primer paso para construir un buen producto es reconocer la complejidad de hacerlo. En el reconocimiento de la complejidad también identificamos el valor de agregar nuevas funcionalidades al producto mismo y el costo que cada una de ellas trae.
Una nueva funcionalidad viene acompañada del mantenimiento de la misma, el estudio de la misma, el perfeccionamiento, las iteraciones de mejora, la revisión en los detalles y mucho más. Una funcionalidad apenas arranca su ciclo de vida y de trabajo cuando es lanzada, es a partir de ahí donde uno se compromete por años a darle mantemiento, actualizarla y mejorarla.
Las nuevas funcionalidades, además, toman recursos que no se podrán utilizar más en el core de tu producto. Si tu producto es la música, agregar la funcionalidad de comentar la música significa que hay menos recursos para invertir en el reproductor, en el catálogo, en la reproducción, etc.
Esta nueva mentalidad que reconoce la complejidad y el tiempo que toma perfeccionar un producto, ayuda a recordarnos que lo mejor que podemos hacer para mejorar nuestra app, no es agregar nuevas funcionalidades, si no revisar las existentes.
Debes tener en claro qué es lo que tus usuarios quieren, y qué querrán a largo plazo. Como Jeff Bezos, CEO de Amazon explica, más que enfocarte en lo que cambiará dentro de los próximos años, enfócate en lo que no cambiará en los siguientes 10 años, y construye la estrategia de tu producto sobre esa estabilidad. En el comercio, sabemos que los usuarios van a querer precios bajos hoy y en 10 años.
En la tecnología los usuarios nunca dejarán de querer apps que funcionen de manera fluída, que carguen rápido, que les den acceso inmediato a la información que requieren, que no fallen, que estén disponibles cuando las necesitan, por mencionar algunos puntos. Es por eso que, quizás el mayor retorno de inverción a largo plazo, está en trabajar en estos puntos, más que trabajar en nuevas funcionalidades
Cómo estamos mejorando en CódigoFacilito
En el pasado, hemos dedicado tiempo a distintas funcionalidades clave de CódigoFacilito, como el buscador, la reproducción de vídeos, la exploración del catálogo, la página principal, el dashboard de usuarios, entre otros. Este trabajo ha resultado en mejoras a la experiencia de estas secciones.
Por ejemplo, renovamos nuestra experiencia de búsqueda, por un lado migrando a Algolia como motor de búsquedas e indexamiento, y por otro, dándole un lugar prominente en la navegación al buscador. Con esto, pasamos de recibir unas 200 mil búsquedas en los primeros 2 años de CódigoFacilito, a recibir la misma cantidad, pero ahora, cada mes, 200 mil búsquedas al mes según los últimos datos.
En estos últimos días hemos trabajado en mejoras para el blog. Para eso hicimos ajustes al diseño de las páginas individuales de artículos, añadimos un botón para cambiar a modo oscuro o modo claro desde la barra de navegación, mejoramos las tarjetas para compartir en redes sociales, y los botones para hacerlo, mejoramos los controles internos para categorizar el contenido, entre otras mejoras que hemos hecho.
Este trabajo es muy importante para nuestro blog, que recibe unas 20 mil visitas cada semana. Incluídos artículos que han sido visitados cientos de miles de veces por usuarios de todo el mundo.
Aún tenemos en la mira aspectos clave de la funcionalidad de CódigoFacilito como el foro, las notificaciones, los anuncios con shows en vivo, la agenda, entre otros.
Si tienes alguna sugerencia de cómo mejorar CódigoFacilito, déjala en los comentarios y con gusto la revisaré.