Idea

Un'evoluzione che richiede un intervento presso ogni cliente fa divergere le versioni

Info

Scritto originalmente in francese. Tradotto dall'IA — il significato è stato preservato, non la prosa.

Idea principale

Una funzionalità richiede una nuova colonna nel database. Se il database sta presso il cliente e ogni messa in produzione impone di inviare una procedura al suo team, aspettare un'approvazione, prenotare una finestra di manutenzione e verificare a mano che la migrazione sia andata a buon fine, allora il rilascio non dipende più dal produttore.

La conseguenza non è soltanto un ritardo. Un cliente applica la migrazione martedì, un altro aspetta venerdì, un terzo la rimanda al mese successivo. Ci si ritrova con più versioni del motore, più stati dello schema e una complessità che cresce a ogni release.

A perdersi, allora, è il vantaggio strutturale del modello: far evolvere in continuo un prodotto comune a tutti i clienti.

Perché è importante

La divergenza non si vede nel momento in cui si accetta l'accordo — il primo cliente è facile da servire. Compare al decimo, quando ogni correzione va testata su più stati dello schema.

E la tendenza gioca contro: man mano che il ritmo dei rilasci aumenta, un'architettura che richiede un intervento umano per cliente a ogni modifica diventa sempre più costosa.

Sfumature e limiti

La constatazione vale per le modifiche di struttura. Una configurazione, un contenuto, un parametro possono variare da cliente a cliente senza produrre questa divergenza.

Ed esistono modelli che prevedono dichiaratamente più versioni — un software installato presso il cliente. Sono altri mestieri, con altri costi.

Domande aperte

  • Quante varianti di schema può reggere un team prima che il costo dei test diventi proibitivo?