by Mike Rosen

Settembre 2009

Le dieci cose che un architetto deve fare per creare valore

L’anno scorso, durante un mio viaggio in Italia, sono stato relatore in occasione di una conferenza dedicata al tema della Model driven architecture. L’evento si è svolto a Milano, in un palazzo che aveva più di 500 anni. Originariamente costruito a uso abitativo, fu poi adibito a deposito d’armi, ospedale, orfanotrofio, scuola e altro ancora fino ad arrivare ai giorni nostri per essere utilizzato come albergo e centro per conferenze.
Ricordo questo perché è un’utile testimonianza di come architetture ed edifici possano evolvere nel tempo, al contrario di ciò che invece accade nell’It, dove ciò che viene creato è pensato per continuare ad avere la stessa originaria funzione, nonostante i sistemi software siano soggetti a una continua e incessante evoluzione. Il palazzo di Milano ha conosciuto costanti trasformazioni, radicali cambiamenti infrastrutturali, come l’integrazione di impianti di riscaldamento e idraulico, connessioni elettriche e, più recentemente, digitali a larga banda. Non sarebbe stato più conveniente procedere a una demolizione e affrontare una ricostruzione integrale? Sembrerebbe di no. Il valore e la longevità della struttura di base hanno permesso di apportare continue modifiche senza che venisse messo in discussione l’impianto originario. E così sarà probabilmente per i prossimi 500 anni.

Evoluzione nel tempo

Una simile logica calata all’interno di una prospettiva software equivarrebbe a un’applicazione Cics, vecchia di 25 anni, trasformata, negli ultimi 3-5 anni, in un’applicazione J2ee strutturata su un’architettura Soa multilivello, sviluppata in ottica Ria (Rich Internet application). Ovviamente vi sono drastiche differenze nei due esempi citati. Ma in entrambi i casi si è in presenza di un sistema le cui fondamenta hanno un valore che può essere preservato e adattato nel tempo, un sistema che può sostenere profondi cambiamenti pur in presenza di radicali mutamenti dal punto di vista infrastrutturale. La resistenza, la capacità di sopravvivere al tempo, le dimensioni, le caratteristiche estetiche sono tutti fattori che hanno permesso al palazzo milanese di interpretare ruoli diversi. Per le applicazioni legacy, invece, quali sono i veri valori che ne permettono l’evoluzione nel tempo? L’infrastruttura, la piattaforma, l’interfaccia utente, il codice, i server? Probabilmente no. E allora possono essere le regole e la logica di business con cui sono state create? Oppure il modello dei dati utilizzato?
La sede della conferenza si è spostata poi a Roma, città in cui un palazzo di 500 anni può essere considerato recente. Dopo tutto il Pantheon è straordinariamente intatto dopo 2.000 anni, ma ancora più impressionante è il Colosseo che vanta anch’esso più di 2.000 anni. Grazie a un sofisticato sistema di ingressi e di uscite il Colosseo, progettato per ospitare dai 50mila agli 80mila spettatori, poteva essere svuotato in 10 minuti. Ancora adesso quel tipo di progetto è alla base degli attuali stadi e arene sportive. Il Colosseo, una costruzione straordinaria: a forma ellittica, 189 x 156 metri, a 4 o 5 livelli, un’altezza di 48 metri, con ciascun singolo segmento della struttura formato da porte create utilizzando pietre di travertino angolari, dal peso di svariate tonnellate, sostenute da una volta centrale. Un meccanismo, quest’ultimo, utilizzato ancora ai giorni nostri. Sì, non si può che rimanere impressionati da architetture, progetti e implementazione di simili edifici, soprattutto considerando il livello di tecnologia presente a quel tempo.
Quindi, cosa ci insegna la storia del Colosseo? In che modo potrebbe essere traslata ai sistemi moderni? Per prima cosa possiamo affermare che vi sono dei principi fondamentali che possono essere applicati a tutta la teoria di disegno di un sistema. Idee e schemi eccellenti non vengono cancellati dal tempo. La storia ha creato dei filtri in termini architetturali. Sopravvivono soltanto le strutture realmente valide, le altre crollano, per una ragione o per l’altra. Tutto questo ci porta ad affermare che con delle buone architetture, un buon disegno, una corretta pianificazione e capacità di esecuzione si possono ottenere risultati incredibili. Inoltre, la tecnologia è sì importante, ma la capacità di un sistema di fornire valore nel tempo, tra 10 o 20 anni, non dipende da essa.
E allora, se questo è quanto ci consente di ottenere l’architettura, come deve comportarsi un architetto per raggiungere questi obiettivi? La lista che segue va al cuore della questione: come gli architetti possono portare valore alla propria organizzazione.

