Docs Italia beta

5 Coerenza con il Piano Triennale

Nel seguito, per ogni capitolo del Piano Triennale, si evidenziano le indicazioni/raccomandazioni che:

  • possono essere favorite, nella loro implementazione, dall’uso di metriche del software;
  • impattano sull’uso di metriche;
  • hanno determinato le scelte e le ipotesi di lavoro del Tavolo di lavoro.

Tabella 42: indicazioni del Piano Triennale e metriche

Indicazione del Piano Triennale Relazione con metriche e attività del Tavolo di lavoro
Capitolo 2 del PT – Modello strategico  

Il Modello strategico è stato pensato per superare l’approccio a “silos” e favorire la realizzazione di un vero e proprio sistema informativo della PA che:

agevoli il controllo delle spese relative alle tecnologie digitali della Pubblica amministrazione, integrando meccanismi per la misurazione dello stato di avanzamento delle attività programmate (ad es. tramite sistemi di project management condivisi).

Si premette che le misurazioni dello stato di avanzamento di un’attività rientrano nelle usuali pratiche di monitoraggio e gestione progettuale. Non si tratta dunque di ribadire questa indicazione già consolidata, bensì di suggerire strumenti innovativi che la rendano più agevole.

In questo senso, si ritiene che per ottenere misure oggettive dello stato d’avanzamento (ad esempio mediante EVA – Earned Value Analysis) possano essere utili anche metriche di prodotto, che sono oggetto di questo studio, con cui si misuri appunto il “valore attuale” del risultato di progetti d’innovazione e nello specifico di realizzazioni applicative.

È chiaro che l’uso suddetto delle metriche di prodotto presuppone un certo grado di iteratività nei progetti (es. momenti di verifica e di rilascio intermedio di artefatti che è possibile misurare), quindi è particolarmente adatto a metodologie agili, peraltro espressamente raccomandate nel Piano Triennale (vedi commenti al capitolo 13).

Occorre adottare un approccio architetturale basato sulla separazione tra back end e front end, con logiche aperte e standard pubblici che garantiscano accessibilità e massima interoperabilità di dati e servizi.

L’indicazione, che peraltro il P.T. riprende da precedenti linee guida, si applica certamente allo sviluppo di software applicativo, e impone chiaramente:

  • l’apertura delle soluzioni;
  • l’uso di standard pubblici;
  • l’accessibilità;
  • l’interoperabilità.

Tutti questi punti fanno parte delle assunzioni alla base delle attività del Tavolo di lavoro, che quindi risulta coerente con il P.T. Si ritiene inoltre che l’uso di metriche per le caratteristiche di accessibilità, interoperabilità, ecc. possa consentire di declinare questa e altre indicazioni del P.T. in maniera più definita e meno generica (ad esempio sostituendo il requisito “massima interoperabilità” con “interoperabilità pari a 100% sulla scala …”).

I servizi dovranno essere sempre disponibili su dispositivi mobili (approccio mobile first) e essere costruiti con architetture sicure, scalabili, altamente affidabili.

L’indicazione impone di definire, nello sviluppo applicativo, requisiti per l’usabilità (mobile first), sicurezza, prestazioni (scalabilità), affidabilità.

Vale quanto detto alla riga precedente sull’uso di metriche che rendano più efficace l’indicazione del P.T. (ad esempio che consentano di sostituire nei capitolati la generica dizione “altamente affidabili” con “affidabilità pari a xxx”)

Capitolo 4 del PT – Infrastrutture immateriali  
Si raccomanda la razionalizzazione e la valorizzazione del patrimonio informativo della P.A., nonché la messa a fattor comune delle componenti software che sono utili a tutte le P.A.

Per consentire la valorizzazione del patrimonio informativo (che comprende certamente il parco applicativo) delle P.A., è ovviamente necessario l’uso di metriche che determinino in maniera oggettiva il “valore” del software inteso come asset delle P.A.

Pertanto questa indicazione del P.T. è coerente con gli obiettivi del Tavolo di lavoro.

