Stabilire gli standard di sviluppo

Completato
Ottimizzare la produttività standardizzando le procedure di sviluppo, applicando controlli di qualità e monitorando i progressi e il successo attraverso la gestione sistematica dei cambiamenti.

Il team di sviluppo è responsabile della risoluzione dei problemi del carico di lavoro prima del rilascio con un attrito minimo. Tenere presente l'efficienza degli sviluppatori e ottimizzare i cicli di turnaround rapidi, dalla codifica ai risultati dei test. Implementare processi efficaci e di dimensioni corrette che pianificano e standardizzano le attività tecniche e guidano anche il consenso all'interno del team e degli stakeholder.

Scenario di esempio

Contoso Ticketing è una piccola startup che offre una soluzione SAAS line-of-business (LOB) per le aziende di medie dimensioni. L'onboarding di nuovi clienti è un processo complesso che richiede personalizzazioni dei prodotti e sviluppo personalizzato per l'integrazione con l'ambiente del cliente. Il team di implementazione usa Azure DevOps come piattaforma per la collaborazione e la distribuzione, ma non segue alcuna metodologia di sviluppo formale.

Adottare standard di settore per lo sviluppo

Usare una metodologia di sviluppo software standard del settore ottimizzata in modo appropriato per le esigenze del carico di lavoro e delle dimensioni del team. Mantenere un backlog condiviso tra tutti i ruoli.

L'adozione di una metodologia nota imposta il ritmo del progetto. Rimuove le ambiguità dei processi offrendo ai membri del team aspettative chiare e responsabilità.

Tenendo traccia di un elenco comune, le attività possono essere perfezionate e classificate in ordine di priorità con le procedure standard. Il progetto avrà maggiori probabilità di essere consegnato in tempo.

Le metodologie standard consentono di gestire i rischi. Con revisioni cardine granulari, gli sviluppatori possono risolvere potenziali problemi prima che diventino showtopper.

Sfida di Contoso

  • Il prodotto principale dell'azienda sta guadagnando popolarità e il team di integrazione sta lavorando a progetti di implementazione più simultanei che mai. Per tenere il passo con l'aumento del carico di lavoro, il team ha dovuto aumentare il proprio conteggio.
  • La crescita del team, abbinata alla mancanza di processi formali ha portato ad alcune sfide, ad esempio comunicazioni poco chiare tra i membri del team, riunioni casuali e non produttive, cicli di sviluppo poco frequenti e non pianificati. Molti dei progetti di onboarding sono ora in ritardo e la dirigenza dell'azienda ha chiesto al team di apportare le modifiche necessarie per correggere la situazione.

Applicazione dell'approccio e dei risultati

  • Per superare queste sfide, il team decide di adottare una metodologia scrum, un framework agile diffuso per lo sviluppo di software.
  • Scrum aiuterà il team a risolvere alcuni dei problemi riscontrati. Tra le altre cose, Scrum fornisce una struttura chiara e coerente per il processo di sviluppo, con ruoli, eventi, artefatti e regole predefiniti. Un backlog condiviso e una cadenza di brevi sprint di sviluppo aiutano il team a lavorare su una visione condivisa e a offrire valore ai clienti regolarmente e in modo affidabile.

Sposta a sinistra per i test

Avere processi di controllo della qualità che enfatizzano i test all'inizio del ciclo di vita dello sviluppo. Includere tutti gli artefatti per le procedure di test pianificate, inclusi i componenti dell'applicazione, l'infrastruttura e le operazioni del piano dati che fanno parte di una versione o di un aggiornamento delle funzionalità.

Considera gli artefatti non modificabili quando vengono promossi tramite ambienti, ottenendo fiducia ogni volta che passano attraverso un controllo di qualità.

Dove pratico, automatizzare i controlli di routine.

La garanzia di qualità garantisce che i requisiti funzionali e non funzionali siano stati soddisfatti con fiducia, con un impatto positivo sul cliente.

Sfida di Contoso

  • La strategia di test funzionale del team del carico di lavoro usa una combinazione di test automatizzati e manuali. Il loro approccio di test non riguarda tutti gli aspetti del sistema, ad esempio le prestazioni, la sicurezza e l'usabilità. Inoltre, non hanno un modo coerente per distribuire il codice in ambienti diversi in modo completamente automatizzato, che introduce variabilità e incertezza.
  • L'aumento del volume e della complessità delle attività di onboarding dei clienti ha amplificato le sfide della strategia di test, causando bug frequenti, rielaborazione e insoddisfazione dei clienti.

Applicazione dell'approccio e dei risultati

  • Il team del carico di lavoro si impegna per migliorare la strategia di test e aumentare la coerenza e la prevedibilità delle pipeline di distribuzione.
  • Iniziano creando piani di test per ogni funzionalità o personalizzazione in fase di sviluppo, coprendo sia i requisiti funzionali che non funzionali. Usano Azure DevOps per gestire i test case, i dati di test e i risultati dei test. Configurano controlli di qualità nelle pipeline di distribuzione che verificano la qualità del codice, la configurazione e la distribuzione prima di promuovere gli artefatti nell'ambiente successivo.
  • Dopo l'implementazione di questi miglioramenti, il team rileva una diminuzione del numero di distribuzioni non riuscite, nonché il numero di bug e eventi imprevisti nell'ambiente di produzione. Di conseguenza, qualità, velocità di consegna e soddisfazione dei clienti sono aumentati notevolmente.

Misurare l'efficienza dello sviluppo

Segnalare lo stato di avanzamento e le tendenze per misurare l'efficienza. Tenere traccia e segnalare le tendenze nei bug, gli aggiornamenti non riusciti, il tempo necessario per distribuire e inviare commenti e suggerimenti per migliorare le procedure di sviluppo.

Sfida di Contoso

  • Il team del carico di lavoro ha recentemente implementato diverse modifiche per migliorare la qualità e la prevedibilità dei processi di onboarding dei clienti. Tuttavia, l'azienda deve affrontare una sfida nel misurare e segnalare l'impatto di queste modifiche. Sfortunatamente, l'azienda non dispone di dati o metriche affidabili per mostrare quanto la qualità e la prevedibilità sono migliorate o quali modifiche hanno contribuito al miglioramento più di altre.
  • L'azienda ha bisogno di un modo per quantificare e comunicare i vantaggi dei suoi investimenti nel processo, in modo che possa classificare in ordine di priorità le risorse e gli sforzi in futuro.

Applicazione dell'approccio e dei risultati

  • Il team decide di iniziare a sfruttare le funzionalità di creazione di report in AzDO, che il team sta già usando, per poter quantificare i miglioramenti nel tempo e classificare in ordine di priorità l'allocazione delle risorse per gli investimenti futuri.
  • Iniziano con l'uso di diversi report predefiniti:
    • Report velocità
    • Diagrammi di flusso cumulativi
    • Tendenze di bug: il numero di bug creati, risolti e chiusi nel tempo e il modo in cui influiscono sulle metriche di qualità.
    • Statistiche di distribuzione: per quanto tempo è necessario distribuire il software dal codice all'ambiente di produzione e come viene confrontato con destinazioni e benchmark.
  • Il team prevede anche di sviluppare report personalizzati con dashboard e report di Power BI Analytics nel prossimo futuro.

Verificare le conoscenze

1.

Quale dei seguenti è un esempio di uno strumento standard del settore per la gestione di un backlog?

2.

Quale delle strategie seguenti può aiutare a migliorare la velocità e l'efficienza dello sviluppo?

3.

In che modo Contoso è riuscito a identificare quali delle modifiche recenti del processo sono state più efficaci per migliorare la qualità e l'efficienza?