Nello scenario di evoluzione dei sistemi informativi pubblici il riuso delle applicazioni informatiche è considerato un tema prioritario. Infatti, il primario obiettivo del ministero per l’innovazione è l’accorciamento dei tempi e dei costi dei progetti per stimolare ulteriormente la diffusione dell’e-government negli Enti locali attraverso l’utilizzo di soluzioni tecnologiche già adottate da altri organismi, per la modernizzazione della PAL.
Nell’ambito di tale iniziativa, secondo quanto contemplato dal documento “L’e-government nelle Regioni e negli Enti locali: II fase di attuazione”, approvato dalla Conferenza Unificata Stato, Regioni, Città e Autonomie Locali il 27 novembre 2003, risultano di particolare importanza le linee d’azione finalizzate ad eliminare l’emarginazione dei piccoli e medi Comuni nell’attuazione dell’e-government attraverso l’attivazione di processi virtuosi di cooperazione interistiuzionale, tesi ad un’azione amministrativa più efficace con una razionalizzazione dell’uso delle risorse e la realizzazione di economie di scala.
La soluzione individuata è la realizzazione sul territorio di strutture di servizi sovra-comunali, i Centri di Servizi Territoriali (CST), che avviino e sostengano i processi di e-government, garantendo alle Amministrazioni partecipanti l’erogazione e la gestione di servizi, il continuo miglioramento delle performance e dei livelli di servizio, le risorse umane e tecnologiche necessarie. Obiettivi primari dei CST sono:
-
Garantire un supporto tecnologico organizzativo e gestionale agli enti di piccole e medie dimensioni al fine di consentire loro una operatività ed economie di scala paragonabili a quelle degli enti di medie e grandi dimensioni.
-
Assicurare la disponibilità di servizi adeguati nei territori a rischio di marginalità anche attraverso la diffusione ed il riuso delle soluzioni di e-government.
-
Operare in affiancamento continuo con le Amministrazioni locali, focalizzandosi sui fabbisogni del sistema locale di riferimento, seguendo criteri di omogeneità funzionale e considerando il livello di infrastrutture già presenti sul territorio.
-
Condividere e implementare un programma comune di sviluppo sostenibile.
Caratteristiche tecniche di un software riutilizzabile
Per riuso delle applicazioni informatiche si intende la possibilità di riutilizzare un prodotto o sue componenti realizzate da o per conto di una Amministrazione Pubblica nell’ambito di uno o più sistemi informativi di altre Amministrazioni.
I modelli di riuso adottabili sono stati definiti dal CNIPA e descritti nel documento “Linee guida per il riuso delle applicazioni informatiche nelle Amministrazioni pubbliche”. In particolare si fa riferimento a tre possibili modelli:
-
Riuso in cessione semplice: semplice cessione di un applicativo da un’amministrazione ad un’altra;
-
Riuso con gestione a carico del cedente: oltre a cedere l’applicativo, l’amministrazione proprietaria del software si fa carico della manutenzione dello stesso;
-
Riuso in facility management: oltre che della manutenzione del software, l’amministrazione cedente si fa carico della predisposizione e gestione dell’ambiente di esercizio per l’amministrazione che effettua il riuso;
-
Riuso in ASP: è una variante del caso precedente in cui un soggetto terzo si fa carico della manutenzione e dell’esercizio del software per più amministrazioni, che riconoscono il corrispettivo in relazione al servizio ricevuto.
Ovviamente in molti casi si potranno verificare processi di riuso basati su di un’integrazione e adattamento di modelli e modalità diverse, in base alle specificità dell’oggetto, del contesto e delle scelte dell’amministrazione cedente, del contesto (tecnologico ed organizzativo) dell’amministrazione ricevente e degli accordi che si instaureranno fra i partner, non solo per il periodo necessario al trasferimento vero e proprio, ma anche per le modalità di gestione e di evoluzione del sistema.
Ad ogni modo, in uno scenario così complesso è evidente che si potranno ottenere risultati soddisfacenti solo nei casi in cui si riesca ad avere una forte motivazione e partecipazione ad iniziative di riuso da parte di tutti gli attori potenziali.
Per tale motivo la realizzazione di un progetto di riuso dovrà coinvolge sia aspetti metodologici che tecnologici. I primi hanno come obiettivo l’individuazione delle fasi caratteristiche del progetto, con particolare attenzione alle attività di divulgazione, supporto e training. I secondi saranno principalmente focalizzati sulla qualità del software prodotto, in particolare dal punto di vista della flessibilità dell’applicazione ovvero della sua adattabilità alle esigenze specifiche delle diverse amministrazioni.
Focalizzando l’attenzione nell’ambito dell’e-government, per impostare una progettazione orientata al riuso, si possono identificare alcune domande chiave alle quali è necessario dare risposte adeguate:
-
Come analizzare, realizzare, documentare, testare, mantenere e fare evolvere un software di qualità ed altamente riusabile?
-
Quali sono le forme migliori di licenza e le modalità di distribuzione del prodotto che ne facilitino il riuso?
-
Qual è il modello di business adatto come guida per l’ideazione, progettazione, realizzazione, diffusione e gestione (manutenzione ordinaria ed evolutiva)?
Data la complessità di molti ambiti di intervento e di procedimenti della pubblica amministrazione, non si possono identificare risposte che vadano bene per tutte le situazioni proprio perché non si può separare l’impostazione metodologica e tecnologica da un’accurata analisi organizzativa, strategica del contesto e dei rapporti fra committente e sviluppatore che caratterizzano ogni realizzazione di componenti software.
Va anche considerato che, soprattutto se si prendono in esame progetti complessi, non si può limitare il campo d’indagine alla sola “applicazione finale”, ma va considerato l’intero stack tecnologico che può rappresentare un elemento cruciale per le possibilità di riuso delle componenti oggetto di interesse. Senza voler entrare in un eccessivo livello di dettaglio, si possono identificare alcuni macro-livelli di un ambiente software. Tralasciando le componenti hardware, si hanno diversi livelli logico-applicativi:
-
sistemi operativi di base;
-
middleware (all’interno di questa categoria rientrano application server, strumenti per l’integrazione, tool per la gestione dei sistemi, API, ecc);
-
applicazioni.
Ognuno di questi livelli può essere ulteriormente scomposto, così come possono essere identificati altri insiemi di componenti fondamentali per il funzionamento e lo sviluppo ulteriore del sistema e che, se ben progettati, potrebbero essere altamente riusabili. Ci si riferisce in particolare ai framework (sia per lo sviluppo di applicazioni che come veri e propri componenti del sistema) e alle librerie software (classi, procedure, ecc.).
Tra i fattori che abilitano il riuso del software hanno, inoltre, un ruolo significativo gli standard, sia per quanto riguarda le tecnologie per la realizzazione, implementazione ed evoluzione sia per quanto riguarda le metodologie e le modalità di progettazione e documentazione del software stesso, senza dimenticare un aspetto cruciale rappresentato dalla modellizzazione dei dati e dei relativi metadati.