Anche per il riuso, appare necessario disporre di metriche che consentano di descrivere in modo oggettivo (in dimensioni e qualità) la componente software che viene offerta in riuso.

Si raccomanda di rendere disponibili come dati di tipo aperto quelli attraverso i quali si possa ottenere un forte impatto sulla società civile e sulle imprese, garantendo il rispetto di requisiti di qualità come definiti dallo standard ISO/IEC 25012 Data quality model. Questa indicazione, che fa riferimento agli standard ISO della famiglia SQUARE (ISO 250XX), appare coerente con l’impostazione del Tavolo di lavoro, che prende come principale riferimento proprio questo standard.
Capitolo 5 del PT - Modello di interoperabilità  
Gli standard tecnologici rispecchieranno le best practice nell’ambito dell’interoperabilità dei sistemi informativi e/o saranno aderenti a standard consolidati, anche in ambito EU. L’indicazione sull’uso di standard anche in ambito europeo è del tutto coerente con le impostazioni del Tavolo di lavoro.
Tutte le amministrazioni devono aderire agli standard tecnologici e ai profili di interoperabilità del nuovo modello di interoperabilità che consente di definire ed esporre Application Programming Interface (API) conformi. Valgono le considerazioni della riga precedente. La lettura del documento “linee guida passaggio nuovo modello interoperabilità” sembra rafforzare quanto detto sul privilegiare standard condivisi e best practice.

Le API dovranno prevedere:

  • tracciabilità delle diverse versioni, allo scopo di consentire evoluzioni non distruttive (versioning);
  • documentazione coordinata con la versione delle API (documentation);
  • gestione degli utilizzatori, in particolare autenticazione e autorizzazione (user management, authentication, authorization);
  • limitazioni di utilizzo collegate alle caratteristiche delle API stesse e della classe di utilizzatori (throttling);
  • tracciabilità delle richieste ricevute e del loro esito (logging e accounting), anche al fine della non ripudiabilità della comunicazione;
  • un adeguato livello di servizio in base alla tipologia del servizio fornito (SLA);
  • pubblicazione di metriche di utilizzo (analytics).

Le indicazioni che il P.T. fornisce sull’argomento API appaiono, allo stato, generiche. L’uso di metriche potrebbe renderle più efficaci e cogenti nella scrittura di capitolati per la realizzazione di API.

In particolare, le indicazioni del P.T. si potrebbero declinare meno genericamente utilizzando metriche di sicurezza, manutenibilità, usabilità.

Viceversa, le “metriche di utilizzo” cui si riferisce l’ultima frase non rientrano nel ambito del tavolo di lavoro.

AgID deve fornire un catalogo distribuito delle API e dei servizi disponibili con una interfaccia di accesso unica; deve verificare il rispetto delle regole del Modello di interoperabilità, quale condizione di accesso al catalogo; deve controllare con continuità il rispetto dei requisiti per l’iscrizione al catalogo.

Anche per le API si ritiene utile disporre di metriche di qualità, in modo:

  • da poterle descrivere meglio, nel catalogo di cui trattasi, ai possibili utilizzatori;
  • da poter verificare il rispetto di una soglia minima di qualità per l’inserimento delle API nel catalogo.
Capitolo 6 del PT – Ecosistemi  
Gli ecosistemi sostengono una visione orientata al cittadino e alle imprese, per la realizzazione di servizi che semplifichino l’interazione con le P.A., offrendo singoli punti di accesso per l’utente. Tali servizi devono essere semplici da usare, fondati sull’attenzione alla sicurezza e basati sull’interoperabilità di dati e applicazioni. Anche questa indicazione impone attenzione alle caratteristiche di usabilità, sicurezza e interoperabilità. Ancora una volta, tuttavia, senza metriche a supporto, queste indicazioni potrebbero restare generiche e inefficaci. Si ritiene che, per poter allineare i capitolati di gara a questa indicazione del P.T., l’uso di metriche sia indispensabile.
Occorre individuare standard tecnologici e specifiche tecniche per gli applicativi, quali, ad esempio, interfacce standard per specifiche API di settore, glossari specifici, profili di interoperabilità e best practice.

