I configuratori di prodotto sono tutti uguali?
Ovviamente no. Quelli presenti oggi sul mercato si suddividono principalmente di due macro-categorie, ognuna con le sue caratteristiche: sequenziali e relazionali.
Cerchiamo di analizzarle una per una, considerando, come esempio pratico, di voler configurare la ruota di un’auto nei suoi componenti di base: gomme, cerchioni e dischi.
1. Configuratori sequenziali
Questa tipologia comporta la necessità di conoscere tutti i possibili “incroci” tra i componenti del prodotto e l’obbligo di elencarli al software.
Quello che dovremmo fare sarà quindi programmare il nostro configuratore sequenziale con un gran numero di istruzioni condizionali (“If”, per chi si intende un minimo di codifica). Nel nostro esempio avremmo uno scenario di questo tipo:
Select dimensione gomma
dimensione gomma = 20, 22, 24
Select dimensione cerchione
if dimensione gomma = 20 then dimensione cerchione = 295/80R20, 275/70R20, 315/80R20
if dimensione gomma = 22 then dimensione cerchione = 385/65R22, 11.00R22, 315/80R22, 365/70R22
if dimensione gomma = 24 then dimensione cerchione = 295/80R24, 275/70R24, 12.00R24, 315/80R24
Select tipo freno
if dimensione gomma = 20 and (dimensione cerchione = 295/80R20 or dimensione cerchione = 275/70R20) then tipo freno = Disc
if dimensione gomma = 20 and (dimensione cerchione = 315/80R20) then
…
..
Viene da sè che la configurazione attraverso uno strumento sequenziale comporta l’inserimento di un altissimo numero di regole (nell’esempio abbiamo combinato solo tre elementi, normalmente i prodotti ne presantano moltissimi di più). Passiamo allora alla categoria successiva.
2. Configuratori basati su relazioni
Possiamo pensare a questa tipologia come a dei grossi fogli Excel che raccolgono tutte le possibili scelte disposte in righe e colonne. Le configurazioni si trovano incrociando le scelte tra loro.
L’approccio che sta alla base è già un passo avanti rispetto al precedente, purtroppo, è ancora inefficiente. Questo perchè più la matrice diventa grande più tempo si impiegherà a descriverla.
Inoltre, ogni possibile scelta comporterà l’aggiunta di una dimensione: avremo quindi una matrice “esplosa”, multi-dimensionale, la cui complessità crescerà in maniera esponenziale.
Quindi non c’è una soluzione?
In realtà si. Alla luce delle considerazioni sopradelineate si intuisce che, probabilmente, quello che richiede il mercato non è un semplice configuratore, bensì un solutore.
Vediamo che significa.
3. Solutori basati su vincoli
Un solutore è uno strumento al quale vanno comunicate alcune regole (chiamate “vincoli” o “constraints”), in sostanza le modalità con le quali i componenti possono essere combinati tra loro.
Nell’esempio delle ruote avremmo una situazione di questo tipo:
cerchione.diametro = gomma.diametro
cerchione.lasghezza = gomma.larghezza
freni.diametro+100 =< cerchione.diametro
Con soli 3 vincoli si risolve un numero infinitamente grande di combinazioni e non si ha la necessità di apportare modifiche se si aggiungono delle tipologie in futuro. Il sistema, autonomamente, trova e restituisce le soluzioni migliori.
In sintesi, l’approccio di un solutore sposta radicalmente la visione dal descrivere tutte le soluzioni possibili a descrivere come i componenti devono essere scelti.
In questo modo avviene anche una separazione tra le regole e i dati, estremamente utile ogni volta che i componenti cambiano: i vincoli restano e quello che va sostituito sono soltanto le tipologie di componenti disponibili.