Skip to content

Commit

Permalink
Merge pull request #36 from italia/feat/responsabili-politici
Browse files Browse the repository at this point in the history
feat: add "responsabili politici" chapter
  • Loading branch information
astagi committed Jul 15, 2021
2 parents c9d746b + c2fcd58 commit c572248
Show file tree
Hide file tree
Showing 9 changed files with 359 additions and 5 deletions.
4 changes: 4 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@ services:
volumes:
- ./index.rst:/app/index.rst
- ./media:/app/media
- ./introduzione:/app/introduzione
- ./introduzione.rst:/app/introduzione.rst
- ./responsabili-politici:/app/responsabili-politici
- ./responsabili-politici.rst:/app/responsabili-politici.rst
- ./sviluppatori:/app/sviluppatori
- ./sviluppatori.rst:/app/sviluppatori.rst
- ./amministratori-pubblici:/app/amministratori-pubblici
Expand Down
11 changes: 6 additions & 5 deletions index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,12 @@ Italia delle buone pratiche di gestione di progetti e indicare strumenti che
possono essere utilizzati nello sviluppo di software open source.

.. toctree::

:maxdepth: 3
:caption: Indice dei contenuti
:numbered:
:maxdepth: 3

amministratori-pubblici.rst
sviluppatori.rst

introduzione.rst
responsabili-politici.rst
amministratori-pubblici.rst
sviluppatori.rst

79 changes: 79 additions & 0 deletions introduzione.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
Introduzione
============

`Developers Italia <https://developers.italia.it>`__ è la community
degli sviluppatori e delle sviluppatrici software che progettano e
realizzano i servizi pubblici digitali italiani.

Questa guida è una raccolta di buone esperienze utili a supportare le
organizzazioni pubbliche nello sviluppo e nella gestione del software e
delle politiche ad esso connesse. Chiunque sviluppi o gestisca software
per scopi pubblici può utilizzare questo documento per realizzare
servizi pubblici di alta qualità a un costo minore, il cui sviluppo
presenti meno rischi sia in termini operativi che di lock-in, nel
rispetto dei principi di *economicità e di efficienza, tutela degli
investimenti, riuso e neutralità tecnologica* (art. 68 del CAD).

In questa guida vogliamo fornire una panoramica, e ci soffermeremo in
particolare sui seguenti aspetti:

- migliorare le relazioni con i fornitori

- conoscere i modelli di business del software libero e capire come
aiutano la Pubblica Amministrazione

- le migliori tecniche per sviluppare software

- strumenti di gestione del software per migliorare i servizi pubblici

- sviluppare basi di codice che possono essere riutilizzate in contesti
diversi e gestite in modo collaborativo

- ridurre il debito tecnico e il tasso di fallimento del progetto

- avere un controllo più granulare e la capacità di prendere decisioni
sui propri sistemi IT

Protagoniste di questo documento sono le Pubbliche Amministrazioni e le
buone pratiche che abbiamo imparato insieme a loro nelle nostre attività
di supporto. Per questo motivo la guida è strutturata secondo capitoli
specifici dedicati proprio ai diversi profili professionali che
potrebbero averne bisogno: i responsabili politici, gli amministratori
pubblici e gli sviluppatori dei servizi pubblici.

Questa guida è dunque rivolta a tre categorie principali ed ogni
capitolo riflette questa molteplice natura con sezioni dedicate. :

- | **responsabili politici:** soggetti coinvolti nella definizione
delle politiche e delle regole che vengono applicate nello sviluppo
di servizi e soluzioni software per la pubblica amministrazione.
| Tendenzialmente sono soggetti meno interessati agli aspetti
tecnologici delle soluzioni realizzate, ma allo stesso tempo sono
coloro che definiscono le priorità e gli obiettivi dei progetti.
- **amministratori pubblici:** responsabili delle amministrazioni
pubbliche che gestiscono i progetti e garantiscono il rilascio in
termini di tempi e costi, si relazionano con gli stakeholder e sono
responsabili del servizio una volta rilasciato.

- **sviluppatori:** si occupano di creare il software libero che
implementa i servizi. Solitamente hanno profili molto tecnici e hanno
un impatto diretto sul rilascio dei servizi.

Lo abbiamo già detto, ma ci piace sottolinearlo nuovamente: il nostro
intento è quello di supportare concretamente ed operativamente le
Pubbliche Amministrazioni italiane a districarsi in un contesto nuovo e
complesso, offrendo soluzioni pratiche apprese sul campo invece che
liste di norme ed adempimenti. Queste soluzioni sono studiate per
massimizzare la semplicità e l’efficacia in termini di creazione di
ecosistemi aperti.

