Tecnologia e competenze per digitalizzare il Paese: il modello di engineering di PagoPA

La storia, l’organizzazione, la cultura, i progetti e la tecnologia dell’ingegneria nella nostra Società

Francesco Persico
PagoPA SpA
10 min readJun 10, 2022

--

Original illustration by Doriana Marasoiu for PagoPA S.p.A.

Digitalizzare il Paese è anche una questione di metodo.

Con questo post apriamo una nuova sezione “tech” del blog di PagoPA S.p.A., dedicata a raccontare come approcciamo lo sviluppo della tecnologia nella nostra società.

Questa sezione nasce dall’esigenza di condividere il modo di lavorare dell’area tech di una società nata come una “start up” nella Pubblica Amministrazione in Italia, che in meno di tre anni è cresciuta e si è evoluta fino a divenire oggi un punto di riferimento per il processo di trasformazione digitale che sta attraversando il Paese.

Grazie a questa finestra sarà possibile seguire l’organizzazione, i progetti, la cultura, le ambizioni e la tecnologia su cui si struttura il lavoro del team engineering di PagoPA. Un modello basato sulle competenze, sull’approccio multidisciplinare, sulle tecnologie open source, che mette al centro le esigenze del cittadino e che ambisce a diventare un esempio virtuoso per tutto il settore del digitale in Italia, sia in ambito pubblico che privato.

Con questo post vi offriamo una prima panoramica sull’ingegneria in PagoPA attraverso:

  • un po’ di storia, dalla “start up” all’assetto attuale della struttura organizzativa della società;
  • una breve panoramica dei progetti a cui abbiamo lavorato e di quelli che abbiamo in cantiere;
  • una rassegna degli stack tecnologici con cui abbiamo costruito le nostre piattaforme;
  • il racconto di come ci prendiamo cura del nostro know-how.

Il ruolo dell’ingegneria in PagoPA

La nostra mission è quella di progettare e costruire le infrastrutture digitali dello Stato per diffondere servizi pubblici digitali sempre più facili da usare, sicuri e rispondenti ai bisogni dei cittadini. Lo facciamo coniugando interesse collettivo e logiche di mercato, forte dinamismo e cultura dell’inclusività, performance e accountability.

La mission di PagoPA S.p.A. dal sito della società

Come in tutte le organizzazioni che si occupano di costruire soluzioni tecnologiche complesse, anche in PagoPA il ruolo dell’ingegneria è fondamentale. Costruire piattaforme nazionali utilizzate da migliaia di pubbliche amministrazioni e milioni di cittadini richiede passione, dedizione, organizzazione e grandi conoscenze tecniche.

In particolare vi sono alcune premesse da tenere in considerazione:

  • L’innovazione dei casi d’uso affrontati quasi sempre scaturisce in requisiti funzionali complessi.
  • Trovare soluzioni adeguate mantenendo l’eccellenza dal punto di vista dell’esperienza utente richiede un’analisi minuziosa e un grande commitment fino dalla fase di ideazione dei prodotti.
  • La larga diffusione delle piattaforme non consente compromessi su tematiche come la scalabilità e la resilienza delle piattaforme e dei servizi.
  • La confidenzialità dei dati trattati comporta processi ad hoc per il loro trattamento e messa in sicurezza.

Lavorare nel team di ingegneria di PagoPA richiede quindi non solo capacità tecniche ma anche la voglia di formarsi a 360 gradi per contribuire alla mission aziendale, nella consapevolezza del particolare e stimolante contesto a cui i prodotti sono connessi: la sfida di digitalizzare il Paese e rendere la vita più semplice alle persone.

I nostri progetti

Lo scopo di PagoPA è quello di diffondere i servizi pubblici digitali attraverso lo sviluppo di progetti innovativi e la gestione di infrastrutture tecnologiche strategiche per accompagnare la modernizzazione della Pubblica Amministrazione e del Paese.