Anche questa indicazione rafforza gli assunti iniziali del tavolo di lavoro, in particolare l’attenzione agli standard e alle best practice.

Vale la pena anche osservare che l’architettura ad API ha impatti sul conteggio delle funzionalità di un’applicazione da realizzare, in quanto le funzionalità già offerte da un’API non rientrano nel perimetro del conteggio, ma va invece tenuto conto delle chiamate verso le API stesse.

Capitolo 7 del PT - Strumenti per la generazione e diffusione di servizi digitali  

Le P.A. potranno utilizzare i seguenti strumenti di sviluppo messi a disposizione da AgID:

  • un repository del codice sorgente, nel quale confluiranno le componenti open source utili alle P.A. e alla community;
  • il catalogo delle API;
  • documentazione tecnica.

Si ritiene che il repository del codice sorgente debba fornire, nella descrizione dei componenti, anche misure oggettive delle caratteristiche degli stessi, e pertanto debbano essere utilizzate metriche. Ad esempio, oltre la descrizione testuale di un componente, si dovrà riportare una misura della sua usabilità, della sua manutenibilità, della sua affidabilità, ecc.

Lo stesso discorso vale, come detto, per il catalogo delle API.

Capitolo 8 del PT - Sicurezza  
Si raccomandano verifiche della corretta implementazione e della conformità agli standard delle funzionalità di sicurezza delle componenti di sistema o di servizio delle P.A. In generale, ove si citano verifiche di conformità, l’uso di metriche appare opportuno.
Il CERT-PA offre servizi di analisi e indirizzo, finalizzati a supportare la definizione dei processi di gestione della sicurezza, lo sviluppo di metodologie, il disegno di processi e di metriche valutative per il governo della sicurezza. Questa è un’altra indicazione del P.T. ove si citano esplicitamente le metriche.
Capitolo 10 del PT – Gestione del cambiamento  

Nell’ambito degli obiettivi strategici vi è:

  • monitorare il processo di trasformazione ai fini del coordinamento del Piano e della eventuale rendicontazione europea attraverso la misurazione dello stato di avanzamento delle attività, anche utilizzando gli indicatori previsti nella “Strategia per la crescita digitale”.
Tra gli indicatori di avanzamento del P.T. si suggerisce di includere il “Livello d’uso delle metriche”, cioè un indicatore del livello di maturità delle P.A. nell’adozione delle metriche di prodotto dei software applicativi.
Capitolo 11 del PT – Razionalizzazione della spesa  
L’obiettivo di risparmio per il triennio 2016-2018 è fissato al 50% della spesa annuale media, relativa al triennio 2013-2015, per la gestione corrente di tutto il settore informatico.

Si ritiene che la riduzione della spesa corrente possa avvenire anche tramite passaggio di alcune attività da spese correnti a investimenti. In particolare, la manutenzione del software è, al momento, considerata un’attività di gestione e contabilizzata come spesa ricorrente.

L’uso di metriche potrebbe consentire invece di considerarla investimento. Ad esempio, utilizzando adeguate metriche per affidabilità/prestazione del software, gli interventi di manutenzione potrebbero essere visti come investimenti per aumentare il livello di tali caratteristiche e dunque il valore del software visto come asset dell’amministrazione.

Capitolo 12 del PT - Indicazioni per le Pubbliche amministrazioni  
Si prevedono attività di adeguamento e realizzazione di applicazioni che necessitano di funzionalità offerte dalle piattaforme abilitanti.

Le attività di adeguamento di applicazioni software, al momento, sono usualmente inquadrate come manutenzione adeguativa e pagate a giorni persona. Questo perché in genere non producono nuove funzionalità (quindi sono “a zero PF”).

