Configurazione, personalizzazione e sviluppo possono convivere in una quarta via
Quando un’azienda decide di introdurre o sostituire una soluzione software per supportare i suoi flussi di business per qualcuno inizia il complicato percorso di software selection.
Spesso chi deve occuparsi della scelta si concentra principalmente sui requisiti di business che il software deve rispettare e su tempi e costi che vengono proposti dai fornitori.
Il selezionatore più attento si chiede anche come il software si adatterà alle specificità della sua azienda e dei flussi di business che dovrà supportare.
E qui si apre l’eterno ed insoluto trade off tra i tre diversi approcci alle soluzioni software ovvero:
configurazione o personalizzazione o sviluppo?
La configurazione è il processo di attivazione, disattivazione, parametrizzazione, tuning di logiche di business già esistenti nel software. Se in azienda i flussi sono standard si tratta di un gioco da ragazzi. Ma spesso i flussi standard non lo sono …
Occorre quindi procedere con le personalizzazioni, ovvero con degli interventi sul software che modificano o aggiungono logiche per adattarle alla specifica realtà aziendale. Questa operazione è però tanto più complicata quanto le specificità aziendali si discostano dalle logiche standard del software.
Infine, se i flussi che si intende supportare non sono per nulla standard e la realtà aziendale si distingue proprio per tali specificità, allora occorre un vero e proprio progetto di sviluppo di una soluzione software totalmente custom. Questa opzione se ben gestita darà risultati strabilianti, ma impegno e rischi non sono per nulla trascurabili.
Da qui l’eterno dilemma: “quale approccio è preferibile per la mia realtà?” A parte alcuni casi ben definiti, non è facile individuare a priori la soluzione migliore.
La quarta via
Proviamo quindi ad individuare un approccio alternativo, una quarta via, con l’obiettivo di estrarre il meglio di ognuno dei tre approcci tradizionali.
Immaginiamo di mettere i tre approcci nel nostro metaforico “frullatore” e di “condire” il mix altri due ingredienti:
- l’esperienza nello specifico settore raccolta nei progetti già realizzati
- uno strumento di sviluppo del software che consenta una notevole flessibilità
Se il dosaggio è equilibrato e l’esecuzione corretta il risultato della ricetta sarà proprio:
una famiglia di soluzioni software
Ovvero:
- una soluzione software “core”, un nucleo che gestisce le logiche basilari ed irrinunciabili di un tema in maniera sufficientemente configurabile
- la capacità di personalizzarla in maniera del tutto naturale senza dover forzare sofisticate logiche preesistenti
- la possibilità di aggiungere moduli ed integrazioni come progetti di sviluppo totalmente custom
Questo approccio consente di creare una soluzione unica per ogni cliente, basandosi su un nucleo di base condiviso che supporta i requisiti di base del settore cui si rivolge.
Ogni soluzione può essere poi agilmente personalizzata per gestire i suoi specifici flussi ed eventualmente arricchita da specifici moduli progettati e sviluppati “ad hoc”.
Questa ricetta supporta l’idea che ogni organizzazione sia unica e che le sue particolarità devono essere valorizzate poichè costituiscono spesso proprio i suoi punti di forza nei confronti dei competitor e genera una famiglia di soluzioni diverse per uno stesso tema.