Tutti i progetti sviluppati hanno come obiettivo ultimo la volontà di semplificare la vita dei cittadini migliorando l’esperienza di interazione con la Pubblica Amministrazione. Per raggiungere questo obiettivo, il team di ingegneria lavora su diversi progetti e servizi, tra cui i principali ad oggi sono:

  • pagoPA, la piattaforma nazionale che permette ai cittadini di gestire qualsiasi tipo di pagamento (tributi, imposte, rette, ecc.) verso la Pubblica Amministrazione. Oggi la piattaforma consente in modo semplice il pagamento attraverso diversi canali come l’app IO, l’home e il physical banking, gli uffici postali e tutti gli esercenti convenzionati sul territorio italiano. Dal 2016 la piattaforma ha gestito oltre 500 milioni di transazioni, di cui quasi 140 milioni solo da gennaio a maggio 2022.
  • IO, l’app per i servizi pubblici, il punto di accesso unico per interagire con i servizi pubblici locali e nazionali. IO cambia il modo in cui sono erogati i servizi pubblici, mettendo il cittadino al centro della relazione con enti e istituzioni. Dal suo lancio nel 2018 il progetto è in continua evoluzione e veicola oltre 87mila servizi proposti da 7128 enti (dati aggiornati a giugno 2022), tra cui servizi “nativi digitali” innovativi come la Carta Giovani Nazionale. Dal punto di vista infrastrutturale, la particolare natura cloud first e serverless based consente all’app IO di servire in modo performante la user base, in continua crescita (29,5 milioni di download alla fine di maggio 2022).

Insieme a progetti già in produzione, PagoPA si sta occupando della progettazione e dello sviluppo di nuovi prodotti altrettanto innovativi, tra cui:

  • La Piattaforma Digitale Nazionale Dati (PDND): rende concreto il principio “once-only”, abilitando l’interoperabilità dei sistemi informativi e delle banche dati degli enti e dei gestori di servizi pubblici. Cittadini e imprese non dovranno più fornire le informazioni che la Pubblica Amministrazione già possiede, ogni volta che avranno necessità di accedere a un servizio. Questo avrà l’effetto principale di semplificare e velocizzare i tempi di fruizione dei servizi pubblici. Inoltre in futuro la PDND consentirà l’analisi dei big data prodotti dalle amministrazioni per l’elaborazione di politiche data-driven.
  • La Piattaforma Notifiche Digitali degli atti pubblici (PND): si aggiunge alle infrastrutture dell’ecosistema digitale della Pubblica Amministrazione per consentire la fruizione di un servizio pubblico. La PND ha l’obiettivo di semplificare e rendere certa la notifica degli atti amministrativi con valore legale verso cittadini e imprese, con un risparmio di tempo e costi. Questo sistema di notifica digitale permetterà agli enti pubblici di abbattere le spese legate all’attuale processo di notifica (stampa cartacea e spedizione degli atti) e al cittadino di accedere all’atto notificato in qualsiasi luogo e momento dal proprio dispositivo, riducendo i tempi di recapito.
  • La Piattaforma centrale per le iniziative di welfare: ultimo nato della famiglia, è una piattaforma digitale per l’erogazione di benefici economici concessi dalle amministrazioni pubbliche.

Tutti i nostri progetti si traducono in sfide ambiziose su cui il team di tecnologia è sempre messo a dura prova. Ma i risultati fino ad oggi hanno sempre ripagato ogni nostro sforzo.

Dalle origini all’organizzazione attuale

Sebbene ad oggi la situazione sia completamente differente, alle sue origini il team tecnologico di PagoPA non contava che una manciata di risorse sotto la guida di un Chief Innovation Officer e un Chief Technology Officer ed era completamente dedicato ai tre prodotti di cui la società si occupava: PDND (al tempo DAF – Data Analytics Framework), pagoPA e app IO. La quasi totalità dei membri era senior e con anni di esperienza alle spalle.

Photo by Christina @ wocintechchat.com on Unsplash

Con l’aumentare della diffusione della piattaforma pagoPA tra gli enti della Pubblica Amministrazione, l’uscita dalla fase beta della piattaforma IO e il suo imminente passaggio in produzione, era chiara l’esigenza di aumentare la capacità del team di ingegneria. Le prospettive di crescita già previste dalla roadmap e le continue richieste di integrazione con iniziative esterne rendevano la sfida ancor più interessante.

