Share via


Sviluppo di applicazioni innovative

Come illustrato in Democratizzare i dati con l'invenzione digitale, i dati alimentano la maggior parte delle innovazioni nell'economia digitale. Sulla base di tale analogia, le applicazioni sono le stazioni di rifornimento e l'infrastruttura necessaria per mettere il carburante nelle mani giuste.

In alcuni casi, i soli dati sono sufficienti per modificare e soddisfare le esigenze dei clienti. Più comunemente, tuttavia, le soluzioni per le esigenze dei clienti richiedono applicazioni per modellare i dati e creare un'esperienza. Le applicazioni innovative coinvolgono e interagiscono con l'utente, offrendo informazioni e linee guida. Questo articolo riepiloga diversi principi che consentono di trovare la soluzione giusta per lo sviluppo delle applicazioni, in base alle ipotesi da convalidare.

Diagramma che mostra gli elementi che consentono di creare un'applicazione che offre un'esperienza per i clienti che soddisfano le proprie esigenze.

Codice condiviso

I team che rispondono velocemente al feedback dei clienti, ai cambiamenti del mercato e alle opportunità in genere sono i più innovativi. Il primo principio delle applicazioni innovative è un elemento della mentalità orientata alla crescita: "Condividere il codice". La condivisione del codice attrae prospettive e contributi diversi e stimola l'innovazione. Di conseguenza, lo sviluppo di applicazioni deve iniziare con un repository di codice condiviso.

Uno strumento ampiamente adottato per la gestione dei repository di codice è GitHub, che consente di creare rapidamente un repository di codice condiviso. Un'alternativa è Microsoft Azure Repos, un servizio Azure DevOps che offre repository privati illimitati ospitati nel cloud per il progetto. Per il controllo della versione quando si usa Azure Repos, è possibile scegliere Git, che è un tipo distribuito, o il controllo della versione di Team Foundation, che è centralizzato. Per altre informazioni su Azure Repos, Git e il controllo della versione di Team Foundation, vedere la documentazione Azure Repos.

Sviluppatori non professionisti

Gli sviluppatori professionisti sono importanti per l'innovazione. Quando un'ipotesi risulta accurata su larga scala, possono stabilizzare la soluzione e prepararla per la scalabilità. Purtroppo, gli sviluppatori professionisti possono scarseggiare e lo sviluppo professionale può aumentare i costi e rallentare l'innovazione.

I citizen developer sono sviluppatori non professionisti che creano nuove applicazioni aziendali usando ambienti di sviluppo e runtime autorizzati dall'IT aziendale. L'uso di citizen developer può aiutare a ridimensionare le attività di sviluppo e ad accelerare i test delle ipotesi iniziali. Questa strategia è fattibile ed efficace quando le ipotesi iniziali possono essere convalidate usando strumenti come Power Apps per le interfacce dell'applicazione, AI Builder per processi e previsioni, Power Automate per i flussi di lavoro e Power BI per l'utilizzo dei dati.

Nota

Quando ci si affida a citizen developer per testare le ipotesi, è consigliabile avere anche sviluppatori professionisti che supportano, rivedano e guideranno il lavoro. I professionisti possono contribuire a sviluppare una progettazione solida che accelera il rendimento dell'innovazione. Coinvolgendo gli sviluppatori professionisti al momento giusto, è possibile realizzare transizioni più pulite in un secondo momento.

Esperienze intelligenti

Le esperienze intelligenti combinano la velocità e la scalabilità delle applicazioni Web moderne con l'intelligenza di servizi cognitivi e bot. Singolarmente, queste tecnologie potrebbero essere sufficienti per soddisfare le esigenze dei clienti. Se combinate correttamente, ampliano lo spettro delle esigenze che possono essere soddisfatte attraverso un'esperienza digitale, consentendo allo stesso tempo di contenere i costi di sviluppo delle applicazioni.

App Web moderne

Le applicazioni Web moderne possono essere il modo più rapido per soddisfare le esigenze dei clienti interni o esterni. Le esperienze che offrono possono coinvolgere i clienti rapidamente e consentire un'evoluzione rapida della soluzione.

Aggiunta di intelligenza

