Personalizzazione o configurazione del software: chi vince?

Quasi tutti i produttori di software parlano di come il loro software sia estremamente configurabile, scalabile e adattabile a diverse esigenze dichiarate dal cliente.

In fase di acquisto, il cliente – in buona fede – non si pone troppe domande su come verrà adattato il software al suo caso specifico. Non presta attenzione al fatto che venga fatta una personalizzazione o una configurazione del software acquisito, essendo concentrato in primo luogo sui requisiti di business che il software deve rispettare e sui costi e tempi che gli vengono prospettati.

Vediamo di definire meglio questi termini:

  • per personalizzazione intendiamo la scrittura di codice ad hoc, aspetto che solitamente non beneficerà di futuri upgrade del software;
  • per configurazione intendiamo l’utilizzo di logiche già presenti nel codice che estendono le funzionalità del codice sottostante.

Una soluzione che sia “over-configurabile” espone però a rischi: la configurazione spinta all’eccesso diventa spesso una “gabbia” per il cliente-utente perché i tempi e le competenze per realizzarla introducono di fatto dei “sotto-linguaggi di dominio” che trasformano la configurazione in una specie di scripting selvaggio e causano alla fin fine problematiche assimilabili a quelle della personalizzazione.

Negli anni di attività di consulenza abbiamo visto spesso un abuso di scripting: ad esempio l’utilizzo di ABAP per estendere le funzionalità di moduli in SAP. Non abbiamo nulla contro SAP, che riteniamo un ottimo sistema gestionale. L’approccio che contestiamo in questi casi è da attribuire alla cattiva consulenza dell’integratore, che ha cercato di far fare ad un software quello che non doveva fare, pur di assecondare le richieste del cliente.

Qual è il giusto compromesso?
La linea che cerchiamo di seguire nelle nostre soluzioni è quella di:

  • valutare bene le specifiche
  • evitare soluzioni generaliste
  • orientare la scelta su soluzioni specifiche  nate per fare quello che serve in quel settore e a copertura di quei processi

In questo ultimo caso emerge subito che non sono necessarie personalizzazioni e che le parametrizzazioni da fare sono poche e lasciano il “timone” nelle mani del committente. Di certo, il prodotto software deve essere ben progettato dall’inizio; crediamo che questo compito sia facilitato da una “storia” aziendale nel settore e dalle lezioni apprese dai clienti già soddisfatti.

Ponderate bene quindi le esigenze di personalizzazione che richiedono i vostri utenti: spesso nel confronto con chi vi offre una soluzione specializzata non acquistate solo un set di funzionalità, ma soprattutto l’esperienza di chi ha già affrontato – con altri clienti simili a voi – gli stessi temi, individuando soluzioni efficaci che assolvono ai bisogni che state dichiarando, magari in modo differente da quello che avete in mente, ma altrettanto valido (se non di più).

Come aggiungere la funzione “must-have”
E nel caso in cui vi sia comunque una funzione che manca nella soluzione individuata come quella più vicina alle esigenze del vostro settore?
Beh, se chi vi offre la soluzione software “ci crede”, probabilmente deciderà di inserire questa funzione nella roadmap di prodotto: questa scelta permetterà di condividere l’investimento col partner e crescere entrambi: voi avrete la copertura funzionale e la garanzia che questa sarà disponibile nelle future release di prodotto.