Le Leggi di Murphy: Informatica

La legge di Murphy è un insieme di paradossi pseudo-scientifici a carattere ironico e caricaturale. Si possono idealmente riassumere nel primo assioma, che è in realtà la “Legge di Murphy” vera e propria, che ha dato il titolo a tutto il pensiero “murphologico”:
“Se qualcosa può andar male, andrà male.”
L’autore e stilatore della “summa” sulla “murphologia” è Arthur Bloch.

Informatica

  • Supposizione di Yoda – Sanderson: Se un qualsiasi programma gira sotto debugger, i suoi bug tendono a non manifestarsi.
  • Leggi per i programmatori di computer:
    1. Qualsiasi programma, quando funziona, è obsoleto.
    2. Qualsiasi programma costa di più e ci mette di più.
    3. Qualsiasi tempistica di sviluppo non piacerà al marketing.
    4. Se un programma è utile, dovrà essere cambiato.
    5. Se un programma è inutile, dovrà essere documentato.
    6. Ogni programma si espanderà fino ad occupare tutta la memoria disponibile.
    7. Il valore di un programma è proporzionale all’ingombro del suo output.
    8. La complessità di un programma si arresta dopo aver oltrepassato le capacità del programmatore.
    9. Il programma funzionerà sempre quando sei da solo, e mai quando lo farai vedere al capo.
    10. Il numero di bug in un programma è direttamente proporzionale al tasso alcolico del programmatore.
    11. Il tempo speso per la compilazione di un programma è direttamente proporzionale al numero di errori che si otterranno alla fine di tale operazione.
  • Principio della perversità della programmazione: C’è sempre un altro bug.
  • Postulati di Troutman:
    1. L’errore che produce il danno maggiore sarà scoperto soltanto dopo che il programma è stato usato per almeno sei mesi.
    2. Se il programma è stato concepito in modo tale che i dati introdotti siano rifiutati, ci sarà sempre un idiota abbastanza ingegnoso per trovare il metodo di farli passare.
  • Leggi di Gilb sull’inaffidabilità:
    1. I computer sono inaffidabili, ma gli uomini ancora di più.
    2. Qualsiasi sistema che dipende dall’affidabilità umana è inaffidabile.
    3. Gli errori che non si trovano hanno un’infinita varietà, mentre invece quelli che si trovano sono per definizione finiti.
    4. I costi degli investimenti sull’affidabilità aumenteranno fino a superare quelli degli eventuali errori, o finché qualcuno non insisterà che si faccia qualcosa di produttivo.
  • Leggi di Golub:
    1. Le idee fumose servono a evitare di stimare gli eventuali costi di una loro realizzazione.
    2. La realizzazione di un progetto mal pianificato richiede il triplo del tempo previsto; quella di un progetto pianificato con la massima attenzione solo il doppio.
  • Principio di Shaw: Fai un programma che anche un idiota può usare, e soltanto un idiota vorrà usarlo.
  • Postulato di Edwards: Se un test fallisce, c’è un problema nel programma. Se un test riesce, c’è un problema nel test.
  • Assioma: Se gli ingegneri costruissero come i programmatori programmano basterebbe il volo di un picchio a distruggere l’intera civiltà.
  • Legge di Jaruk:
    1. Se costa meno comprare un computer nuovo, insisteranno perché si ripari quello vecchio.
    2. Se costa meno riparare quello vecchio, vorranno comprare l’ultimo modello

L’immagine è tratta da Murphy’s Law Wall Calendar