La disponibilità di metriche oggettive per, ad esempio, sicurezza o manutenibilità consentirebbe di considerare queste attività come investimenti, nel senso che si potrebbe misurare il risultato, vale a dire l’innalzamento delle caratteristiche non funzionali delle applicazioni oggetto dell’adeguamento (e pagarle sulla base del risultato piuttosto che remunerando semplicemente le giornate erogate).

Le P.A. provvedono alla verifica dello stato di aggiornamento dei propri software rispetto a vulnerabilità note, secondo i principi del continuous monitoring raccomandati dalle best practice di sicurezza e ne gestiscono le vulnerabilità emerse. Come detto, ogni attività di verifica impone una o più metriche per essere oggettiva.
Capitolo 13 del PT - Principi per lo sviluppo di progetti digitali  
È necessario individuare gli obiettivi da raggiungere, in termini di funzionalità e processi, insieme alle metriche in grado di valutare il successo e il gradimento del progetto. Ad esempio, in un sistema di fatturazione elettronica, un obiettivo potrebbe essere quello di “avere un processo per cui non è mai necessario stampare fatture”. Quando possibile, si raccomanda di usare metriche oggettive piuttosto che dati ricavati da questionari o rilevazioni.

Le metriche citate in questa indicazione sono, appunto, metriche di progetto, mentre le metriche di cui si occupa il Tavolo di lavoro sono di prodotto.

Si tratta dunque di tematiche che riguardano più il monitoraggio dei progetti che lo sviluppo applicativo.

Si cita comunque il passaggio per l’attenzione data alle metriche di tipo oggettivo, di cui il PT raccomanda l’uso al posto di semplici questionari/rilevazioni.

Nella pianificazione del progetto occorre nominare un Technical Project Manager, ovvero una persona che abbia forti competenze sulle tecnologie che andranno ad essere utilizzate e sia in grado di verificare la qualità del lavoro. Per “verificare la qualità”, come detto, sono comunque necessarie metriche.

Occorre definire un prodotto minimo utilizzabile dall’utente e i passi incrementali e successivi che consegneranno una a una le funzionalità richieste, fino al completamento dei lavori, possibilmente utilizzando metodologie agili.

I corrispettivi dovuti ai fornitori verranno erogati solo ed esclusivamente al completamento e alla verifica di ciascuno di questi passi. Si raccomanda, inoltre, che il prodotto venga reso disponibile agli utenti in modalità sperimentale, senza aspettare il completamento di tutti i passi, al fine di individuare quanto prima eventuali problemi, criticità o fattori di rischio.

Non si ritiene che l’uso di metriche del software sia incompatibile con i modelli di sviluppo iterativi (es. metodologie agili), o che possa inficiare in qualche modo la loro diffusione nella P.A.

Occorre semmai suggerire alle P.A., operativamente, l’uso più efficace delle metriche del software in progetti che prevedano cicli di sviluppo iterativi. In letteratura tecnica l’argomento è stato già trattato approfonditamente e con esempi concreti (i cicli di sviluppo iterativi, ricordiamolo, non rappresentano certo una novità).

Si prova qui nel seguito a sintetizzare le indicazioni prevalenti riscontrate sull’argomento:

  • per quanto riguarda le metriche funzionali, e nello specifico i punti funzione IFPUG, in letteratura si suggerisce di trattare la prima iterazione come uno sviluppo (considerando nella stima/conteggio tutti gli elementi come ADD) e le successive iterazioni come interventi di manutenzione evolutiva (quindi conteggiando punti funzione ADD, CHG e DEL);
  • alcune iterazioni potrebbero avere contenuto funzionale nullo, vale a dire non produrre alcun punto funzione. Ad esempio, le iterazioni potrebbero includere correzioni di difetti riscontrati in iterazioni precedenti, oppure interventi migliorativi di caratteristiche non funzionali (usabilità, prestazioni, ecc.). In questi casi sono necessarie metriche non funzionali per quantificare gli interventi e consentire – secondo l’indicazione del P.T. – l’erogazione di un corrispettivo al fornitore.

Quindi, operativamente si suggerisce di procedere in questo modo:

ITERAZIONE 1:

