Skip to main content

Se chiedete ai professionisti IT di descrivere le strategie delle loro aziende per la modernizzazione delle applicazioni, probabilmente sentirete risposte che ruotano attorno alla tecnologia.

Potrebbero dirvi come stanno migrando le app on-premise sul cloud, spostando app già nel cloud su nuovi tipi di servizi cloud, oppure effettuando il refactoring delle loro app per farle funzionare come microservizi.

In altre parole, quando molti pensano alla modernizzazione delle applicazioni, lo fanno in termini di cambiamento tecnologico.

Want more from The CTO Club?

Create a free account to finish this piece and join a community of CTOs and engineering leaders sharing real-world frameworks, tools, and insights for designing, deploying, and scaling AI-driven technology.

This field is for validation purposes and should be left unchanged.
Name*

Sono qui per dirvi che questo è l'approccio sbagliato alla modernizzazione delle applicazioni. Invece di modernizzare le tecnologie, le aziende devono davvero modernizzare i loro processi di sviluppo e distribuzione delle applicazioni.

Permettetemi di spiegare perché un approccio basato sui processi alla modernizzazione delle applicazioni è ciò a cui le organizzazioni devono aspirare, insieme a indicazioni pratiche su come modernizzare i processi di consegna delle applicazioni.

Modernizzazione delle Applicazioni: Una Storia Infinita

Un approccio tecnologico alla modernizzazione delle applicazioni non è sufficiente semplicemente perché le tecnologie cambiano costantemente. Le innovazioni tecniche che oggi rendono "moderna" la vostra app potrebbero farla sembrare una app legacy tra uno, tre o dieci anni.

Ad esempio, quando la modernizzazione delle applicazioni è diventata una parola d'ordine circa un decennio fa, le tecnologie cloud come Infrastructure-as-a-Service (IaaS) erano al centro di molte strategie di modernizzazione. All’epoca, IaaS rappresentava una svolta per molte organizzazioni abituate a gestire i workload on-premise. Il concetto di poter eseguire applicazioni su infrastruttura gestita da terzi e pagare solo per le risorse effettivamente consumate era rivoluzionario.

Oggi, naturalmente, IaaS sembra molto meno rivoluzionaria. Rimane utile, ma è diventata talmente ordinaria da non essere più al centro della discussione sulla modernizzazione delle applicazioni. Oggi si tende invece a parlare di tecnologie e concetti tecnici più recenti, come i container e le funzioni serverless.

Questo significa che se la vostra strategia di modernizzazione delle applicazioni si concentra sull’aggiornamento delle applicazioni per sfruttare la tecnologia più nuova e avanzata (qualunque essa sia al momento dell’avvio dell’iniziativa), prima o poi la vostra app smetterà di essere innovativa. Né eccellerà nell’offrire il massimo vantaggio competitivo alla vostra azienda. E in molti casi, non beneficerete delle protezioni di sicurezza più recenti, essenziali per rimanere un passo avanti rispetto alle minacce in evoluzione.

Un approccio più sano alla modernizzazione delle applicazioni è concentrarsi sulla modernizzazione dei processi. Nonostante i profondi cambiamenti nella tecnologia di distribuzione delle applicazioni degli ultimi dieci o vent’anni, i processi di sviluppo che meglio guidano l’innovazione e l’efficienza del software – come i concetti e le pratiche interrelati di agile, Continuous Integration/Continuous Delivery (CI/CD) e DevOps – sono rimasti più o meno invariati.

Per questo motivo, il vero obiettivo di ogni azienda dovrebbe essere la modernizzazione dei processi di consegna delle applicazioni per sfruttare le tecniche più innovative. Quando i vostri processi sono moderni, la vostra capacità di sfruttare le tecnologie più recenti e aggiornare rapidamente le applicazioni per adottare nuove tecnologie viene da sé.

Come migliorare il processo di modernizzazione delle applicazioni

La sfida per molte aziende, ovviamente, è riuscire effettivamente a modernizzare il processo di consegna del software in modi che rendano i cambiamenti più rapidi, semplici e sicuri. Quali processi specifici dovrebbero modificare e come possono superare gli ostacoli che probabilmente incontreranno lungo il percorso?

Per rispondere a queste domande, esploriamo alcune tattiche di modernizzazione dei processi che possono aiutare a trasformare il modo in cui le aziende "fanno" software, indipendentemente dalle tecnologie utilizzate.

Upgrade your inbox with more tech leadership wisdom for delivering better software and systems.

Upgrade your inbox with more tech leadership wisdom for delivering better software and systems.

This field is for validation purposes and should be left unchanged.
Name*

1. Individuate i processi problematici tramite l’analisi del flusso di valore

Il primo passo nella modernizzazione dei processi è capire quali processi hanno più necessità di essere cambiati. Per ottenere questa comprensione, è necessario ricorrere all’analisi del flusso di valore. L’analisi del flusso di valore offre una panoramica delle attività che avvengono durante la distribuzione del software e di quanto tempo richiede ciascuna – simile a come una revisione del budget aiuta i team a identificare i modi per migliorare i risultati finanziari affrontando prima le voci di spesa più grandi.

Quando eseguite un’analisi del flusso di valore della distribuzione del software, scoprite quali parti del processo di sviluppo delle applicazioni richiedono più tempo, o maggiore impegno manuale, oppure quali componenti della gestione dell’infrastruttura sono più soggette a errori.

Anche se quasi tutti i vostri processi probabilmente potrebbero essere migliorati in una certa misura, l'analisi del flusso di valore permette di focalizzarsi su quelli più maturi per essere potenziati. Inoltre, aiuta a identificare compiti o passaggi superflui che si possono eliminare per rendere la distribuzione più semplice, veloce e meno rischiosa.

2. Misurate la consegna del software

