Vendor lock-in, un male gestibile

I sintomi

Il vendor lock-in รจ un male da cui รจ difficile guarire e colpisce le aziende clienti. I primi segnali evidenti sono un incomprensibile aumento dei costi, per attivitร  che nell’accezione comune richiedono un costo di implementazione molto basso.

La situazione tipica รจ questa:

Cliente: “Vorrei cambiare l’etichetta da quietanzamento a rinnovo. Riusciamo ad averlo online per Lunedรฌ e quanto costa”

Fornitore: “Certo, il costo รจ di ca. 5ggu”

Cliente: “5ggu?!?!?! Ma รจ solo un etichetta”

Fornitore: “Non รจ cosรฌ semplice, le etichette sono gestite dal database, ogni volta che tocchiamo il DB dobbiamo chiamare il sistemista che valida gli script, preparare un delta script e farlo girare in ambiente di collaudo, lรฌ facciamo girare un insieme di test di non regressione per essere certi che non abbiamo creato problemi in altre aree dell’applicativo. Prima ovviamente faremo un analisi di impatto”

A questo punto il cliente vorrebbe capire se tutti i passaggi sono necessari, si rivolge a un esperto interno il quale stima: 5 minuti per cambio etichetta, 10 minuti per la creazione di un delta script che si traduce in “update db.labels set label=”rinnovo” where cond AND cond AND label=’quietanzamento’”, 30 minuti per installare lo script sul ambiente di collaudo, 30 minuti di test. Arrotondiamo 1 ora, 30 minuti. Cerchiamo di essere realisti, il primo tentativo fallisce sempre. Raddoppiamo: 3 ore. Vabbรฉ ma sta pausetta caffรจ, una mail da rispondere? non vogliamo mettercela? 4 ore.

Fatto il passaggio con l’esperto che fiero della propria stima di 4 ore, il cliente torna dal fornitore. Con una contro proposta.

Cliente: “Abbiamo fatto dei ragionamenti interni, possiamo arrivare a riconoscere 1 giornata uomo”

Fornitore “Per quel ‘impegno non possiamo assumerci il rischio, tenete l’etichetta cos’รฌ com’รจ. (O al piรน cambiate solo il primo 20% dei caratteri)”

E’ questo punto il cliente vorrebbe rivolgersi a un altro fornitore, ma non puรฒ il contratto prevede che solo l’attuale fornitore puรฒ intervenire sul codice, sulle configurazioni, sul database e su qualsiasi altra componente direttamente o indirettamente connessa con l’oggetto del contratto. In quel preciso momento il cliente matura la consapevolezza di essere affatto dal male chiamato “vendor lock-in”.

Parliamoci chiaro, tutti i rapporti cliente/fornitore si trovano in una situazione di questo tipo per quanto riguarda i software proprietari dei sistemi core. Basti pensare che un progetto di migrazione di portafoglio dura mediamente 2-3 anni per rendersi conto degli elevati costi a cui si va incontro per sostituire i software core proprietari. Il punto importante รจ trovare un modo per rendere sostenibile questo rapporto, per sua natura sbilanciato a favore del fornitore.

Gare

Gare, sempre gare, per ogni attivitร . Le gare sono come la Tachipirina per il febbricitante. Se ci trova in una situazione di vendor lock-in le gare (per le nuove attivitร ) aiutano a contenerne gli effetti, anche se nel lungo periodo creano assuefazione nel fornitore. La percezione di essere messi in concorrenza, di essere messi alla prova aiuta a calmierare i prezzi del fornitore dominante. Non sempre รจ possibile fare gare per i contratti che giร  legano al fornitore dominante, ma occorre sfruttare ogni singolo spiraglio. Se la gara riguarda i sistemi in situazione di vendor lock-in occorre prestare massima attenzione. Non puntare esclusivamente a una gara al ribasso sul progetto di avviamento.

Mi viene in mente il caso delle stampanti, oggi una stampante viene venduta anche a 40โ‚ฌ cartucce incluse, le singole cartucce costano 20โ‚ฌ. Possibile che il costo della stampante sia solo 20โ‚ฌ? Il fornitore ha semplicemente caricato sulle cartucce il costo delle stampanti. Il una gara al ribasso per un progetto che porta a un vendor lock-in il fornitore sarร  disposto a scendere di prezzo fin dove vuole il cliente. Tanto rientrerร  di costi in una fase post-rollout. Cercare di ragione sui costi post avviamento durante una gara รจ pressochรฉ impossibile. Il costi ย negli anni post “rollout” dipendono dal numero di adeguamenti ย o innalzamenti funzionali richiesti. I business si muove e richiede sempre nuove funzionalitร .

In sintesi:

  • Fate sempre gare. Aiuta a calmare i fornitori dominati.
  • Diffidate del cliente che in fase di gara sconta fino ad avere il prezzo piรน basso. Pagherete tutto dopo con gli interessi composti.

Separazione tra vendor di piattaforma e system-integrator

