L'antipattern Software Bloat (software gonfiato) è relativamente recente ma ormai molto comune. L'affermazione tipica di chi sta per incorrere in questo antipattern è: "Meglio aggiungere qualcosa in più, potrà sempre tornare utile".
Contesto del Software Bloat
Si incorre nel software bloat quando si eccede nelle funzionalità introdotte, ovvero si va oltre le reali richieste del committente, si pensa ad aggiungere caratteristiche all'applicativo senza chiedersi se esse saranno mai utilizzate, con la conseguenza di sfruttare più risorse di quelle realmente necessarie.
Fino a qualche anno fa era impossibile incorrere in un simile antipattern. Infatti, negli anni passati, i
software venivano progettati facendo particolare attenzione all'uso delle risorse disponibili, le memorie
erano di capacità limitate, costose e bisognava usarle con parsimonia. Gli applicativi erano strutturati in
modo da ottimizzarne l'uso.
Oggi disponiamo di grandi capacità di calcolo e memoria a basso costo, perciò a volte si trascurano fattori di performance per concentrarsi solo sul numero di funzionalità del software, così il volume dell'applicazione cresce in modo indiscriminato.
È anche vero che tale antipattern non è solo legato ad una visione "abbondante" del progettista, ma anche dalla necessità, ormai comune, di creare (ed avere) prodotti "all in one", sempre più richiesti dal mercato.
Sintomi
Come per tutti gli altri antipattern osservare con attenzione alcuni sintomi ci permette di riconoscerli e
successivamente eliminarli. Le sentinelle sono:
- Elevato numero di funzionalità, non sempre concordate col committente
- File d'installazione molto grandi
- Mancanza di una precisa pianificazione degli obiettivi da raggiungere
Cause
Le cause (principali) che portano all'introduzione di questo antipattern sono:
- Il desiderio di realizzare un prodotto completo, con ogni possibile funzionalità, cercando di prevedere arbitrariamente le esigenze dell'utente
- la necessità di offrire un prodotto "più ricco" dei diretti concorrenti
- la necessità di conformità con i diversi standard del settore. Basti pensare ai programmi dedicati alla masterizzazione, inizialmente avevano la sola necessità di salvare su cd, poi si sono aggiunti i dvd e blu-ray, in seguito si è pensato di offrire ulteriori risorse: creare etichette, cover, convertire dati, creare presentazioni interattive, copie di backup ecc. (ecco che inevitabilmente il software si "gonfia")
Conseguenze
Le conseguenze di tale antipattern sono:
- Utilizzo indiscriminato delle risorse
- Necessità (ormai frequente) di aggiornare l'hardware per soddisfare le esigenze del software e
sfruttarne al meglio le potenzialità. - Difficoltà di utilizzo su sistemi datati
- Rallentamenti e prolungamento dei tempi di risposta dell'applicazione
- In casi estremi, in cui l'applicazione risulta realmente troppo pesante, vi è l'esigenza di tonare alla fase di progettazione
- Abbandono da parte dell'utente finale, che preferisce cercare software alternativi
Soluzione
Per evitare questo antipattern si ricorre ad una soluzione efficiente e di semplice attuazione: plug-in e addon.
Il software viene realizzato prendendo in considerazione solo le funzionalità principali e più comuni, vengono in seguito realizzate una serie di "pacchetti" da scaricare, contenenti funzionalità aggiuntive. In tal modo il software risulta leggero e l'utente ha la possibilità di completarlo con le utilità di cui ha realmente bisogno.