Automatizzare per l'efficienza
Il carico di lavoro potrebbe avere flussi di lavoro con processi che coinvolgono membri del team che eseguono attività banali, ripetitive e dispendiose in termini di tempo che non richiedono l'intelletto umano. A seconda della frequenza, si potrebbe star dedicando molto tempo a queste attività, investendovi più tempo man mano che il carico di lavoro aumenta. Inoltre, questi processi sono spesso soggetti a errori a causa dell'input umano.
Grazie all'automazione, si risparmiano tempo, fatica e denaro ed è possibile evitare errori.
Scenario di esempio
Contoso University ha sviluppato un'applicazione Web, attualmente in produzione e ospitata in Azure, che fornisce servizi di formazione online per studenti e docenti di Contoso.
La soluzione tecnologica si basa su Servizio app di Azure, database SQL di Azure, Azure Active Directory, Azure Key Vault e Azure DevOps.
Automatizzare flussi
Valutare che tutti i flussi di lavoro corrispondano a criteri di livello di complessità, sforzo, frequenza, accuratezza, tempestività e durata. Automatizzare i flussi di lavoro in base a tale valutazione e classificare in ordine di priorità i flussi di lavoro con i rendimenti previsti più elevati. Rimuovere i flussi di lavoro ridondanti o incrementare il valore per giustificare l'intervento umano.
Adottando questo approccio, è possibile reinvestire la capacità del team in compiti di maggior valore e aumentare la produttività e la coerenza.
La creazione di un inventario dei flussi di lavoro garantisce l'automazione delle attività giuste. La rimozione di attività ridondanti riduce la complessità e gli errori.
Sfida di Contoso
- Il team di Contoso University sta cercando metodi per migliorare il processo operativo automatizzando le attività manuali ripetitive, dispendiose in termini di tempo, soggette a errori o a basso valore. Ciò potrebbe liberare tempo e risorse del team che possono essere dedicati a lavoro più strategico, migliorare la qualità e l'affidabilità del servizio e potenzialmente ridurre i costi.
Applicazione dell'approccio e risultati
- Per iniziare questa operazione, il team ha condotto un inventario delle attività operative manuali che potrebbero essere potenzialmente automatizzate. Successivamente, il team ha analizzato l'elenco delle attività usando i criteri suggeriti nella raccomandazione, ad esempio il giusto livello di complessità, sforzo, frequenza, accuratezza, tempestività e durata, per determinare i candidati principali per l'automazione. Allo stesso tempo, il team ha anche valutato se l'acquisizione di uno strumento di automazione o la creazione personalizzata dell'automazione all'interno dell'azienda sia una soluzione migliore a lungo termine.
- In seguito all'analisi, hanno deciso di concentrarsi sull'automazione delle attività correlate alla gestione degli account utente. La gestione degli account utente (studenti, docenti, personale) è un'attività comune, che include la creazione di nuovi account durante la registrazione degli studenti, la reimpostazione di password e l'eliminazione di account quando gli utenti lasciano l'università.
- Automatizzando molte delle attività correlate alla gestione degli account utente, il team ha liberato tempo sufficiente per cominciare a lavorare su altri miglioramenti di eccellenza operativa che erano stati rimandati in precedenza.
Progettare per l'automazione
Progettare i componenti del carico di lavoro per supportare le funzionalità di automazione.
Evitare situazioni in cui la mancanza di automazione nella progettazione di sistema promuova l'anti-modello di attività ripetitive, rallenti la crescita e cominci ad accumulare debito tecnico.
Sfida di Contoso
- L'applicazione ha un'interfaccia utente ricca e dinamica che usa molti elementi interattivi e animazioni. Il team di sviluppo non ha mai usato strumenti di test automatizzati dell'interfaccia utente poiché l'applicazione è stata originariamente sviluppata e si è basata esclusivamente su test manuali.
- Recentemente, il team ha lavorato al fine di automatizzare i test dell'interfaccia utente, ma sta affrontando molte difficoltà. Alcune pagine dell'interfaccia utente sono troppo dinamiche e imprevedibili e non esiste un modo coerente per identificare alcuni dei campi con cui i casi di test devono interagire.
Applicazione dell'approccio e risultati
- Il team ha deciso di migliorare l'implementazione dell'interfaccia utente per renderla più testabile e accessibile. I miglioramenti verranno apportati in modo incrementale, correggendo le pagine durante la creazione dei casi di test.
- Mentre lavorano su ciascuna pagina, i membri del team si accertano che ogni campo abbia un identificatore univoco che può essere usato dagli strumenti di automazione di test. Seguono anche le linee guida e gli standard di accessibilità, ad esempio l'uso di HTML semantico, etichette appropriate e spostamento tramite tastiera. In questo modo, l'interfaccia utente risulta più semplice da usare e da testare.
- Man mano che i test automatizzati vengono completati, vengono incorporati nel gruppo di test eseguito durante la compilazione giornaliera, con una conseguente riduzione significativa del tempo necessario per rilasciare nuove build in produzione, nonché miglioramenti della qualità del prodotto e risparmi sui costi durante lo sviluppo.
L'automazione deve essere ben progettata
Considerare tutta l'automazione come una dipendenza critica del carico di lavoro. Adattarsi alla crescita prevista del carico di lavoro. Gli strumenti di automazione sono parte integrante del carico di lavoro e devono rispettare i cinque pilastri di un Framework ben progettato.
Progettare il componente di automazione per resistere a rischi, ad esempio le minacce alla sicurezza. Con le procedure consigliate applicate, è possibile evitare lo sprawl dell'implementazione.
Se queste dipendenza è mantenuta funzionale e in sicurezza, il carico di lavoro continuerà a funzionare con una garanzia generale.
Sfida di Contoso
- Il carico di lavoro ha un ambiente dedicato a test di carico e prestazioni, con una configurazione che simula fedelmente la produzione. Per simulare più fedelmente le condizioni di produzione nell'ambiente, una nuova copia del database di produzione, con tutti i dati sensibili dell'utente resi anonimi e nascosti, viene caricata nell'ambiente di test ogni lunedì, quando tale ambiente viene ripristinato.
- Lo script di caricamento del database è stato scritto da un ex sviluppatore che non lo ha documentato correttamente o non ha seguito altre procedure consigliate. Lo script viene eseguito lentamente e non gestisce correttamente errori o interruzioni.
- Ultimamente, con il database di produzione in crescita, il tempo di esecuzione dello script è sempre più lungo e spesso ha esito negativo. Questi ritardi ed errori influiscono sulla capacità del team di eseguire test e causano ritardi nella pianificazione dello sviluppo.
Applicazione dell'approccio e risultati
- Il team decide che è giunto il momento di riscrivere questo strumento in modo che possa corrispondere alle procedure di sviluppo standard usate per sviluppare la codebase dell'applicazione principale. Il team seguirà le procedure di sviluppo consigliate accettate nel settore, inclusa la sicurezza appropriata e una gestione degli errori adeguata.
- Le prestazioni sono migliorate e la funzionalità è stata riprogettata in modo da produrre un tempo di esecuzione prevedibile, indipendentemente dalle dimensioni del set di dati di produzione.
- Trattando l'automazione con lo stesso rigore della codebase fondamentale dell'applicazione e applicando i principi e le raccomandazioni WAF, il team ne ha ottimizzato affidabilità, sicurezza, prestazioni, costi e operazioni.