Fermandosi un attimo e provando a guardare indietro, ancora facciamo fatica a credere che la società sia riuscita a crescere così velocemente in così poco tempo. Da un piccolo numero di persone all’inizio del 2020, oggi il team di ingegneria può vantare oltre 80 specialisti tra Software Engineer, Technical Project Manager, Engineering Manager, Principal Engineer, Security Engineer, Cloud Architect, Technical Operation Specialists con un livello di seniority diversificato.

L’organizzazione attuale prevede il posizionamento di quasi tutte le funzioni di ingegneria nel Dipartimento di Tecnologia e Servizi, con la sola eccezione di uno spin-off nel Dipartimento di Business Development and Strategy, che si occupa dell’innovazione strategica.

All’interno del Dipartimento di Tecnologia e Servizi coesistono aree verticali dedicate ai prodotti e aree che agiscono in modo trasversale. Ogni area è suddivisa a sua volta in service line che si occupano di garantire il funzionamento, l’evoluzione, il monitoraggio e la gestione di rischi e criticità di un particolare settore di riferimento.

Più nello specifico, le aree che agiscono in modo trasversale sono:

  • Tecnologia;
  • Assistenza & Operations;
  • Sicurezza e IT Operations.

All’area Tecnologia afferiscono le due service line:

  • Sviluppo & Architettura, con la responsabilità di definire i processi di sviluppo qualitativo del software, di deploy e monitoraggio di tutto l’ecosistema tecnologico dell’azienda. Definisce le linee guida di sviluppo, di design review e le procedure di operational excellence di tutta l’azienda, nonché le linee guida per l’evoluzione architetturale.
  • Client & Front End, con la responsabilità di creare, sviluppare, evolvere, e manutenere le componenti software client integrate nei prodotti e servizi della società, al fine di garantire la più efficiente e rapida integrazione con le componenti di server e la raccolta dati richiesti.

È possibile consultare l’organizzazione completa del dipartimento con tutti i dettagli sul portale dedicato.

Per una azienda che come PagoPA mira ad eccellere dal punto di vista qualitativo, il processo di sviluppo e operatività è un fattore di importanza strategica. Con il crescere dell’azienda e il moltiplicarsi delle risorse, definire un processo quanto più lean ma allo stesso tempo completo per la creazione o l’evoluzione di funzioni, componenti, sistemi e piattaforme è stato e resta uno degli obiettivi primari.

Un’esigenza a cui rispondiamo anche grazie alla multidisciplinarietà dei nostri team. L’approccio di PagoPA, infatti, è quello di mettere al servizio di ogni sfida tutte le competenze necessarie per raggiungere un risultato d’eccellenza. Per questo motivo gli esperti di tecnologia, service design, legal, privacy, sicurezza, comunicazione collaborano ai diversi progetti sin dalla fase di ideazione, al fine di offrire ai cittadini la migliore esperienza in termini di fruibilità, accessibilità e compliance con le normative.

Stack tecnologici e technology radar

Il mondo dello sviluppo software è sicuramente uno tra i più dinamici. L’offerta di tecniche, piattaforme, linguaggi, tool e framework è così variegata e in continuo aggiornamento da rischiare di diventare un problema interno invece che un’opportunità.

Imporre uno stack tecnologico difficilmente risulta una scelta vincente in quanto limita due asset fondamentali quali la sperimentazione e l’innovazione.

La soluzione adottata da PagoPA è quella di definire internamente un technology radar, al fine di non imporre ma indirizzare le scelte tecnologiche e contemporaneamente favorire la sperimentazione di nuovi strumenti.

