Posted on


I benchmarking consentono di misurare le prestazioni di un sistema, rispetto a delle variabili assolute come il tempo, la velocità, il denaro, la forza, etc. come e quando è veramente conveniente utilizzarli.


Analisi delle prestazioni di un sistema tramite i benchmarking

Che cosa sono i benchmarking


Il benchmarking (letteralmente misura delle prestazioni ) è un insieme di metodi che ci consentono di misurare le prestazioni di un sistema, o di un processo di un sistema, rispetto a delle variabili assolute come il tempo, la velocità, il denaro, la forza, etc..

Le misure ottenute con un benchmark ci consentono di capire come, all’interno di un sistema, le combinazioni delle varie parti possano riportare dei risultati efficienti. Quindi, i benchmark sono uno strumento per ottenere la migliore qualità possibile da un sistema o da un processo del sistema, dato che vengono forniti un insieme di dati certi sul sistema in base alle prestazioni reali, che sono sicuramente lontani da interpretazioni ed opinioni.


Importanza del benchmarking

Si dovrà esaminare, confrontare elo produrre benchmark, ogni volta che, di fronte all’analisi di un sistema, ci poniamo le seguenti domande:

  • Come riesco a migliorare le prestazioni per un determinato budget ?

  • Come riduco i costi per un determinato livello di prestazioni ?

  • Come ottengo il miglior rapporto fra prezzo e prestazioni entro un dato budget e una data richiesta di prestazioni?

Bisogna tenere presente che, minimizzare i costi senza garantire un minimo di prestazione, o massimizzare le prestazioni senza limite di costo, sono delle situazioni non realistiche. Quindi, in questo caso non vale nessun benchmark, meglio tentare una vincita o allenare la propria pazienza.

Il benchmarking, di per sé, rappresenta una perdita di tempo e soldi; ha solo senso quando è parte di un processo di decisione, per .esempio se si deve fare una scelta tra due o più alternative.

Di solito, un altro parametro nel processo di decisione è il costo, ma potrebbe anche essere la disponibilità, il servizio, la compatibilità, decisioni strategiche o altre caratteristiche misurabili e razionali di un sistema.

Altro fattore importante del benchmarking di un sistema è il valore che si da al concetto di efficienza del sistema. Infatti per un sistema efficienza potrebbe essere sinonimo di affidabilità, per un aitro di sicurezza o di velocità, etc. Per esempio per alcuni clienti di un concessionario di automobili, rispetto ad un dato modello di auto, il concetto di efficienza potrebbe essere la sua velocità, mentre per altri i bassi consumi che, come si sa, sono in contrapposizione alla velocità.

Quindi, come deve essere interpretato il valore di efficienza di un sistema ?

La soluzione consiste nel far ricadere il valore di efficienza nel dominio deile condizioni per cui si producono benchmark. Rendiamo chiaro il tutto con un esempio:

Cambiare A in B porta ad un miglioramento delle prestazionidi “x” nel sistema sotto tali condizioni

Se “x” appartiene all’insieme di condizioni, allora “x” è il nostro valore di efficienza.


Considerazioni da evitare nel benchmarking

Le seguenti considerazioni sono da evitare per qualsiasi tipo di benchmark in quanto non hanno senso:

1. Reputazione del costruttore o erogatore del servizio (non misurabile e senza senso);

2. Quote di mercato del costruttore o erogatore (senza senso e irrilevanti);

3. Parametri irrazionali (per esempio Ia superstizione o il pregiudizio: << compreresti una macchina rosa ? >>);

4. Valori percepiti (senza senso, non misurabili e irrazionali);

5. Presenza di una forte campagna pubblicitaria: questo è uno dei peggiori; nessuna massiccia campagna pubblicitaria potrà rimuovere un problema in un processo di un sistema, ma una nuova gestione elo progettazione lo farebbe;

6. Le opinioni del tipo <> sono solo quello: opinioni; fornite i fatti per favore!

Procedure di benchmarking e interpretazione dei risultati

Alcuni passi da seguire per le procedure di benchmarking e l’interpretazioni dei risultati:

  • prima di tutto, identificare i propri obiettivi nel bencimarking; cosa si sta esattamente tentando di testare? In che modo il processo di benchmarking ci aiuterà nel prendere una decisione? Quanto tempo e risorse si è intenzionati ad impiegare nei propri sforzi di benchmarking?
  • usare strumenti standard per eseguire l’analisi;
  • dare una completa descrizione del sistema;
  • provare a isolare una singola variabile; il benchmark comparativo è più informativo del benchmark “assoluto”; non lo ripeteremo mai abbastanza;
  • verificare i propri risultati; fare i propri benchmark più di una volta e verificare le variazioni nei risultati, se ce ne sono; variazioni inspiegate invalideranno i risultati;
  • se si pensa che i propri sforzi nel benchmarking produrrano informazioni utili, condividerle con la comunità in una maniera precisa e concisa;
  • per favore ci si dimentichi dei pregiudizi legati ai sistemi, vogliamo fatti non parole;

Le scelte di benchmarking

Prima di perdere tempo con qualsiasi benchmark va fatta una scelta di base tra benchmark sintetici e applicazioni di benchmark.

Benchmarch sintetici e applicazioni di benchmark