Ogni piattaforma software installata presso un cliente ha due componenti, una di “prodotto” e una di “personalizzazione”. Con prodotto si intendo il software nudo e crudo come รจ stato realizzato dalla software-house di riferimento, mentre con personalizzazione sono tutte le configurazioni e implementazioni necessarie alla soluzione software per funzionare correttamente nel ecosistema aziendale (flussi, connettori, integrazione,…). Per molte soluzioni software questa separazione viene naturale. Ad esempio database Microsoft o Oracle, il database Administrator รจ tipicamente di una societร  terza. Questa separazione deve essere mantenuta per tutto il software proprietario. Sempre. ย I vantaggi sono:

  • possibilitร  di cambiare system-integrator senza cambiare piattaforma software
  • cambiare piattaforma software preservando il system-integrator e quindi le competenze specifiche legate all’azienda

Avere lo stesso fornitore ha inoltre il grosso svantaggio di rendere opachi sia i difetti di piattaforma che le mancanze nelle varie fasi progettuali.

In sintesi: E’ bene tenere separato il vendor di piattaforma dal system-integrator che gestisce il progetto di avviamento e la manutenzione

Pluralitร  di fornitori

Forse questo รจ uno degli elementi piรน importanti. ย Ad alcuni รจ sicuramente capitato di andare in un negozio per comprare un adattatore per il nuovo dispositivo, considerato il topo della gamma, e di scoprire e che il dispositivo non usa connettori ma proprietari, che costano mediamente 3 volte tanto (ai tempi che fu c’era betamax, oggi capita sui cellulari di alcuni produttori)

Occorre sempre avere diverse alternative per tutte le attivitร  di sviluppo/innalzamento funzionale della soluzione software scelta. Ossia diversi fornitori devono poter intervenire nello sviluppo di nuove funzioni. Affinchรฉ questo sia possibile occorre che la soluzione software abbia una caratteristica fondamentale: deve essere progettata a componenti con interfacce di estensione standard.

Esistono una moltitudine di standard (JSON SOAP e XML per integrazione, CMIS per i sistemi documentali, BPMN2 per i processi, OSGi come container,…). Tutti questi protocolli standard consento una facile estensione delle funzionalitร . L’attivitร  di system integration deve concentrarsi solo sullo sviluppo di questi connettori. E non cadete nel tranello di pensare che se i connettori vengono sviluppati dal vendor del sistema risparmiate perchรฉ il vendor conosce la piattaforma. Il vendor andrร  a creare dei connettori talmente avvitati alla piattaforma che ogni attivitร  di manutenzione costerร  3 volte tanto. Meglio spendere qualcosa di piรน prima che far lievitare a dismisura i costi dopo.

Diffidate inoltre dei fornitori che dichiarano di avere una piattaforma “aperta” o “open” come si dice oggi con tanto di architettura SOA e non fornisce documentazione a riguardo. Per Dichiarare di avere un architettura SOA รจ sufficiente disporre di web-service, ma ciรฒ che conta รจ cosa posso farne di questi WS. Se non comprendono le funzionalitร  che interessano all’azienda avremo costi che lievitano in modo sproporzionato.

In sintesi:

  • Scegliere soluzioni per le quali esistono diversi system-integrator indipendenti in grado di sviluppare i connettori di integrazione
  • Scegliere una soluzione che abbia tutti i connettori necessari pronti e ben documentati (diffidate di chi dichiara di avere la piattaforma aperta e non fornisce l’elenco dei servizi aperti)

Proprietร  intellettuale delle personalizzazioni

Ho visto situazioni in cui il cliente chiede delle personalizzazioni sulla soluzione software e quanto viene sviluppato rimane di proprietร  intellettuale del fornitore. Perchรฉ questo? Motivi contrattuali รจ la prima risposata, ma qualโ€™era la base di questa scelta? Semplice, ogni personalizzazione richiede espone il fornitore a rendere noti alcuni aspetti implementativi e per tutelare la proprietร  intellettuale del proprio software tende a chiedere contrattualmente di mantenere la proprietร  intellettuale di quelle che sviluppa. Dall’altro lato il cliente ritiene di non farsene nulla del sorgente e della proprietร  intellettuale di quello che viene sviluppato e cosรฌ il fornitore tira e il cliente cede a fronte di uno sconto che pagherร  nei mesi successivi con l’interesse.

Mantenere il controllo delle personalizzazioni consente al cliente di entrare nel merito di quanto รจ stato realizzato, capirne la qualitร  e infine di chiedere a terzi di intervenire per correggere problemi. Un mito da sfatare รจ che “tanto del sorgente non sappiamo cosa farcene”. Basta un team di 2-3 bravi sviluppatori e qualsiasi sorgente viene ribaltato dalla a alla z in poco tempo.

In sintesi: Chiedere sempre la proprietร  intellettuale degli sviluppi che vengono fatti e conservare in modo diligente il relativo sorgente compilabile.


Commenti

Lascia un commento

Il tuo indirizzo email non sarร  pubblicato. I campi obbligatori sono contrassegnati *

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.