In altre parole, in questa guida abbiamo provato a fondere l’expertise e
la conoscenza di Open Source degli esperti del DTD con l’importante
esperienza e i bisogni di un amministratore pubblico.

.. toctree::
:maxdepth: 3
:caption: Indice dei contenuti

introduzione/il-software-della-pubblica-amministrazione.rst
49 changes: 49 additions & 0 deletions introduzione/il-software-della-pubblica-amministrazione.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
Il software della Pubblica Amministrazione
==========================================

A livello internazionale, negli ultimi anni, l’utilizzo di Free/Libre
and Open Source Software (FLOSS) si è molto sviluppato e in molti casi
ha sostituito il ricorso a soluzioni proprietarie chiuse. I vantaggi di
questo approccio sono sia di natura tecnica che di natura economica e
strategica. Anche a livello Europeo, l’attenzione al software libero si
è molto sviluppata e diverse iniziative sono nate in questo senso. Ad
esempio, la Commissione Europea promuove diversi programmi finalizzati a
favorire il riuso di soluzioni software e la loro interoperabilità (come
per esempio l’\ `iniziativa ISA² <https://ec.europa.eu/isa2/isa2_en>`__)
e promuove l’uso e la contribuzione a progetti open source al proprio
interno come testimonia la `strategia 2020-23 della
CE <https://ec.europa.eu/info/departments/informatics/open-source-software-strategy_en>`__.
Queste iniziative pongono al centro il risparmio per le Pubbliche
Amministrazioni europee, il miglioramento della qualità dei servizi, lo
sviluppo dell'economia del territorio e una maggiore indipendenza
geo-politica dai grandi fornitori di tecnologia extra europei.

Su quest’onda, diversi paesi (sia europei che non, come
`Francia <https://www.etalab.gouv.fr/>`__, `Regno
Unito <https://gds.blog.gov.uk/>`__ o gli `USA <http://code.gov/>`__)
hanno avviato delle politiche nazionali per favorire l’utilizzo
dell’open source nelle soluzioni per la pubblica amministrazione. Anche
l’Italia ha adottato una strategia simile. In particolare, il parlamento
ha approvato gli artt. 68 e 69 del `Codice dell’Amministrazione
Digitale <https://docs.italia.it/italia/piano-triennale-ict/codice-amministrazione-digitale-docs/it/v2017-12-13/>`__,
scritti per favorire il riuso di soluzioni software e l’utilizzo quasi
esclusivo di software a licenza aperta. In particolare, le "`Linee Guida
su acquisizione e riuso di software per le pubbliche
amministrazioni <https://docs.italia.it/italia/developers-italia/lg-acquisizione-e-riuso-software-per-pa-docs/it/stabile/index.html>`__"
(in attuazione degli articoli suddetti) si occupano di dettagliare un
ecosistema di migliori pratiche per allineare gli incentivi economici e
creare un ecosistema virtuoso per lo sviluppo del software pubblico.

Ricordiamo inoltre che il CAD impone alle pubbliche amministrazione di
adottare software aperto ogni qual volta sia possibile. L'eventuale non
adozione deve essere adeguatamente motivata da un atto formale
depositato e protocollato all'interno della "valutazione comparativa".

Il nuovo modello di riuso, introdotto dalla riforma del CAD del 2017,
semplifica ulteriormente i processi, consentendo di eliminare eventuali
accordi bilaterali e utilizzando in via esclusiva le cosiddette "licenze
aperte", rendendo di fatto il software pubblico un bene comune di tutto
il Paese. Grazie a questo modello, una amministrazione pubblica (ma
anche un cittadino o un ente del terzo settore) può beneficiare delle
soluzioni software già sviluppate da altre amministrazioni senza
affrontare nuovamente l’investimento da zero.
12 changes: 12 additions & 0 deletions responsabili-politici.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
Per i responsabili politici
===========================

.. toctree::
:maxdepth: 3
:caption: Indice dei contenuti

responsabili-politici/i-vantaggi-dell-open-source.rst
responsabili-politici/gestire-un-software-nel-suo-ciclo-di-vita.rst
responsabili-politici/contribuire-al-software-open-source-sviluppato-da-altri.rst
responsabili-politici/cosa-posso-fare.rst

Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
.. _contribuire-al-software-open-source-sviluppato-da-altri:

Contribuire al software open source sviluppato da altri
-------------------------------------------------------

Relazioni con i maintainer del software
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Per il nuovo modello di riuso, le interazioni tra amministrazione
cedente e amministrazione acquirente in una situazione di riutilizzo di
una soluzione software sono limitate e non obbligatorie. L’unico
contratto che regola, a monte, le possibilità di utilizzo, modifica e
rilascio del codice sono quelle descritte nella licenza applicata dal
titolare del software al momento del suo rilascio in open source.