I benchmark sintetici sono spesso progettati per misurare le performance di una singola componente di un sistema, di solito impiegando questa componente alla sua massima capacità. La maggiore critica che può essere fatta ai benchmark sintetici, è che non rappresentano le prestazioni di un sistema nelle situazioni della vita reale. Un altro punto molto importante circa i benchmark sintetici è che, in teoria, loro ci possono dire qualcosa rispetto ad uno specifico aspetto del sistema che stiamo provando, indipendentemente da tutti gli altri aspetti. Un benchmark sintetico non fornisce certamente risultati differenti se si variano aspetti del sistema che non coinvolgono il componente specifico sottoposto a benchmark o se si sostituisce il componente specifico con uno della stessa categoria. Invece, la variazione di un componente strettamente in relazione con il componente osservato, causerebbe un impatto molto più grande rispetto al cambio del componente specifico (questo, ovviamente, dando per scontato che stiamo usando la stessa combinazione di condizioni, cosa che potrebbe causare una variazione ancora più grande). Riprendendo l’esempio dell’automobile, il cambio di marcia dalla 4° alla 5° non creerà notevoli discostamenti nei risultati e neppure la sostituzione del cambio stesso provocherebbe grandi variazioni: perché non provare a sostituire il motore ?

Tutto ciò è in relazione con il concetto stesso di efficienza di benchmark perché, cambiando il motore dell’auto

naturalmente l’insieme delle condizioni è cambiato totalmente.

Infine, uno degli errori più comuni consiste nel fare la media di alcuni benchmark sintetici e affermare che quella media è una buona rappresentazione della vita reale per ogni dato sistema.

Così la recente moda nel benchmarking è di scegliere applicazioni comuni ed usare queste per provare le prestazioni di un sistema completo. Questa serie di applicazioni va sotto il nome di applicazioni di benchmark. Ricapitolando, i benchmark sintetici sono validi fino a che si capiscono i loro obiettivi e le loro limitazioni. I benchmark applicativi rifletteranno meglio le prestazioni di un sistema nel suo insieme e nel suo utilizzo reale.

Comunque sia, i benchmark sintetici e le applicazioni di benchmark, tenendo in considerazione i loro limiti, sono degli ottimi strumenti di analisi per ottenere l’efficienza di un sistema.

Benchmark di basso livello e di alto livello

I benchmark di basso livello misureranno direttamente le prestazioni delle componenti strutturali del sistema. Questo può essere utile nel caso si vuole vedere con quali componenti è stato costruito un sistema.

Un altro uso dei benchmark di basso livello è di controllare che le componenti strutturali del sistema siano correttamente funzionanti e correttamente utilizzate per ogni specifica componente del sistema.

I benchmark di alto livello tengono maggiormente conto delle prestazioni della combinazione delle caratteristiche strutturali e funzionali del sistema per un aspetto specifico di un sistema, o anche le prestazioni di una singola applicazione rispetto alla combinazione di strutturelfunzioni del sistema. Per esempio le ruote di un auto su strade differenti.

Ovviamente tutti i benchmark di basso livello sono sintetici. I benchmark di alto livello possono essere sintetici o applicativi.

Utilizzo razionale del benchmarking

Per ogni azione di benchmarking dovrebbero sempre essere ritenuti validi i seguenti principi:

  • qualsiasi benchmark deve avere un tempo di inizio e di fine calcolabile;
  • tutte le specifiche del benchmark devono essere di libero accesso a tutti. Questo per ovvi motivi: bisogna che un benchmark sia riproducibile in qualsiasi parte del mondo sotto l’insieme delle stesse condizioni. Ciò inoltre aiuta a validare la qualità del valore di efficienza trovato con il benchmark;
  • i benchmark dovrebbero prevedere semplici indici che rispecchino le performance misurate;
  • si dovrebbe utilizzare un misto di benchmark sintetici e applicativi;
  • ogni benchmark sintetico dovrebbe impiegare il relativo sottosistema alla sua massima capacità;
  • i risultati dei benchmark sintetici non dovrebbero essere unificati in un unico indice, che non rispetta l’intera idea che c’è dietro i benchmark sintetici, con considerevole perdita di informazioni;
  • i benchmark applicativi dovrebbero consistere in processi eseguiti comunemente in un sistema.

Confrontare mele e arance

È più veloce un lumaca o una lepre ?

Cercate di confrontare sistemi più possibilmente identici analizzando la variazione di una singola componente del sistema per volta.

Informazioni incomplete

Cercate di non cadere nella solita trappola: ho sostituito il cambio con uno a 20 marce e adesso dall’ufficio a casa mia impiego 2 minuti, mentre prima ne impiegavo 10. È assurdo credere a ciò perché sarebbero necessarie molte altre informazioni. E se hanno costruito una strada nuova ?

Strumenti standard

Utilizzate strumenti standard per i benchmark che possano essere reperiti ed utilizzati da tutti i fruitori del sistema.

Dire che montando un reattore su un auto si è riusciti ad arrivare a 100000000000 kmlh e poco utile: quante persone che guiderannò quell’auto hanno la possibilità di montare su un reattore?

Conclusioni

Non mi aspetto grandi cose da questo documento. Volevo solo porre l’attenzione sui benchmark e sulle possibilità che essi offrono. Si tratta di una documentazione non completa ma spero che qualcuno possa prenderne spunto per utilizzarla e magari estenderla per qualcosa di utile.

Copyright

Il seguente documento è distribuito sotto licenza GPL 2.0 e successive variazioni.

Francesco di Biase

Esperto di sistemi informatici