Ecolab

Digital Runway: una Developer Experience per il colosso dell’acqua
Il progetto
Ecolab - Digital Runway (IDP / DevX)
Le tecnologie
azure icon backstage icon github icon

Il cliente

Ecolab Inc. è una società americana con sede a Saint Paul in Minnesota, USA. Sviluppa e offre servizi, tecnologie e sistemi specializzati nel trattamento, purificazione, pulizia e igiene dell’acqua in un’ampia varietà di applicazioni. Aiuta le organizzazioni, sia nei mercati privati sia in quelli pubblici, a trattare la loro acqua per renderla potabile e adatta all’uso nelle industrie del sanitario, della sicurezza legata all’horeca e del manifatturiero. Impiega 47.000 persone, registra un fatturato di quasi 15 miliardi di dollari e nel 2023 compirà 100 anni dalla fondazione.

L'obiettivo

Realizzare una Developer Experience d’impatto attraverso una Internal Developer Platform che potesse permettere la gestione di progetti company-wide disponendo di dashboard di status e integrando GitHub.

La sfida

La divisione IT di Ecolab aveva la necessità di realizzare una nuova piattaforma interna che permettesse di gestire i progetti di team a livello di azienda in modo più organico e condiviso. La richiesta più cruciale è, però, stata non di carattere puramente tecnico, bensì di User Experience: deve essere un ambiente che faccia venire voglia di utilizzarlo, comodo, facile e piacevole all’uso.

La soluzione

La prima domanda alla quale abbiamo voluto rispondere è stata: ma quali elementi identificano una grande DevX? Soprattutto quali elementi identificano una grande DevX per il Cliente specifico? Developer Experience, infatti, non significa scegliere un tool e mettergli una bella skin, si tratta di creare abitudini e ingaggio, aspetti complessi perché legati alla cultura aziendale consolidata. Era necessario individuare i triggers più interessanti per un target dev, quali skill improvements, il senso di sfida, innovazione e curiosità, senza dimenticare la passione per la customizzazione di comandi e spazi di lavoro. E senza dimenticare, d’altro canto, la necessità del business di ridurre gli elementi di distrazione che possono intervenire nel momento della ricerca iniziale di piattaforme varie, accessi, tool e tecnologie.

Diagramma di flusso che mostra il processo di design

Abbiamo, quindi, avviato il progetto con un’intensa fase di co-design, imprescindibile per meglio identificare le esigenze concrete dietro alla richiesta iniziale. Interviste al Cliente, oltre a tech assessment approfonditi ci hanno supportato con una serie di aspetti cruciali in un processo di prototipazione incrementale continua:
  • individuazione del flow di gestione progettuale e dei suoi maggiori punti di frizione
  • necessità di una gestione flessibile dei diversi status di progetto
  • esigenza di integrazione degli strumenti attuali (Github)
  • identificazione visiva delle informazioni essenziali in un unico colpo d'occhio
  • importanza della creazione di un senso di community che abbracci eventi e tech hackaton
  • una architettura informativa semplice e chiara per diversi tipi di ruoli ed utenti della piattaforma
  • l’importanza della ricerca interna all’ambiente
  • la centralità della documentazione
  • l’esistenza di un sentito problema di Information Overload

Diagramma che mostra l'integrazione di Azure Active Directory con la digital runway

Il risultato è stata la realizzazione di un prototipo che:
  • valorizzasse la fase di discovery iniziale da parte dello sviluppatore
  • rendesse i processi di lavorazione chiari e lampanti
  • rendesse ordinata e chiara la documentazione aiutando l'handover progettuale e la conoscenza condivisa dei team,
  • fosse un asset importante per l'assegnazione delle corrette tech skill di progetto
  • raccogliesse tutte le informazioni progettuali in un unico luogo condiviso dall'inizio alla fine del progetto
  • fornisse ai dev template facili, condivisi e veloci per la creazione di application in fase di sviluppo

Diagramma che mostra i flussi di lavoro github per i repository di soluzione e di infrastruttura

Questo è stato il punto di partenza della costruzione di Digital Runway, la Internal Developer Platform basata su Backstage. Le key features tecniche prevedevano:

  • L’avvio di un’iniziativa progettuale per mano di un project owner e l’integrazione con i repository, i progetti e i team di GitHub
  • La creazione effettiva del progetto, con tracciamento del lifecycle dall’approvazione in poi e assegnazione del team di sviluppo dedicato (attraverso attributi di skill predefiniti a monte e gestiti su Backstage) con caricamento di tutta la documentazione necessaria (di applicazione, APIs e di architettura)
  • Un techradar che possa aiutare il team a individuare lo stack tecnologico migliore ad affrontare il progetto in questione

Per la realizzazione del prodotto, il team di sviluppo ha lavorato a stretto contatto con il cliente per capire le specifiche esigenze e ha effettuato pesanti sviluppi custom per realizzare le funzionalità richieste.

Per implementarle, sono state utilizzate le best practice di Backstage, seguendo le linee guida della piattaforma. Inoltre, per assicurare la scalabilità e la robustezza del sistema, sono stati aggiunti test automatici approfonditi per garantire che le personalizzazioni funzionassero correttamente e non causassero problemi di compatibilità con altre parti del software.

Tra le implementazioni degne di nota, il team ha impiegato il framework dei permessi di Backstage per creare un sistema di accessi custom che permette di definire ruoli e autorizzazioni specifiche per gli utenti della piattaforma. Altre personalizzazioni effettuate dal team includono un insieme di plugin custom per l’integrazione delle entità di Backstage con GitHub. Questi plugin hanno permesso al cliente di creare e gestire i repository, le issue e i team di un progetto su GitHub e di automatizzare alcune attività di build e deployment direttamente da Backstage.

In conclusione, il lavoro svolto ha permesso di creare una soluzione su misura che ha soddisfatto le richieste del cliente. Grazie all’utilizzo di Backstage come base e alle personalizzazioni effettuate seguendo le best practice del framework, il cliente ha ottenuto una piattaforma robusta, scalabile e facilmente gestibile.

Tecnologie usate:

Backstage, GitHub, GitHub Actions, Azure Active Directory, React, Express.js, Cypress

Get in touch

Seguici sui social
Ascolta Continuous Delivery