La tecnologia evolve, cambia, si modifica in maniera costante e questo ha un impatto decisivo per i progetti software più importanti in cui gli sviluppi vengono effettuati per poter essere efficaci ed utili per diversi anni.
Ciò comporta il dover affrontare scelte( per es. usiamo Python o Java per i nostri microservizi? Sfruttiamo GitOps oppure implementiamo il nostro sistema di versioning e delivery?) che hanno un decisivo impatto sia sull’attuale team e processo di sviluppo sia su possibili scenari futuri.
Per poter effettuare scelte tecnologiche sensate, corrette e che riescono ad affrontare con successo tutti gli eventuali rischi progettuali come aggiornamenti tecnologici, sviluppatori che lasciano il progetto, cambiamenti dei requisiti, introduzioni di nuove normative, ecc.. occorre stabilire un processo strutturato che tiene conto:
- delle tecnologie attuali e future;
- di Standard Tecnologici interni;
- di Architectural Decision Record(ADR).
Scopriamo più nel dettaglio cosa si intende con ogni elemento.
Avere un Technology Radar
Online è diventato particolarmente noto lo strumento Technology Radar dell’azienda Thoughtworks che visualizza e mostra attraverso uno schema semplice ed immediato la maturità di differenti tecnologie, strumenti e metodologie che l’azienda potrebbe utilizzare e che usa.
In pratica Technology Radar è una rappresentazione visuale dell’attuale tecnologia in azienda e di quella desiderata.
Puoi utilizzare gli stessi concetti di Thoughtworks per costruire il tuo “Technology Radar” in cui stabilisci e definisci come ogni tecnologia faccia parte di un proprio livello di maturità nella tua azienda, cioè:
- Assess: in cui la tecnologia viene approfondità e valutata. Di solito il livello di Assess termina con un Proof of Concept(PoC) in modo da definire Pro e Contro della tecnologia valutata;
- Trial: quando il livello di Assess produce i risultati auspicati la tecnologia entra in una fase di prova e viene utilizzata magari in produzione per un singolo Use Case;
- Adopt: superata la fase di Trial, puoi dichiarare la tecnologia come “adottata” vale a dire che è presente in azienda e qualsiasi team la può utilizzare;
- Hold: in questo livello invece rientrano le tecnologie non più in uso o che devono essere sostituite.
Questo strumento supporta i team di sviluppo permettendogli di conoscere quale tecnologia è possibile utilizzare per ogni progetto. Per aziende con più progetti avere questo tipo di informazione è strategico per evitare scelte emotive e legate al singolo sviluppatore e/o team.
Contattaci subito e senza impegno per implementare un Technlogy Radar.
Adottare Standard Tecnologici interni
La componente Technology Radar è una fotografia dell’utilizzo della tecnologia e del suo livello di adozione in azienda. Accanto a questo elemento è indispensabile costruire standard tecnologici di riferimento, vale a dire come implementiamo tale tecnologia nello sviluppo di tutti i giorni.
Ciò permette di stabilire pratiche di utilizzo consistenti e che si applicano trasversalmente ed in maniera omogenea su più progetti software. A titolo di esempio, dei possibili standard tecnologici interni potrebbero essere:
- assicurarsi che i log vengano archiviati sempre nel medesimo format e con le medesime tipologie di informazioni;
- stabilire delle convenzioni di utilizzo delle REST API e di come devono essere interrogate;
- verificare che il sistema di autenticazione abbia sempre le medesime caratteristiche di resilienza;
- assicurarsi che un determinato tipo di Quality Assurance sia applicato per ogni software.
Se vuoi avere un esempio strutturato di Standard Tecnologico puoi vedere quello di Zalando che stabilisce proprio come usare le REST API e gli Eventi, è disponibile al seguente link.
L’obiettivo di questi Standard Tecnlogici è quello di creare una struttura già organizzata, già con qualità garantita, già corretta e ben testata di default! Questo velocizza lo sviluppo e rende tutti i relativi processi più efficaci e sicuri.
Contattaci subito e senza impegno per realizzare Standard Tecnologici interni.
Adottare Architecture Decision Record(ADR)
Avevamo già parlato di ADR nell’articolo “Software report del 2022 e trend per il 2023” ed avevamo indicato che gli ADR rappresentano un modo per documentare le scelte architetturali e le ragioni che hanno portato ad effettuare tali scelte.
All’interno sono incluse informazioni come:
- il problema che viene risolto;
- le alternative che sono state prese in considerazione;
- la decisione presa;
- le ragioni dietro tale decisione.
Sono documenti immutabili e quando è necessaria una modifica ad un ADR se ne crea uno nuovo. L’ADR è diventata una componente essenziale e strategica di aziende come Amazon in AWS ( entrando nelle relativa Prescriptive Guidance) e Google nel suo Cloud( entrando nella sua documentazione).
Attraverso gli ADR, non solo si documentano le decisioni architetturali, ma anche si permette a qualsiasi team ed eventualmente a qualsiasi nuovo elemento di un team di essere consapevole delle scelte ed entrare subito nel progetto ed inoltre di evitare di perdere tempo in prendere decisioni che magari sono state già valutate e prese.
Contattaci subito e senza impegno per consulenza nelle scelte architetturali.
Glue Labs e le Architetture Tecnologiche
Abbiamo progettato ed implementato Architetture complesse in ambiente Offline, On-Premise e Cloud. Utilizziamo documentazione strutturata in ogni progetto. Grazie alle competenze specialistiche maturate in tantissimi settori e con numerosi Clienti ti forniamo assistenza, supporto e consulenza nella realizzazione di architetture scalabili e sicure con garanzia 12 mesi da qualsiasi bug. Contattaci subito e senza impegno per maggiori informazioni.