Reutilizar no era hacer otra igual. Lo que MUTE me enseñó al construir una segunda y una tercera tienda sobre la misma base.
Cuando empecé a trabajar en una tienda online, pensaba bastante literalmente en eso: una tienda.
Tenía un nombre, colores, productos, categorías, un catálogo, un número de WhatsApp. Había que mostrar imágenes, informar disponibilidad y permitir que alguien administrara todo eso sin entrar al código.
El objetivo parecía bastante claro.
Hasta que apareció una segunda tienda.
La primera había ido creciendo alrededor de sus propias necesidades. Y cuando algo funciona, es fácil empezar a confundir dos cosas distintas: lo que pertenece al sistema y lo que pertenece a quien lo está usando.
El nombre parecía parte de la tienda.
También los colores. Las categorías. Los textos. La forma de hablar del stock. El logo.
Hasta que Proyecto Jardín necesitó la misma solución y casi ninguna de esas cosas servía.
Las plantas no eran androides. El verde reemplazó al rojo y negro. Las categorías eran otras. La disponibilidad tenía otra lógica. Incluso la manera de comunicarse con quien miraba el catálogo debía cambiar.
Sin embargo, debajo de todas esas diferencias, había algo que sí podía permanecer.
No necesitaba copiar una tienda. Necesitaba descubrir qué parte de ella era realmente la tienda.
Creo que hasta entonces asociaba bastante la idea de reutilizar con copiar.
Tenemos algo que funciona, hacemos otra versión y modificamos lo necesario.
Pero una copia tiene un problema: también copia decisiones que quizá nunca debieron formar parte de la base.
La segunda tienda obligó a separar.
Por un lado quedaron las cosas que hacen funcionar al sistema: cargar productos, mostrar un catálogo, manejar imágenes, consultar disponibilidad, administrar información.
Por otro, aquello que hace que cada comercio sea reconocible como propio: identidad, categorías, textos, formas de contacto y ciertas reglas particulares.
La diferencia parece bastante obvia después de verla.
Antes de necesitarla, para mí no lo era.
Mali fue una comprobación interesante.
Ya no se trataba de adaptar una tienda original a un caso excepcional. Había otra identidad, otro catálogo y otra configuración funcionando sobre la misma base.
Y ocurrió algo que al principio me habría parecido contradictorio: cuanto mejor funcionaba la reutilización, menos tenían que parecerse las tiendas entre sí.
No quería fabricar clones.
Quería que cada una pudiera ser propia sin tener que reconstruir aquello que ya estaba resuelto.
Reutilizable no significa idéntico.
Hay algo de este proceso que me resultó especialmente interesante.
Uno podría pensar que la primera implementación crea el modelo y las siguientes simplemente lo utilizan.
En mi caso ocurrió también al revés.
Proyecto Jardín me hizo volver a mirar MUTE. Cosas que antes parecían decisiones naturales empezaron a revelarse como decisiones particulares. La segunda implementación no solamente heredó de la primera: ayudó a entenderla.
Tal vez por eso diseñar algo reutilizable desde el principio sea más difícil de lo que parece.
Antes de conocer el segundo problema, no siempre sabemos qué parte de la primera solución era general.
Durante mucho tiempo asocié la personalización con agregar cosas: opciones, variantes, parámetros, posibilidades.
Esta experiencia me dejó una idea un poco diferente.
A veces personalizar bien consiste en sacar del medio todo aquello que no debería estar fijo.
Que el sistema sepa cómo funcionar, pero no necesite saber de qué color será la próxima tienda. Qué venderá. Cómo se llamará.
Parece una diferencia pequeña.
Para mí significó dejar de pensar en una tienda terminada y empezar a reconocer una estructura que podía sobrevivir a sus propias variantes.
A veces descubrimos qué construimos recién cuando intentamos construirlo por segunda vez.
El proyecto detrás de esta nota
MUTE → Proyecto Jardín → Mali
Esta reflexión nació construyendo MUTE y viendo cómo una segunda y una tercera tienda terminaron mostrando qué parte de la primera era realmente reutilizable.
Ver el proyecto MUTE →