Stabilire standard di sviluppo

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

Il team di sviluppo è responsabile di risolvere problemi del carico di lavoro prima del rilascio con conflitto minimo. Tenere presente l'efficienza degli sviluppatori e ottimizzare per cicli di turnaround rapidi, dalla programmazione ai risultati di test. Implementare processi efficaci e di dimensioni corrette che pianifichino e standardizzino le attività tecniche e che promuovano inoltre consenso all'interno del team e tra gli stakeholder.

Scenario di esempio

Contoso Ticketing è una piccola startup che offre una soluzione SAAS line-of-business (LOB) per aziende di medie dimensioni. L'onboarding di nuovi clienti è un processo complesso che richiede che la personalizzazione di prodotti e lo sviluppo personalizzato si integrino con l'ambiente del cliente. Il team di implementazione usa Azure DevOps come piattaforma per la collaborazione e la consegna, 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 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 detta il ritmo del progetto. Rimuove le ambiguità di processo, chiarificando le aspettative e le responsabilità dei membri del team.

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

Le metodologie standard sono utili nella gestione dei rischi. Con revisioni di attività cardine granulari, gli sviluppatori possono risolvere potenziali problemi prima che rappresentino un grave ostacolo.

Sfida di Contoso

  • Il prodotto principale dell'azienda sta guadagnando popolarità e il team di integrazione sta lavorando in simultanea a più progetti di implementazione che mai prima d'ora. Per stare al passo con l'aumento del carico di lavoro, il team ha dovuto ampliarsi.
  • La crescita del team, in aggiunta alla mancanza di processi formali, ha causato alcune difficoltà, ad esempio comunicazione poco chiara tra membri del team, meeting arbitrari e infruttuosi, cicli di sviluppo poco frequenti e non pianificati. Molti dei progetti di onboarding sono ora in ritardo e la dirigenza dell'azienda ha richiesto al team di apportare le modifiche necessarie per porre rimedio alla situazione.

Applicazione dell'approccio e risultati

  • Per superare queste difficoltà, 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 garantire qualità ai clienti regolarmente e in modo affidabile.

Spostare a sinistra per eseguire test

Avere processi di controllo qualità che enfatizzino l'esecuzione di test all'inizio del ciclo di vita di 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à.

Considerare gli artefatti come non modificabili quando vengono promossi tra ambienti, guadagnando fiducia ogni volta che superano una soglia di qualità.

Quando conveniente, automatizzare i controlli di routine.

Il controllo qualità garantisce che i requisiti funzionali e non funzionali siano stati soddisfatti con sicurezza, il che garantisce un impatto positivo sui clienti.

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 dispongono di un metodo coerente per distribuire il codice in ambienti diversi in modo completamente automatizzato, il che introduce instabilità e incertezza.
  • L'aumento del volume e della complessità delle attività di onboarding dei clienti ha amplificato le difficoltà della strategia di test, causando frequenti bug, rendendo necessarie revisioni e aumentando il livello di insoddisfazione dei clienti.

Applicazione dell'approccio e 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.
  • Per cominciare, creano piani di test per ogni funzionalità o personalizzazione in fase di sviluppo, comprendendo sia requisiti funzionali che non funzionali. Usano Azure DevOps per gestire i casi di test, i dati di test e i risultati dei test. Configurano soglie di qualità nelle pipeline di distribuzione che verificano la qualità del codice, la configurazione e la distribuzione prima di promuovere gli artefatti all'ambiente successivo.
  • Dopo l'implementazione di questi miglioramenti, il team rileva una diminuzione del numero di distribuzioni non riuscite, nonché del numero di bug e eventi imprevisti nell'ambiente di produzione. Di conseguenza, qualità, velocità di consegna e il livello di soddisfazione dei clienti sono aumentati notevolmente.

Misurare l'efficienza di sviluppo

Segnalare lo stato di avanzamento e le tendenze per misurare l'efficienza. Monitorare e segnalare tendenze in bug, aggiornamenti non riusciti, tempo necessario per la distribuzione 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 è in difficoltà 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à siano migliorate o quali modifiche abbiano contribuito maggiormente al miglioramento.
  • L'azienda ha bisogno di un metodo per quantificare e comunicare i vantaggi dei suoi investimenti di processo, in modo da poter classificare in ordine di priorità le proprie risorse e i propri sforzi in futuro.

Applicazione dell'approccio e risultati

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