Gold-plating

Qualche settimana fa non conoscevo questo termine.

Avete presente quel momento in cui si sta sviluppando qualcosa e il pensiero comincia a prendere la tangente: “Ma se succedesse anche questo allora c’è bisogno di quest’altro. A questo punto all’ora potrei implementare questa funzione!”. Oppure: “Aggiungiamo anche questa funzione perché magari può succedere che…”. Quando sentiamo queste frasi dette da qualcun altro o che girano per la nostra testa dovremmo immediatamente tirare il freno a mano. Quello che sta succedendo è, molto probabilmente, gold-plating. Stiamo facendo più del richiesto.

Quando sviluppiamo un software che sia su commessa o che sia per essere proposto nel mercato, dovremmo fare ogni sforzo possibile per implementare solo ed esclusivamente quelle funzioni che sono state analizzate e confermate in fasi precedenti allo sviluppo. Se stiamo affrontando un esercizio accademico, o per studio, allora ci può stare ma non esistono altre eccezioni.

I motivi?

  • Potremmo sviluppare qualcosa di non gradito;
  • Potremmo addentrarci nello sviluppo di qualcosa che, involontariamente, peggiora la situazione del progetto perché più complessa del previsto;
  • Si compromette la buona riuscita del progetto perché si sta dedicando tempo a qualcosa che  non era stato inserito nella pianificazione;
  • Potremmo scatenare effetti collaterali in altre parti del software a cui non abbiamo pensato;
  • Aumentano i costi;
  • Il committente non sta pagando per quelle righe di codice.

Il concetto del gold-plating non si applica solo a livello di progetto ma a tutti gli strati di una progettazione software:

  • Se stiamo sviluppando una classe potremmo inserire funzioni non strettamente di sua competenza;
  • In una interfaccia utente potremmo mettere troppe funzioni che ne complicano l’utilizzo;
  • In una tabella di un db potremmo mettere colonne che causano ridondanze che devono essere mantenute per niente.
  • Un metodo di una classe potrebbe voler fare troppe cose e diventare un monolite.

Come programmatori dovremmo sempre essere sull’attenti quando stiamo implementando qualcosa: meno scriviamo e meno danni facciamo, meno danni facciamo e più è alta la probabilità di fare qualcosa che funziona.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s