Tipicamente l’utilizzo di un technology radar porta alla divisione della tecnologia in categorie differenti finalizzate a dare una visione aggiornata dell’experience dell’organizzazione. In PagoPA attraverso un processo condiviso utilizziamo le seguenti categorie:

  • Adopt, per le tecnologie il cui utilizzo è fortemente da considerare perché considerate testate e mature.
  • Trial, ovvero tecnologie utilizzabili anche in produzione ma per contesti limitati finché ulteriori test non ne provano l’effettiva maturità.
  • Assess, per le tecnologie da sperimentare perché ritenute interessanti, ma da non utilizzare in produzione.
  • Hold, quando l’esperienza maturata con gli asset tecnologici, anche se solo di asses/trial, non è stata convincente o ci ha spinto ad adottare un’alternativa.

Storicamente e in modo spontaneo si sono affermati in PagoPA almeno due stack tecnologici.

Il primo, diffuso principalmente nella piattaforma pagoPA, è formato da:

  • Java come linguaggio di programmazione;
  • Spring/Spring Boot come framework;
  • Kubernetes per l’orchestrazione dei microservizi.

Il paradigma utilizzato è tipicamente object-oriented, cercando però di sfruttare quanto più possibile i costrutti funzionali introdotti a partire da Java 8.

La piattaforma IO invece utilizza uno stack completamente differente, le cui componenti sono:

  • TypeScript come linguaggio di programmazione sia front-end che back-end;
  • React Native come framework per lo sviluppo dell’applicazione mobile;
  • Express (principalmente) come framework per lo sviluppo dei microservizi di backend;
  • servizi quali Azure Function e App Service per ospitare il deploy delle applicazioni.

L’utilizzo spinto di librerie come fp-ts consentono lo sviluppo secondo un paradigma esclusivamente funzionale.

Le piattaforme sono progettate seguendo un approccio cloud native: il provisioning, l’aggiornamento e il versionamento delle risorse infrastrutturali e degli ambienti avviene utilizzando strumenti di IAC come Terraform (ne abbiamo parlato in un talk all’evento Microsoft Build).

Il ruolo di una società tecnologica pubblica come PagoPA è anche quello di contribuire attivamente alla diffusione di best practice e know-how. In pieno spirito di trasparenza (che è anche uno dei leadership principle dell’organizzazione) e di condivisione, tutto il codice prodotto per lo sviluppo delle nostre piattaforme è disponibile in modalità open source. Ad oggi l’organizzazione PagoPA su GitHub ospita quasi 400 repository con documentazione e codice in più di 60 linguaggi.

Apprendimento e confronto continuo

Le conoscenze tecniche sono uno degli asset strategici di ogni team di ingegneria. Prendersi cura e fare in modo che tali conoscenze si diffondano tra tutti i team per noi è un obiettivo mirato e progettato, che fa parte del DNA della nostra azienda.

Photo by Kaleidico on Unsplash

In PagoPA viene adottato un processo che consente di valorizzare le conoscenze, facilitare il confronto e favorire il processo innovativo. Una delle principali iniziative interne al riguardo sono i Friday Workshop. Ogni venerdì mattina il nostro Dipartimento dedica almeno un’ora a workshop interni, che hanno lo scopo di presentare nuove tecnologie e strumenti, condividere soluzioni a problemi complessi e presentare nuovi asset.

Chiunque può proporre un workshop seguendo le indicazioni presenti nell’handbook di engineering.

Alcuni esempi di workshop che si sono tenuti nel tempo:

  • SPID deep dive;
  • sviluppo orientato alle componenti in pratica: un esempio in Scala e Akka;
  • approfondimento sui Certificati Digitali.

Oltre ai workshop, ogni settimana organizziamo un Tech team sync: momenti di confronto in cui discutiamo dubbi, problemi e temi legati all’area tecnica. Questa riunione è particolarmente utile perché, oltre ad essere un’occasione di apprendimento e di crescita per ogni singolo membro dei team, permette di distribuire l’informazione e fa sì che vengano individuati e affrontati eventuali problemi e colli di bottiglia.

Infine, sempre in ottica di crescita continua delle competenze, tutti i membri del gruppo di ingegneria hanno accesso a una piattaforma di e-learning esterna che offre contenuti sempre aggiornati e consente di acquisire nuove skill.

--

--

Francesco Persico
PagoPA SpA

Software Engineering Manager @ PagoPA S.p.A. — Always looking for new challenges — Strongly believe in the power of knowledge!