In commercio esistono molti software che consentono la
realizzazione di siti web senza richiedere conoscenze tecniche troppo elevate; esistono
anche applicazioni per la gestione di diversi tipi di
problematiche aziendali, così come per la creazione di siti di e-commerce.
Per poter raggiungere il maggior numero possibile di utenti tutti questi applicativi devono ovviamente
cercare di offrire delle soluzioni il più possibile condivise: se tu hai bisogno di
qualcosa di diverso, è la tua esigenza che si deve adattare alle loro funzionalità.
Il software personalizzato, invece, è costruito a partire dalle tue esigenze, perchè non
ha alcun altro destinatario che te: ti conosce, e ciò che ti serve è la sua stessa ragione di esistere.
Insomma, con un software personalizzato si può avere esattamente ciò che serve, niente di meno e nulla di più.
Le tue necessità possono cambiare nel tempo: una nuova funzionalità
può diventare indispensabile, una procedura può richiedere una correzione per risultare ancora più
efficiente.
Il software personalizzato è sempre modificabile in ogni sua parte. Chiaramente, sarà
necessaria una attenta analisi preventiva per evitare di trovarsi di fronte a modifiche
che intervengano sui muri portanti del codice, perchè per quanto possibili le modifiche non sono
tutte uguali, e non hanno quindi tutte lo stesso costo.
Questa è una classica obiezione che viene formulata da chi preferisce utilizzare
librerie e codice scritto da altri all'interno dei propri software. Io non voglio criticare questa scelta:
se ci si trova di fronte ad un problema che non si è mai visto, è senz'altro vero che la soluzione più
rapida sia utilizzare un'insieme di script già collaudati che raggiungono lo scopo. Questo comporta però 2
compromessi:
- se la libreria non fa ESATTAMENTE quello che serve si dovrà modificarla, per piegarla
ai propri scopi, e immergersi in codice scritto da altri non è quasi mai una bella esperienza.
- se ci serve una sola funzionalità della libreria saremmo quasi sempre
costretti a caricarla TUTTA, a detrimento della velocità di navigazione, e comunque
appesantendo il software di cose inutili.
Ma la questione secondo me fondamentale è un'altra: sì,
vale sempre la pena di provare a reinventare l'acqua calda! Se nessuno avesse mai provato
a reinventarla, infatti, probabilmente la ricaveremmo ancora
accendendo un fuoco di sterpi sotto un pentolone, all'aperto. Per fortuna, in tantissimi
hanno provato (e ancora provano) ad ottenerla con metodi sempre più efficienti, magari issandosi sulle
spalle di chi li ha preceduti per poter vedere più lontano. Provare ad immaginare un procedimento che sia
costruito sul progetto che si sta realizzando è l'unico sistema per cercare
l'ottimo: e se si può avere l'ottimo, perchè accontentarsi dell'
appena sufficiente?
Inoltre, sarà forse la mia formazione filosofica, ma negli sforzi per ottenere un risultato si può aprire
la mente a risultati diversi, che potrebbero essere utili in altre parti del software,
o immaginare nuove funzionalità, o semplicemente conoscere meglio il
software che si sta realizzando. Esiste una parola che indica il raggiungimento di un obiettivo non
immaginato, diverso da quello che si sta inseguendo: serendipità. Cercando di
raggiungere le Indie (che già erano state raggiunte, l'"acqua calda") per una strada diversa,
Colombo scoprì l'America.
Se hai mai utilizzato un software generico per gestire la tua attività, sia essa
lavorativa o meno, ti sarà capitato senz'altro di dover eseguire delle procedure che ti saranno sembrate
poco intelligenti, o quanto meno ripetitive, per raggiungere gli scopi
che ti prefiggevi.
Hai considerato il valore del tempo perso in questi giri viziosi nel calcolo
costi/benefici relativo al tuo software? E hai aggiunto a questo il tempo che è stato
necessario, per te e per i tuoi collaboratori, per imparare ad usare il software generico
secondo la logica decisa dai suoi sviluppatori, anziché da te?
Ancora: hai considerato che il software personalizzato lo pagherai una sola volta, senza
canoni annuali o licenze, e la sua manutenzione sarà personalizzata quanto la sua creazione?
E infine: sei davvero sicuro che costi di più, anche solo come cifra effettiva? Hai mai
chiesto un preventivo, oppure ti sei solo fatto condizionare dal "sentito dire"? ...mettimi alla prova! :)