Tots els articles

Un motor de reserves, cinc esports: adaptar Lueira a diferents sectors

Publicat 13 de juny del 20253 min de lectura
  • Producte
  • Lueira
  • Muntanya
Un motor de reserves, cinc esports: adaptar Lueira a diferents sectors

Idees clau

  • El model central de «recurs + franja horària + capacitat» va generalitzar bé: els instructors es van convertir en amfitrions/guies, i el material es va convertir en qualsevol consumible limitat, des de vestits de neoprè fins a ampolles de vi.
  • Les dades de seguretat lligades al temps meteorològic, els circuits de diversos dies i etapes, i les dinàmiques de grup diferents van necessitar capes d'extensió reals, no només configuració.
  • Ampliar sectors és una tensió contínua, no un problema resolt: cada sector nou obliga a triar entre afegir al nucli genèric o construir una capa nova a sobre.

Lueira va començar el març de 2023 com a motor de reserves per a escoles d'esports de muntanya. En un article anterior vaig escriure sobre l'aposta arquitectònica que vam fer des del primer dia: construir un únic sistema multi-tenant capaç de donar servei a moltes escoles sense bifurcar el codi cada vegada que algú demanava alguna cosa lleugerament diferent. Dos anys després, aquesta aposta s'ha posat a prova molt més enllà de l'esquí. Lueira gestiona ara reserves, personal i estoc en cinc sectors diferents, i aquest article tracta sobre el que va caldre de debò per estirar un sol producte al llarg de tantes activitats diferents: on va aguantar netament el mateix model central, i on va caldre feina real i gens trivial perquè deixés de trencar-se.

1. Cinc sectors, un mateix bucle

Si mires com descrivim Lueira avui a la web, s'hi llisten cinc sectors: esports d'hivern (classes, material, vendes en línia, tot sincronitzat), esports aquàtics (classes i campaments, calendari, instructors), centres de multiaventura (coordinant activitats i instructors mitjançant un motor de reserves connectat), busseig i esports submarins (organitzar immersions, vendre en línia, sincronitzar tot en temps real), i enoturisme (tastos, reserves, visitants, pagaments). Sobre el paper això semblen cinc negocis diferents. Però per sota, tots executen el mateix bucle que vam descriure a l'article del motor de reserves: un recurs, una franja horària i un límit de capacitat.

  • Esports d'hivern: instructor → monitor d'esquí/snowboard; consumible → esquís, botes, forfets
  • Esports aquàtics: instructor → monitor de surf/caiac/vela; consumible → taules, vestits de neoprè, caiacs
  • Multiaventura: instructor → guia; consumible → arnesos, cascos, material específic del circuit
  • Busseig: instructor → guia/instructor de busseig; consumible → ampolles, reguladors, vestits de neoprè, places al vaixell
  • Enoturisme: instructor → amfitrió/sommelier; consumible → ampolles, copes de tast, places a la taula

2. On l'abstracció va aguantar

Les parts del model que van generalitzar bé són les parts que ja havíem fet genèriques a propòsit. Un instructor, a la base de dades, mai no va ser realment «un monitor d'esquí»: era una persona amb una qualificació, un horari i una capacitat per dirigir un grup. El material va seguir el mateix patró: ja estava modelat com un recurs limitat i rastrejable, amb una talla o variant i un recompte d'estoc, així que vestits de neoprè, caiacs i ampolles de vi hi van encaixar sense tocar les taules centrals. Fins i tot el flux de reserva amb prou feines va canviar entre una classe d'esquí i un tast de vi.

3. On no va aguantar

El temps meteorològic és el cas més clar. Una classe d'esquí i una immersió depenen de condicions en què un tast de vi mai no ha de pensar. El model central de reserves de Lueira no té cap concepte de «aquesta franja es podria cancel·lar per una tempesta»: això s'havia de construir com una capa d'extensió superposada a certs sectors, sense fondre-ho en el bucle genèric.

Les activitats de diversos dies i diverses etapes van ser el segon buit real. Un centre de multiaventura sovint ven un circuit: un matí de via ferrata seguit d'una tarda de barranquisme. El nostre model de reserves suposa un recurs, una franja, una capacitat. Un circuit és en realitat diverses reserves enganxades entre si amb dependències entre elles.

La dinàmica de grup va ser la tercera diferència, més discreta. Una classe d'esquí ha de tenir en compte nivells mixtos dins d'un mateix grup. Un grup de tast de vi es reserva d'una vegada i es queda fix.

4. La tensió que no desapareix

Dos anys després, el resum honest és que ampliar sectors no és un problema que vam resoldre una vegada: és una tensió que gestionem en cada sector nou que afegim. Cada vegada que un tipus de negoci nou demana funcionar sobre Lueira, hi ha una decisió real: això necessita un camp nou en un model genèric existent, o necessita la seva pròpia capa d'extensió? Ens hem decantat, la majoria de vegades, per deixar el bucle central intacte i empènyer la lògica específica de cada sector cap a capes que es recolzen a sobre. Això ha aguantat raonablement bé al llarg de cinc sectors. Encara no sé si aguantarà un sisè.

El que li diria a un altre equip fent el mateix: no donis per fet que l'abstracció que va funcionar per al teu primer pivot aguantarà gratis per al següent. El nivell correcte d'abstracció no és una propietat del model: és una aposta que has de continuar revisant cada vegada que afegeixes un sector genuïnament diferent dels que ja has gestionat.