contratto di sviluppo software

In un progetto di sviluppo software, l’analisi preliminare e lo studio di fattibilità sono essenziali per comprendere a fondo il contesto operativo nel quale Committente e Sviluppatore sono chiamati a muoversi. L’esperienza insegna, del resto, che un approccio di tipo analitico e sistematico è fattore decisivo per la soluzione di problemi complessi che coinvolgano, al contempo, problematiche tecniche e giuridiche.

Il rapporto tra Committente e Sviluppatore prende il via, de facto, da un primo approccio di natura meramente discorsiva, con il quale, in linguaggio non tecnico, vengono espressi i requisiti essenziali dell’attività da intraprendere e gli obiettivi primari da raggiungere. Una sorta di “fase 0” di una più articolata attività di progettazione che deve riuscire a cristallizzare idee, fattori e aspettative (spesso soggettive) in un documento che sappia rendere evidenti (e oggettivi) fattori semantici, tecnologici, strategici ed economici del progetto, fissando al contempo le tempistiche per il conseguimento dell’obiettivo finale e di quelli intermedi.

Approccio strutturato vs. approccio iterativo

L’importanza degli studi di fattibilità preliminari è particolarmente evidente qualora si tenti di delineare un confine tra un approccio di tipo “strutturato” e un approccio “iterativo”, ovvero basato su una progressiva scoperta passo passo dei fattori che possono guidare verso una possibile soluzione, assumendosi però rischi di natura economica in termini di sostenibilità dell’operazione. È chiaro che l’approccio iterativo può corrispondere a una scelta delle parti ben precisa e motivata, soprattutto in ambito tecnologico, ove metodologie di derivazione Agile o Kanban impongono criteri di analisi da applicare in corso d’opera (quasi impossibili da individuare a priori).

È tuttavia necessario riflettere sull’importanza di un approccio strutturato (a priori e “by design”) in quei contesti e progetti in cui le expertise e le questioni di natura prettamente tecnica devono necessariamente coniugarsi con competenze di tipo giuridico e problematiche di natura legale. In questi casi, può risultare opportuno fissare alcune milestones (“punti di controllo o di arrivo intermedi”) per guidare il rapporto committente-sviluppatore secondo criteri di trasparenza, proponendo fin dalle fasi iniziali un GANTT operativo che fornisca costrutti visuali in relazione agli obiettivi da raggiungere, in grado di modellizzare in modo chiaro sia le fasi di sviluppo, sia la distribuzione temporale delle attività.

Analisi preliminare e studio di fattibilità

Con l’analisi preliminare, l’obiettivo è estrapolare elementi certi e univoci dai quali il progetto deve prendere il via, traducendoli – attraverso un linguaggio chiaro e comprensibile dalle parti del contratto – in elementi tecnici, depurati da qualunque aspetto interpretativo connotato di soggettività.

Ogni studio di fattibilità dovrebbe contenere:

  1. le caratteristiche funzionali, tecniche, gestionali, economico-finanziarie del lavoro da realizzare;
  2. l’analisi delle possibili alternative rispetto alla soluzione realizzativa individuata, anche in relazione a possibili criticità legali emerse nella fase di analisi preliminare,

con l’obiettivo di valutare il rapporto costi-benefici della possibile attività di produzione, sotto il profilo sia della fattibilità tecnologica del progetto (che accerti la sussistenza di idonei strumenti, soluzioni algoritmiche e architetturali, hardware, processi), sia della fattibilità economico-giuridica (anche, dunque, con riguardo alla compliance normativa).

Un case history da un contesto “misto” (cybersecurity)

La cybersecurity costituisce un ottimo stage per costruire una fase preliminare analitica basata sulle regole generali degli studi di fattibilità. Si tratta di uno scenario in cui tematiche spiccatamente tecniche incontrano aspetti prettamente giuridici, che permette a professionisti con competenze differenti di interagire in modo proficuo fin dalla fase di progettazione (“by design”).

Si parte, nella quasi totalità dei casi, da richieste del cliente basate su requisiti piuttosto generici (“dobbiamo adottare un sistema antintrusione efficace per evitare che … ”, “la rete operazionale non è protetta da …”, “hanno crittato i dati sul server e ora ci chiedono un riscatto: cosa possiamo fare?”, e così via).

La fase di traduzione “dal discorsivo all’oggettivo” diventa di assoluta importanza all’interno del GANTT progettuale.

La metodologia “by design” – ormai radicata anche nell’architettura normativa della protezione dati (cfr. art. 25 del GDPR) – presuppone un approccio proattivo alla sicurezza informatica. Del resto, gli attacchi informatici vanno inquadrati in termini di “quando si verificheranno” (when), piuttosto che “se si verificheranno” (if).

Uno studio preliminare – in tale contesto, piuttosto articolato in considerazione del fatto che il campo di azione è molto ampio e non deterministico – porta le aziende a preparare i sistemi informativi e organizzativi a gestire in modo efficace, nel più breve tempo possibile, attacchi esterni e “incidenti” interni che coinvolgano dati personali (c.d. data breaches). È ormai imprescindibile, per qualunque operatore del mercato, garantire business continuity anche in situazioni di attacco, minimizzando impatti sulla produttività o sui servizi alla clientela.

In questo scenario, uno studio di fattibilità dovrebbe (pre)occuparsi di:

  • descrivere le caratteristiche funzionali dell’ambiente su cui è necessario implementare un framework di cyber security;
  • focalizzare le competenze degli operatori, ovvero aspetti gestionali e di processo dell’infrastruttura IT o OT in esame;
  • disegnare un modello azione/reazione per cui, proprio in fase di analisi preliminare, vengono mappate tutte le possibili tipologie di vulnerabilità possibili, assegnando ad ognuna di esse un fattore di probabilità;
  • valutare e cristallizzare l’entità economica dei danni cagionati da ipotetici attacchi di natura informatica perpetrati alla realtà a cui fa riferimento;
  • costruire una relazione di analisi con verifiche, dimostrazioni e conclusioni, sia per quanto riguarda gli aspetti prettamente tecnologici (natura degli attacchi e procedure di reazione), sia per quanto concerne le implicazioni giuridiche ( obblighi di notifica al Garante e di comunicazione agli interessati).