Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Reinventare la ruota

Non riutilizzare componenti già fatti è tra i più classici errori di progettazione
Non riutilizzare componenti già fatti è tra i più classici errori di progettazione
Link copiato negli appunti

L'antipattern Reinvent the wheel (reinventare la ruota) è uno dei più comuni problemi dell'architettura del software (forse il più comune). Un'affermazione tipica di chi sta per incorre in questo antipattern è: «Ciò che stiamo per fare è unico».

Contesto

Il reinventare la ruota si basa, come indica l'espressione stessa, sullo sforzo di un team di sviluppare ciò che in realtà già esiste.

In molti gruppi di lavoro si ha l'errata convinzione che ciò che si sta realizzando è qualcosa di unico e mai fatto prima, tale "presunzione" nasce da un' errata concezione del proprio lavoro e del concetto di componente software. Infatti mentre è facile concepire un oggetto "materiale" come un qualcosa da poter riutilizzare, è ancora poco comune intendere un componente software come "riciclabile".

In realtà alla base non vi è solo una forma di "ignoranza" ma anche una poca conoscenza su ciò che già si è progettato e una assenza di documentazione che permetta di trovare in tempi utili componenti precedentemente sviluppati e quindi riutilizzabili.

Cause

Le cause che portano all'introduzione di questo antipattern sono:

  • Errato presupposto della necessità di partire da zero
  • Inefficiente documentazione su precedenti progetti
  • Mancanza di comunicazione all'interno del team
  • Mancanza di volontà nel cercare componenti già realizzati

Sintomi

I dettagli cha fanno da sentinella per riconoscere questo antipattern sono:

  • Notevole sforzo nel realizzare funzionalità già presenti su sistemi già in uso
  • Assenza di confronti con progetti precedenti
  • Replica di componenti simili

Conseguenze

  • Le conseguenze di tale antipattern sono:
    • Nuovi investimenti in termini di tempo e denaro per la realizzazione di entità già progettate
    • Ritardi nella consegna
    • Rischio di replicare in maniera inefficiente ciò che è già stato sviluppano in maniera corretta
    • Personale che lavora in momenti diversi per lo sviluppo del medesimo componente

    Soluzione

    Per evitare d'incorrere in questo antipattern vi sono diverse metodologie, una delle più semplici è
    sviluppata in due fasi:

    1. Prima di iniziare a progettare è bene analizzare i progetti precedenti, in modo particolare è opportuno verificare la presenza di casi d'uso simili (use case diagram). Tale studio è reso agevole dalla natura grafica delle informazioni che permette di ottenere risposte veloci.
    2. Una volta riscontrate similitudini si risale ai rispettivi piani architettonici per poi riutilizzarli. In
      alcuni casi è utile anche solo una semplice "familiarità", in quanto aver qualcosa di parzialmente
      pronto è sempre meglio che riprogettare tutto da zero.

    Il vantaggio di utilizzare qualcosa di già presente, oltre ad evitare tutti i problemi sopra elencati, ha un altro notevole pregio: significa introdurre un componente "solido" già collaudato da tempo su altri sistemi.

    Da un recente studio effettuato su oltre 100 software (basati su linguaggi OO) solo il 30% di questi si basano sul riuso dei componenti, il restante 70% si ostina a riprogettare "il vuoto".

    Ti consigliamo anche