È sempre più semplice per gli sviluppatori professionisti e i citizen developer aggiungere funzionalità di Machine Learning e intelligenza artificiale alle applicazioni che consentono di soddisfare le esigenze del cliente e di creare un'esperienza interattiva. Ecco alcuni esempi di queste funzionalità:

  • Riconoscimento vocale
  • Testo di cui eseguire il riconoscimento vocale
  • Visione artificiale
  • Ricerca visiva
  • IA predittiva

Gli innovatori devono sapere di avere la possibilità di sfruttare tali funzionalità per creare un'esperienza interattiva e moderna.

Bot

Un bot è un'applicazione di intelligenza artificiale per conversazioni che offre agli utenti un'esperienza più simile al dialogo con una persona che alla gestione di un'applicazione per computer convenzionale. Gli utenti conversano con un bot usando testo, schede interattive e parlato. Un'interazione con bot può variare da una domanda e una risposta rapide, ad esempio la prenotazione di una cena, a una conversazione sofisticata che spiega in modo intelligente come accedere ai servizi.

I bot possono svolgere le stesse operazioni di altri tipi di software: leggere e scrivere file, usare database e API ed eseguire normali attività di calcolo. La peculiarità dei bot risiede nell'uso di meccanismi generalmente riservati alla comunicazione tra esseri umani. I bot sono molto simili alle moderne applicazioni Web: risiedono su Internet e usano le API per inviare e ricevere messaggi. Il contenuto di un bot varia notevolmente a seconda del tipo di bot. Il software bot moderno si basa su una serie di tecnologie e strumenti per fornire esperienze sempre più complesse in una gamma di piattaforme. Un bot semplice può tuttavia semplicemente ricevere un messaggio e inviarlo di nuovo all'utente con la necessità di pochissimo codice.

Soluzioni native del cloud

L'architettura nativa del cloud consente di adottare cambiamenti rapidi ed eseguire più facilmente applicazioni resilienti e scalabili. Le applicazioni native del cloud vengono in genere create usando contenitori, microservizi, servizi gestiti, funzioni serverless e programmazione basata su eventi. In genere, le soluzioni native del cloud usano il recapito continuo per ottenere un time-to-market più rapido.

Una soluzione nativa del cloud consente ai team di sviluppo centralizzati di mantenere il controllo della logica di business senza la necessità di soluzioni centralizzate monolitiche. Crea anche un ancoraggio per favorire la coerenza nell'input di citizen developer ed esperienze moderne. Infine, le soluzioni native del cloud offrono un acceleratore di innovazione consentendo a sviluppatori professionisti e citizen developer di innovare in modo sicuro e con un minimo di ostacoli.

Innovazione attraverso soluzioni esistenti

Molte ipotesi dei clienti possono derivare da una versione modernizzata di una soluzione esistente. Ciò può verificarsi quando la logica di business corrente riesce quasi a soddisfare le esigenze dei clienti.

La maggior parte delle forme di modernizzazione, incluso il refactoring, è inclusa nella metodologia di migrazione all'interno di Cloud Adoption Framework. Questa metodologia guida i team di adozione del cloud attraverso il processo di migrazione di un digital estate nel cloud. La guida alla migrazione di Azure offre un approccio semplificato alla stessa metodologia, adatta per un numero ridotto di carichi di lavoro o anche per una singola applicazione.

Dopo la migrazione e la modernizzazione di una soluzione, esistono diversi modi per creare nuove soluzioni applicative innovative per soddisfare le esigenze dei clienti. Ad esempio, i citizen developer possono testare le ipotesi o gli sviluppatori professionisti possono creare esperienze intelligenti o soluzioni native del cloud.

Estendere una soluzione esistente

L'estensione di una soluzione è una forma comune di modernizzazione. Può essere il percorso più veloce per l'innovazione quando si verificano le condizioni seguenti per l'ipotesi del cliente:

  • La logica di business esistente soddisfa o si avvicina alle esigenze dei clienti.
  • Un'esperienza migliorata, non una nuova, soddisfa al meglio le esigenze dei clienti.
  • La logica di business richiesta dalla soluzione MVP (Minimum Viable Product) è stata centralizzata, in genere usando una progettazione a più livelli, servizi Web, API o microservizi. Questo approccio consiste nel wrapping della soluzione esistente all'interno di una nuova esperienza ospitata nel cloud. In Azure questa soluzione probabilmente sarà attiva in Servizio app di Azure.