Le relazioni con il titolare si possono avere nel momento in cui si
realizzano delle modifiche o degli sviluppi del software nel momento di
di rilasciarle nuovamente in open source. In questo caso, infatti, è
bene confrontarsi con il titolare per inserirsi nella roadmap di
sviluppo della soluzione probabilmente definita e governata dal
titolare.
27 changes: 27 additions & 0 deletions responsabili-politici/cosa-posso-fare.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
.. _cosa-posso-fare:

Cosa posso fare
---------------

Per sostenere l’innovazione descritta e aumentare l’utilizzo di
soluzioni open source, un policy maker può agire realizzando le seguenti
azioni:

a. Includendo espressamente l’open source nella strategia tecnologica
dei documenti di programmazione del suo ente. Il modello di riuso
deve essere visto non solo come un adempimento legislativo ma come il
punto di partenza per generare delle opportunità di innovazione per
il singolo ente e per l’intero sistema Paese.

b. Adottando le norme del CAD con una delibera per cui lo sviluppo di
software nel suo ente sia incentrato sull’open source, al fine di
ottenere i benefici descritti in questa guida.

c. Incentivando i tecnici a collaborare apertamente a progetti open
source di interesse per il suo ente.

d. Incentivando l’acquisizione di personale tecnico con competenze
legate all’open source.

e. Incentivando i funzionari ad utilizzare apertamente forum.italia.it
come strumento di confronto e condivisione.
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
.. _gestire-un-software-nel-suo-ciclo-di-vita:

Gestire un software nel suo ciclo di vita
-----------------------------------------

Accettare segnalazioni e contributi da terzi
============================================

Un progetto open source per sua natura è a disposizione di tutti. Il suo
codice sorgente può essere liberamente consultato anche dai cittadini e
dalle imprese, che a loro volta possono verificarlo, inviare
segnalazioni di malfunzionamenti o proporre miglioramenti anche in forma
di codice pronto all’uso. Questo modello cambia il tradizionale rapporto
tra amministrazione committente e fornitore perché introduce anche la
possibilità di contributi esterni o in generale la formazione di un
ecosistema di più soggetti che, collaborativamente, migliorano i servizi
pubblici a beneficio di tutti.

Il codice open source per la pubblica amministrazione, viene rilasciato
secondo lo schema di riuso descritto nelle “Linee guida su acquisizione
e riuso di software per le pubbliche amministrazioni”.

Secondo questo schema di riuso, una PA titolare di un software, lo deve
rilasciare come open source su un repository pubblico. Dopo il rilascio
è probabile, e anzi auspicabile, che qualche sviluppatore contribuisca
al codice con dei bug fix, degli enhancement o con nuove funzionalità.

Questo tipo di contributi, una volta esaminati e valutati da un punto di
vista architetturale rispetto alla struttura della soluzione e alla loro
qualità, è bene vengano accettati e uniti al codice del progetto
rilasciato in open source, nonché alla versione in uso.
130 changes: 130 additions & 0 deletions responsabili-politici/i-vantaggi-dell-open-source.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
I vantaggi dell’open source
---------------------------

Il software è un'infrastruttura pubblica. Nel 21° secolo, il software
può essere considerato un'infrastruttura pubblica strategica. Sempre più
non è solo uno strumento a supporto del lavoro degli esseri umani,, ma
in alcuni casi li sostituisce, applicando in modo automatico le
previsioni normative (quando ad esempio calcola una riduzione di tariffa
in base all’ISEE) o implementando algoritmi di Intelligenza Artificiale
(che ad esempio suggeriscono quali distretti necessitino di servizi
sociali o di rinforzi dei servizi di pubblica sicurezza).

Le politiche pubbliche definite democraticamente sono codificate in
norme, ovvero in “codice legale”, che oggi, oltre ad essere applicato da
operatori umani, viene tradotto in algoritmi e codice software ed
eseguito da macchine. Come è necessario, per il principio della
trasparenza amministrativa [1]_, che sia sempre possibile verificare
l’applicazione delle norme da parte degli amministratori pubblici, così
dev’essere possibile farlo per il software che sostituisce o collabora
al loro lavoro.

Il software dovrebbe pertanto essere soggetto ai principi di controllo e
governance democratici allo stesso modo del codice legale. L’open source
e in generale il software è al centro delle moderne istituzioni
pubbliche, modella il lavoro dei dipendenti pubblici e influenza la vita
di quasi tutti i residenti.