Investigare – Agli architetti si chiede di risolvere problemi specifici. Andare al cuore del problema e sollecitare i requisiti è il primo passo da affrontare. Naturalmente questi sono spesso vaghi e sono presentati con un focus limitato a uno specifico dominio applicativo. Pertanto si devono esigere e richiedere caratteristiche e obiettivi specifici così come si deve riuscire a comprendere come quei requisiti si relazionano in un più ampio contesto aziendale.

Integrare – Il ruolo degli architetti è mettere in relazione un determinato progetto con un più ampio contesto aziendale. Uno dei maggiori vantaggi che un architetto può fornire all’azienda è integrare la soluzione, relativamente a un particolare progetto, con il dominio di business specifico che può prevedere standard di settore, schemi consolidati e best practice.

Analizzare – Un compito successivo consiste nell’analizzare le informazioni raccolte. L’analisi deve potere rispondere a tre fondamentali domande: 1) Quali sono gli elementi importanti del problema o della soluzione? 2) Quali sono le relazioni possibili? 3) Quali tipi di interazioni si possono immaginare per riuscire a creare un consistente valore?

Concettualizzare – Una volta creato uno schema di base complessivo della soluzione integrata, l’architetto ha necessità di creare una vision concettuale della soluzione. Tipicamente sarà nella forma di un diagramma, un disegno che mostra gli utenti o i canali più importanti in rapporto alla soluzione, i sistemi con cui deve interagire, le funzioni logiche e i dati che devono essere trattati o utilizzati e, infine, dovrà determinare lo scopo del progetto all’interno delle singole componenti del diagramma.

Astrazione – L’architetto deve inoltre riuscire a comunicare dettagli importanti a persone diverse. E’ quindi bene individuare cosa è importante e cosa non lo è, in modo da potere trasmettere il messaggio più efficace ai differenti portatori d’interesse dell’azienda.

Visualizzare – Si dice che un’immagine valga più di mille parole. Rappresentare i modelli architetturali attraverso disegni per ogni singolo livello di astrazione è sicuramente un metodo efficace.

Formalizzare – E’ ovvio che l’architettura non può basarsi soltanto su eleganti disegni. Deve essere sufficientemente specifica in modo che possa essere sostenuta una comunicazione che non dia adito ad ambiguità da parte di chi dovrà occuparsi dell’implementazione. Le specifiche non devono necessariamente corrispondere a un documento. Una visualizzazione nella forma di un modello formale preciso e completo, espressa attraverso standard di settore, è spesso più efficace.

Comunicare – In buona sostanza gli architetti svolgono un ruolo di comunicatori. Una volta stabilita e formalizzata la soluzione gli architetti devono sapere comunicare la soluzione così come l’importanza e il valore generato per gli stakeholder attraverso l’intera dimensione organizzativa.

Abilitare – Anche l’architettura concepita, formalizzata e comunicata nel modo migliore può non avere successo. Il valore di un’architettura è facilmente dimostrabile. Se con quell’architettura il lavoro di qualcuno viene semplificato, verrà utilizzata. Se invece introduce ulteriori passaggi e un allungamento dei tempi delle procedure, senza aggiungere alcun valore extra, sarà ignorata.

Assistere – Infine, una delle condizioni che possono dettare il successo di un’architettura è fornire una diretta assistenza ai progetti che prevedono di utilizzarla. Questa è la più importante attività cui si può dedicare un architetto per rendere reale l’architettura. Virtualmente tutte le architetture di successo devono prevedere consulenza ai progetti.

La lista non è completa, ma crediamo che possa stimolare le vostre riflessioni. Rispecchia il modo in cui lavorate o lavorano gli architetti presenti nella vostra organizzazione? Vi sono aspetti che non avete preso in considerazione? Dedicate sufficiente attenzione alle attività che possono creare effettivo valore per l’impresa?