Analizzare le pratiche di consegna del software è più efficace quando si monitora sistematicamente e quantitativamente i propri processi. Potete farlo utilizzando framework come le metriche DORA di Google, che misurano l’efficienza dei processi di sviluppo e distribuzione del software esistenti.

Un approccio basato sulle metriche consente di monitorare i risultati della distribuzione del software in modo preciso. Di conseguenza, aiuta le aziende a valutare con precisione quanto miglioramento (o mancanza di esso) ottengono a seguito dei cambiamenti nei loro processi di distribuzione software.

3. Dichiara guerra ai processi manuali

Se la tua organizzazione è come la maggior parte, la tua analisi del flusso di valore metterà in evidenza un buon numero di processi che i tuoi team stanno ancora svolgendo manualmente. Automatizzarli ove possibile dovrebbe essere una priorità. L'automazione fa risparmiare tempo, riduce il rischio di errori e facilita distribuzioni più sicure.

Nella maggior parte dei casi, i processi manuali sono l'antitesi della modernizzazione delle applicazioni per due motivi. Il primo è che rallentano le attività e creano inefficienza. Il secondo è che le operazioni manuali tendono ad aumentare il rischio di errori poiché vi è la possibilità che una persona trascuri qualcosa di importante o commetta un errore durante la configurazione, lasciando la porta aperta a una violazione.

4. Rifattorizza processi e procedure di gestione

Così come puoi rifattorizzare un'applicazione monolitica ridefinendone l'architettura, puoi ridefinire i tuoi processi e procedure di gestione – come l'approccio allo sviluppo applicativo e all'amministrazione dei sistemi.

In molti casi, aumentare la velocità delle distribuzioni applicative e implementare deployment e delivery continui richiede la riscrittura dei processi di gestione delle modifiche software, perché gli approcci legacy, come quelli associati al modello a cascata, non sono scalabili. Essi non riescono a tenere il passo con i pipeline di continuous delivery dove nuovo codice viene pubblicato in produzione più volte alla settimana, o talvolta anche più frequentemente.

I processi lenti e manuali dovrebbero essere sostituiti, ove possibile, da processi automatizzati. Ad esempio, i test software potrebbero essere automatizzati per risparmiare tempo e migliorare la qualità (perché, troppo spesso, le approvazioni manuali sono meri passaggi formali che rallentano il processo di test senza aggiungere valore). Inoltre, processi troppo complessi potrebbero essere suddivisi in procedure più semplici e ridotte.

5. Cambia il tuo approccio mentale ai processi

Oltre a modificare i processi stessi, la modernizzazione delle applicazioni dovrebbe coinvolgere anche un cambio di mentalità generale nei confronti dei processi. Intendo dire che bisognerebbe spingere sviluppatori, amministratori IT e manager a utilizzare l'automazione come impostazione predefinita quando si implementano i processi.

Questo potrebbe sembrare superfluo visto che molti professionisti IT oggi parlano dell'importanza dell'automazione. Tuttavia, quando si tratta di implementare realmente i processi, tendono a preferire approcci manuali perché inizialmente sono più veloci e semplici da impostare. Per garantire il successo della modernizzazione applicativa a lungo termine, è necessario che i tuoi team adottino l'automazione come mezzo per risparmiare tempo e fatica e per ridurre i rischi nel lungo periodo, anche se ciò comporta più lavoro all'inizio.

Superare le sfide della modernizzazione applicativa

Nell'apportare i cambiamenti di processo appena descritti, le aziende spesso incontrano questioni come le seguenti:

  • Resistenza al cambiamento: Se processi manuali o inefficienti sono in uso da decenni e l'azienda ha continuato a funzionare, alcune persone potrebbero mettere in dubbio il valore del cambiamento.
  • Mancanza di risorse: Ripensare i processi richiede tempo ed energie. I reparti IT già sovraccarichi potrebbero essere riluttanti a dedicare risorse ai cambiamenti di processo.
  • Mancanza di leadership: Senza dirigenti o manager che guidino la modernizzazione dei processi, le iniziative rischiano di perdere slancio.

Queste sfide sono, in parte, inevitabili. Ma sono anche risolvibili. Parte della soluzione è iniziare in piccolo; invece di rivoluzionare i processi da un giorno all'altro, selezionane solo alcuni e scala gradualmente. Inoltre, è buona pratica iniziare solo con uno o due team.

Una volta che hai stabilito da dove iniziare, assicurati di misurare la distribuzione del software tramite le metriche, di eseguire un'analisi del flusso di valore per individuare i punti di miglioramento e di implementare i cambiamenti. Dopo aver migliorato la competenza dei team iniziali, i membri di quei team possono aiutare gli altri ad adottare processi e mentalità simili.

Le aziende dovrebbero anche nominare leader che supervisionino le iniziative di modernizzazione e delegare responsabilità per specifici aspetti del processo a personale con le competenze necessarie. Un'altra opzione è affidare questo lavoro a una società di sviluppo app mobile o a una società di sviluppo app iPad.

Un approccio moderno alla modernizzazione delle applicazioni

In definitiva, il successo di qualsiasi progetto di modernizzazione delle applicazioni dipende non solo dalle tecnologie che si sceglie di implementare, ma anche da come vengono implementate. Finché le aziende non modernizzano i processi per la creazione e l'aggiornamento del software, resteranno sempre indietro rispetto alla concorrenza.

Tuttavia, con processi efficienti, affidabili e sicuri in atto, le organizzazioni possono modernizzare le proprie applicazioni sfruttando le più recenti innovazioni tecnologiche ogni volta che si presentano nuove opportunità tecnologiche.

Iscriviti alla newsletter di The CTO Club per ulteriori consigli, suggerimenti e strumenti sulla modernizzazione delle applicazioni.