Utilizzare software non open source per gli enti pubblici, soprattutto
quando interviene nei processi di erogazione dei servizi pubblici, può
comportare una mancanza di trasparenza. La mancata trasparenza del
codice causa degli errori, anche nell’applicazione delle norme, che
possono essere corretti soltanto dai fornitori. Inoltre, non si può
avere certezza degli esiti che dipendono dalle implementazioni scelte.

Il software open source, potendo essere verificato da chiunque,
garantisce dall'inizio la trasparenza del codice e del suo rispetto
delle norme di cui supporta l’attuazione. Inoltre, mantiene in capo alla
pubblica amministrazione (o a un suo fornitore scelto di volta in volta)
la proprietà del codice e la facoltà di effettuare correzioni tempestive
qualora emergessero criticità.

Nell'ultimo decennio, le organizzazioni pubbliche che hanno acquisito
soluzioni software non open source sono state talvolta sorprese nello
scoprire che:

- non sono libere di modificare (autonomamente, o tramite terzi) il
loro software per riflettere modifiche nelle politiche e nei
regolamenti o per sfruttare nuove tecnologie,

- non hanno libero accesso ai dati pubblici che amministrano poiché
sono bloccati nei sistemi che usano,

- sono tenuti a pagare canoni di licenza in costante aumento.

Le istituzioni pubbliche, i dipendenti pubblici e i cittadini meritano
di meglio.

Riteniamo che sia preferibile che il software “pubblico” - quello che
interviene nell’applicazione delle politiche
pubbliche/nell’amministrazione della nostra società e nella gestione dei
dati pubblici - non sia una scatola nera, acquisita da società esterne
che tengono nascosta la logica su cui il loro software opera,
registrandola in basi di codice proprietarie e non interoperabile. I
governi europei hanno negli ultimi anni posto una particolare attenzione
nel garantirsi la sovranità tecnologica - che consente loro di impostare
e controllare il funzionamento del software pubblico, proprio come sono
in grado di impostare e controllare la politica che è legalmente
formulata nelle leggi. I cittadini e gli attori della società civile
hanno bisogno che questo software sia trasparente e responsabile. La
progettazione del software come infrastruttura civica essenziale
dovrebbe rispettare i diritti dei cittadini digitali.

Il software pubblico deve quindi essere:

- trasparente,

- responsabile,

- facilmente verificabile nel suo rispetto delle norme da parte degli
amministratori pubblici e dei cittadini

Il software deve riflettere i valori insiti nelle norme della società
che serve, ad esempio essendo inclusivo e non discriminatorio.

Per soddisfare questi requisiti, i sistemi software proprietari
attualmente utilizzati da organizzazioni pubbliche dovrebbero essere
validati e certificati in modo indipendente ad ogni modifica. Un
software open source creato per funzionare come infrastruttura pubblica
o con essa, insieme alle disposizioni per la sua produzione lo è
intrinsecamente.

Tra i principali vantaggi di riutilizzare il software tramite l’open
source, abbiamo:

- il miglioramento incrementale della qualità possibile grazie a una
costante evoluzione, anche collaborativa, del software aperto;

- la possibilità di basare le proprie soluzioni su altri software
aperti che spesso rappresentano lo stato dell’arte nel loro ambito

- la trasparenza, intrinseca nel software aperto, di cui tutti possono
vedere e leggere il codice sorgente;

- l’accountability del fornitore, il cui lavoro è pubblicamente
visibile;

- la formazione e l’accesso facilitato alla conoscenza;

- la sicurezza del software, che può venire corretto nei suoi problemi
da un ampio numero di contributori;

- le opportunità per PMI, software house e anche sviluppatori
indipendenti, che possono far conoscere le proprie capacità e
competenze, collaborando a o evolvendo software aperti.

Le licenze
~~~~~~~~~~

Il software è open source se il suo codice sorgente è pubblicato in un
repositorio aperto a tutti ed è corredato da una licenza aperta, che ne
permette il riutilizzo e la modifica anche da parte di altri soggetti
(pubblici o privati) anche per fini commerciali.

Per indicazioni circa le licenze, si può fare riferimento alle “Linee
guida su acquisizione e riuso di software per le pubbliche
amministrazioni”, `Allegato C: Guida alle licenze Open
Source <https://docs.italia.it/italia/developers-italia/lg-acquisizione-e-riuso-software-per-pa-docs/it/bozza/attachments/allegato-d-guida-alle-licenze-open-source.html>`__.

.. [1]
L. 241/1990 modificata da L 15/2005

1 comment on commit c572248

@vercel
Copy link

@vercel vercel bot commented on c572248 Jul 15, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.