Si contano i PF di sviluppo e metriche non funzionali sul software rilasciato. Il risultato del conteggio determina quanto occorre pagare al fornitore.

ITERAZIONE N-ESIMA:

Si contano i PF di MEV, + metriche che quantifichino gli interventi di manutenzione non evolutiva (misurando quanto si è alzata la qualità del software oggetto degli interventi). Il risultato del conteggio determina quanto occorre pagare al fornitore.

Non si condivide l’affermazione secondo cui effettuare misurazioni (funzionali e non funzionali) a ogni iterazione renderebbe “meno snello e veloce” e dunque inficerebbe i vantaggi del processo iterativo. Bisogna infatti considerare che a ogni iterazione si misura solo la porzione di software che è stata rilasciata, che per definizione è limitata e circoscritta. Misurare solo la porzione di software dovrebbe risultare molto meno laborioso di una misura dell’applicazione nel suo insieme.

Semmai potrebbero essere presi in considerazione, in cicli di sviluppo iterativi, strumenti automatici o metodologie semplificate per la stima e il conteggio della grandezza (funzionale e non) del software.

Occorre tener presente che l’uso delle metriche deve essere coerente e consistente. Occorre, all’inizio del progetto, scegliere le metriche adatte al caso specifico e, in seguito, avere l’accortezza di utilizzare sempre le stesse metriche al fine di ottenere, a ogni iterazione, risultati coerenti.

Si suggerisce infine di prevedere, a livello contrattuale, che per arrivare al completamento del prodotto, questi passi possano subire variazioni in corso d’opera, in base ai risultati ottenuti e alle metriche di successo misurate.

Sulla dizione “metriche di successo”, si rimanda alla prima riga relativa al capitolo 13 del PT.

Quanto all’indicazione “in base ai risultati ottenuti”, si ritiene che le metriche di prodotto siano utili per determinare il risultato in un progetto di sviluppo applicativo.

Il software realizzato deve essere strutturato in microservizi, ovvero in componenti che svolgono poche funzionalità ben definite (ad es. verifica codice fiscale, esistenza dell’utente nella base di dati), controllate tramite API e facilmente riutilizzabili, in modo da poter essere messe a disposizione di altre P.A. Vale quanto già detto a proposito del riuso e del catalogo delle API.
Utilizzare solide strategie di testing e qualificazione, ovvero utilizzare test di unità, test funzionali e fuzz test per verificare il codice ed effettuare stress test per verificare il carico che il prodotto sarà in grado di sostenere. Si consiglia inoltre l’utilizzo di strategie di analisi statica del codice, e l’auditing del risultato per affrontare i problemi relativi alla sicurezza. L’analisi statica del codice sorgente è alla base delle metriche proposte da CISQ-OMG (vedi §4.6).
Includere tutta la documentazione necessaria, ovvero includere documentazione sulla struttura dei dati utilizzati (campi, tabelle, ecc.), sul funzionamento e l’utilizzo del software, nonché documentazione sul funzionamento del prodotto, su come mantenerlo, aggiornarlo e monitorarlo. Questa indicazione è generica (chi decide qual è “tutta la documentazione necessaria”?), potrebbe risultare più efficace con l’uso di metriche di manutenibilità e usabilità che definiscano esattamente i livelli minimi accettabili per la documentazione tecnica e i manuali utente.
Allegato 2 del PT: Strumenti e risorse per l’attuazione del Piano  
Le amministrazioni che intendono eseguire appalti a elevato grado di innovazione devono definire l’oggetto dell’appalto privilegiando la specificazione della domanda (cioè del “problema” che s’intende affrontare) rispetto alla specificazione dell’offerta. Ciò allo scopo di dare adeguato spazio alla proposizione di offerte innovative. Questa indicazione sembra richiedere l’utilizzo di metriche di “qualità in uso” (in termini ISO), in generale di metriche che non dipendano da scelte implementative o da specifiche tecnologie. Ciò appare coerente con le assunzioni del Tavolo di lavoro.
torna all'inizio dei contenuti