Ricompilare una soluzione esistente

Se una soluzione esistente soddisfa o si avvicina alle esigenze dei clienti, ma non può essere facilmente estesa, può essere necessario eseguirne il refactoring. In questo approccio viene eseguita la migrazione dell'applicazione nel cloud. Dopo la migrazione dell'applicazione, parti di essa vengono modificate o duplicate, ad esempio i servizi Web o i microservizi, che vengono distribuiti in parallelo con la soluzione esistente. La soluzione parallela basata su servizi può essere considerata come una soluzione estesa. Questa soluzione esegue semplicemente il wrapping della soluzione esistente con una nuova esperienza ospitata nel cloud. In Azure questa soluzione probabilmente sarà attiva in Servizio app di Azure.

Attenzione

Il refactoring o la riprogettazione delle soluzioni o la centralizzazione della logica di business può attivare rapidamente un picco tecnico dispendioso in termini di tempo anziché essere una fonte di valore per i clienti. Si tratta di un rischio per l'innovazione, soprattutto nelle prime fasi della convalida dell'ipotesi. Con un minimo di creatività nella progettazione di una soluzione, deve esserci un percorso a MVP che non richiede il refactoring delle soluzioni esistenti. È opportuno ritardare il refactoring fino a quando l'ipotesi iniziale non può essere convalidata su larga scala.

Innovazioni del modello operativo

Oltre agli approcci moderni e innovativi allo sviluppo delle applicazioni, sono state aggiunte innovazioni significative nelle operazioni delle applicazioni. Questi approcci hanno generato molti movimenti sul piano organizzativo. Uno dei più importanti è il modello operativo del centro di eccellenza cloud. Se la loro struttura è completa e matura, i team aziendali hanno la possibilità di offrire il proprio supporto operativo per una soluzione.

Il tipo di modello di gestione operativa self-service disponibile in un centro di eccellenza cloud consente controlli più rigorosi e iterazioni più rapide all'interno dell'ambiente della soluzione. Questi obiettivi vengono raggiunti trasferendo il controllo operativo e la responsabilità al team aziendale.

Se si sta tentando di ridimensionare o soddisfare la domanda globale di una soluzione esistente, questo approccio potrebbe essere sufficiente per convalidare un'ipotesi del cliente. Dopo la migrazione e la relativa modernizzazione di una soluzione, il team aziendale può ridimensionarla per testare un'ampia gamma di ipotesi. In genere si tratta di coorti di clienti che si preoccupano delle prestazioni, della distribuzione globale e di altre esigenze ostacolate dalle operazioni IT.

Ridurre il sovraccarico e la gestione

Più è necessaria la manutenzione all'interno di un'applicazione o soluzione innovativa, più lenta sarà l'iterazione di tale applicazione o soluzione. Ciò significa che è possibile accelerare l'innovazione riducendo l'impatto delle operazioni in base alla larghezza di banda disponibile.

Per prepararsi alle numerose iterazioni necessarie per offrire una soluzione innovativa, è importante pensare in anticipo. Ad esempio, ridurre al minimo gli oneri operativi nelle prime fasi del processo favorendo le opzioni serverless. In Azure le opzioni serverless delle applicazioni possono includere Servizio app di Azure o contenitori.

In parallelo, si considerino le opzioni serverless relative ai dati delle transazioni in Azure che possono a loro volta ridurre il sovraccarico. Il catalogo prodotti di Azure offre opzioni di database che ospitano i dati senza la necessità di una piattaforma dati completa.

Passaggi successivi

A seconda dell'ipotesi e della soluzione, i principi esposti in questo articolo possono essere di aiuto nella progettazione di applicazioni che soddisfano le definizioni MVP e coinvolgono gli utenti. Seguono i principi per supportare l'adozione, che offrono la possibilità di mettere a disposizione dei clienti l'applicazione e i dati in modo più rapido ed efficiente.