In questo articolo esploriamo il concetto di “efficacia di una soluzione software“.
Innanzitutto vediamo che cosa significa “efficacia” e poi applicheremo il termine al software.
Dal dizionario:
Efficacia: “capacità di produrre l’effetto voluto”
L’efficacia è una misura del raggiungimento di uno scopo prefissato, che cambia sia al variare del mezzo considerato che dello scopo per il quale lo si sta usando.
L’efficacia è una misura relativa, misurabile come relazione tra la quantità di scopo che si vuole perseguire e quella che si riesce a perseguire, risultando esprimibile come percentuale: 0% per il fallimento totale dello scopo, 100% per il successo completo.
In alcuni casi quando uno scopo sia raggiungibile o appieno o per niente, senza vie di mezzo, la misura dell’efficacia sarà soltanto 0% oppure 100%.
Siccome però il mondo non è sempre bianco o nero, si potranno avere casi di efficacia parziale: Ad esempio se il mio tentativo di “raccogliere le mele” (senza la clausola mandatoria “tutte”) finisse nell’aver raccolto metà delle mele che c’erano, si potrebbe dire che sia stato efficace al 50%.
Cosa vuol dire applicare questo concetto al software?
L’efficacia per il software misura quanto pienamente il software raggiunge i risultati per i quali è usato.
Dipenderà quindi dal software e dall’uso che se ne fa.
Vale la pena soffermarsi sul fatto che uno stesso programma può essere diversamente efficace se usato per scopi diversi.
Un parte di efficacia nell’uso del software dipende dall’uso più o meno appropriato di un dato software per un certo fine, quindi non della bontà del software per gli scopi per i quali è stato progettato.
Ad esempio pensiamo al software Microsoft Word: Ha un’alta efficacia per scrivere testi, in quanto permette di scrivere tutto ciò che si vuole senza impedimenti, ma una bassa efficacia come software per la manipolazione grafica, in quanto permette solo una parziale gestione delle immagini, infine una efficacia dello 0% per videochiamare, in quanto non videochiama affatto.
Un uso inappropriato di un buon software, quindi, lo rende totalmente inefficace in relazione allo scopo con cui è usato.
Per avere efficacia nella scelta del software, sarà necessario che facendo la scelta si abbiano ben chiari gli obiettivi per cui il software verrà usato e si controlli quanto i software tra cui si sceglie siano efficaci per quegli obiettivi.
Quando invece un software sia realizzato per uno scopo e, venendo usato per quello scopo, risulti comunque inefficace nel perseguirlo, allora l’inefficacia dipende da una cattiva analisi, progettazione del software o, in alcuni casi, da una intrinseca irrealizzabilità degli obiettivi.
Per garantire l’efficacia di un software per i suoi obiettivi, sarà fondamentale conoscerli. Sembra banale dirlo, ma andare alla cieca è un errore o una svista più comune di quanto si pensi.
E’ necessario analizzare gli obiettivi prima ancora di progettare il software, per evitare di “prendere fischi per fiaschi” ovvero realizzare un software buono si, ma per obiettivi diversi da quelli necessari.
L’efficacia del software poi in fase di creazione dipenderà dalla struttura del codice e delle interfacce ma non necessariamente dal livello tecnologico di realizzazione, in quanto spesso soluzioni semplici scelte con astuzia possono essere estremamente efficaci. Fanno eccezione soltanto quelle soluzioni software che affrontano problemi ad elevata complessità intrinseca, tipicamente problemi analitici, non risolvibili in modo semplice per loro natura.
Posto che si faccia un uso opportuno del software, questo risulterà maggiormente efficace per i suoi scopi se il realizzatore avrà effettuato una buona analisi degli obiettivi mettendoli in luce per poi seguire una buona strategia implementativa che permetterà agli utenti che useranno il programma di fare un uso altamente efficace del software nel raggiungerli.