Sfide La sfida principale di Navya era gestire la complessità dello sviluppo prodotto in un'organizzazione in rapida crescita. La velocità del team di sviluppo era ostacolata da strumenti insufficienti (un mix di Git, fogli di calcolo, Jira e altre piattaforme) e dall'attrito degli strumenti che rendeva difficile ottenere la tracciabilità.


Navya: chi siamo

Navya è specializzata nello sviluppo di sistemi di guida autonoma. Fondata nel 2014 e con sede a Lione, in Francia, impiega oltre 280 dipendenti (140 dei quali sono ingegneri ed esperti di tecnologia) in sedi in Francia e negli Stati Uniti. Navya è stata la prima azienda al mondo a rilasciare sul mercato una navetta a guida autonoma. Il primo AUTONOM® SHUTTLE completamente autonomo, senza conducente ed elettrico dell'azienda è stato lanciato nel settembre 2015 come soluzione per il trasporto passeggeri del primo e dell'ultimo miglio.

Uomo davanti all'autobus Navya

Il problema: Agile e conformità ISO 26262

All'inizio del 2018, la sfida principale di Navya era gestire la complessità dello sviluppo dei prodotti in un'organizzazione in rapida crescita. Avevano bisogno di un modo per bilanciare la flessibilità di Agile e la rigidità del modello a V, garantendo al contempo la conformità agli obblighi di sicurezza.  

Allora l'azienda era una startup. Il team di sviluppo non disponeva di un sistema per gestire le specifiche dei prodotti e i requisiti non venivano congelati durante lo sviluppo. I team software utilizzavano Agile e ogni team gestiva il proprio backlog. La sincronizzazione tra i team era insufficiente, non esistevano procedure da seguire e mancava visibilità sul processo di sviluppo. Tutto ciò era destinato a entrare in conflitto con i severi requisiti normativi che regolano la sicurezza funzionale nel settore della mobilità.

Prima di effettuare la transizione a Codebeamer, il team di sviluppo di Navya utilizzava un mix di strumenti simile a quello di molte altre organizzazioni. Il team ha utilizzato Git per il controllo delle versioni del codice e si è affidato a una combinazione di fogli di calcolo aggiornati manualmente, Jira e un repository di documenti in costante crescita per rimanere al passo con le attività di sviluppo.

Mentre i team di Navya crescevano e la complessità dei prodotti stava per sfuggire al controllo, il team ha rilevato rischi che avrebbero potuto incidere negativamente sull'efficienza dello sviluppo. Il team non ha aspettato che la situazione diventasse così grave da incidere sulle operazioni. Era ovvio che era necessario un cambiamento metodologico.


Sicurezza e conformità nello sviluppo di sistemi di guida autonoma

Navya produce un prodotto a guida autonoma con più sottosistemi critici per la sicurezza. Poiché gli enti governativi sono in ritardo rispetto agli sviluppatori di prodotti nel fornire normative per i sistemi autonomi, ISO 26262 è ancora il requisito normativo più importante che Navya deve rispettare per garantire la sicurezza funzionale.

Dal punto di vista dei processi, il team di sviluppo esegue analisi dei rischi di alto livello basate sui casi d'uso dei prodotti. Questi vengono presi in considerazione nei requisiti di sistema, poi propagati ai sottosistemi e ai componenti necessari. Per convalidare i requisiti funzionali e disfunzionali, il team esegue test a livello della funzione o della simulazione, con prove di stress del sistema software in un ambiente controllato e quindi a livello di sistema in un ambiente rappresentativo.

Dopo che il prodotto supera tutti questi test, viene convalidato e può essere distribuito, pur se il team Navya inizia comunque con una distribuzione più ridotta e controllata, con un numero limitato di clienti. In caso di esito positivo, la nuova soluzione viene distribuita al resto della flotta.

"Il processo è una delle chiavi per garantire che il nostro software rispetti le norme di sicurezza. Ovviamente, il nostro obiettivo principale è garantire la conformità alla norma ISO 26262. Per questo, Codebeamer contiene il set di funzionalità più adatto, che consente la tracciabilità richiesta tra diversi livelli di specifiche". -Head of Product Development, Navya
 
 

Valutazione degli strumenti ALM tenendo conto della flessibilità  

Nel luglio 2018, Navya ha avviato un processo di sourcing per selezionare una soluzione per la gestione del ciclo di vita delle applicazioni. La ricerca è stata abbastanza rapida a causa di una crescente necessità di formalizzare i processi di sviluppo. Per prendere una decisione consapevole, il team ha analizzato le funzionalità di diversi strumenti e ha avviato colloqui con diversi fornitori.

Nell'ambito della valutazione, il team di Navya si era concentrata su alcuni fattori principali:  

  • Possibilità di configurare in modo personalizzato diversi tipi di oggetti e di stabilire collegamenti tra questi oggetti per la tracciabilità end-to-end  
  • Facilità d'uso in un ambiente agile, innovativo e in rapida crescita
  • Supporto per la collaborazione e possibilità per gli utenti di interagire all'interno dello strumento 
  • Flessibilità e capacità di perfezionare e adattare il sistema allo scopo di supportare il miglioramento continuo
  • Facilità di configurazione, in quanto le esigenze del team cambiano costantemente man mano che vengono migliorati i processi.
  • Modello di definizione del prezzo per un ROI ottimale 

 

Come nello sviluppo software, il team di sviluppo di Navya ha adottato un approccio agile nella creazione del proprio ambiente ALM. Il team intendeva procedere in modo incrementale, seguendo i modelli fondamentali di Agile nel processo per assicurarsi che la soluzione fosse adatta alle loro esigenze in continua evoluzione. Il team era in cerca della massima efficienza migliorando costantemente l'ambiente di lavoro. Pertanto, la flessibilità era un requisito chiave per Navya: Lo strumento scelto doveva essere in grado di adattarsi e supportare una mentalità completamente agile.

Dopo aver condotto il processo di valutazione, Navya ha ristretto la ricerca a un elenco ristretto di finalisti che includeva Siemens Polarion e altri strumenti. Alla fine, è stata questa esigenza cruciale di flessibilità a far pendere l'ago della bilancia a favore di Codebeamer.

"La flessibilità di Codebeamer nell'impostazione dell'ambiente e degli oggetti in sviluppo sono stati i fattori principali che hanno portato alla decisione nella fase finale".

 

Navya ha acquistato alcune licenze nell'agosto 2018 e ha continuato a espandere progressivamente il numero di postazioni. Nel 2019, gli utenti di Codebeamer in Navya erano 120, con l'intenzione di raggiungere i 200 l'anno successivo.

Implementazione e formazione autogestite

Navya non aveva esperienza precedente nell'implementazione su larga scala di uno strumento di sviluppo e, secondo Head of Product Development, Navya, non aveva previsto il successo e la crescente domanda che ha riscontrato con Codebeamer. Nel complesso, Navya ha segnalato una rapida adozione dello strumento e l'impegno necessario per formare gli utenti è stato minimo.

Innanzitutto, ci siamo posti l'obiettivo di utilizzare la piattaforma per la gestione dei bug del software. Questo approccio è stato presto esteso alla gestione delle user story e delle epiche per il team software. Un aspetto sorprendente dell'esperienza di Navya con il sistema si è verificato quando il team hardware ha iniziato a usare lo strumento.

Avendo utilizzato Codebeamer per un po' di tempo, il team di prodotto ha pensato che il naturale passo successivo fosse espanderne l'uso allo sviluppo hardware. La dirigenza ha però incontrato una certa resistenza, poiché la piattaforma era percepita dagli ingegneri hardware come uno strumento esclusivamente per il software. Tuttavia, Codebeamer si è rivelato chiaramente in grado di gestire i problemi hardware e di ridurre la complessità e quindi l'adesione del team hardware è stata assicurata.

In termini di formazione, Navya ha adottato un approccio ibrido: Il team aveva già un programma di formazione formale, ma ha capito che era più utile lasciare che gli ingegneri "giocassero" con lo strumento. Una volta appreso quanto fosse facile configurare Codebeamer, Navya ha deciso di contribuire a diffondere l'uso dello strumento in modo organico semplicemente distribuendo i diritti di amministratore a molti team.

Questo approccio si è rivelato un'arma a doppio taglio: Da un lato, gli ingegneri sono diventati esperti nell'uso e nella configurazione della piattaforma, ma il team di sviluppo di Navya si è ritrovato con un'enorme quantità di oggetti eterogenei e non gestiti che non funzionavano insieme. Per risolvere il problema, hanno formato un team incaricato di mantenere un approccio sistemico all'utilizzo della piattaforma, alla riduzione degli oggetti e alla loro reintegrazione in un framework condiviso.

"Prima della distribuzione abbiamo condotto diverse sessioni di formazione, abbiamo tenuto diverse presentazioni e abbiamo sfruttato tutti i canali di comunicazione per inviare informazioni sui cambiamenti imminenti. Ma sinceramente abbiamo capito che era meglio che gli utenti si formassero reciprocamente". 

 

 
All'interno dell'autobus Navya
Autobus Navya con porta aperta
 

Vantaggi dell'ALM integrato 

Passando a Codebeamer, Navya ha beneficiato principalmente di trasparenza, chiarezza e coerenza nei propri processi.

"Fornire alla nostra azienda gli strumenti giusti che ci aiutano a gestire la complessità è sicuramente un fattore abilitante che aiuta a portare la nostra innovazione al passo successivo. È qui che avere lo strumento giusto può essere un vero elemento di differenziazione".
 

 

Prima di implementare Codebeamer, i team di Navya lavoravano in silos su vari aspetti funzionali del prodotto. Il team aveva scarsa visibilità delle attività ed era difficile creare una vista a livello di sistema che consentisse al team di gestire la complessità.

Con Codebeamer, il team può avere una visione end-to-end delle attività di sviluppo con collegamenti tra tutti i tipi di artefatti, dai requisiti alla convalida. Le dipendenze sono facilmente tracciabili e i criteri comuni aiutano a standardizzare la qualità della codifica. Il team è in grado di monitorare agevolmente i progressi e diverse metriche di alto livello per misurare le aree di attivazione. Questo aiuta a individuare le aree problematiche per consentire un miglioramento continuo.

"Codebeamer ci ha fornito un'unica interfaccia per collegare e gestire tutti i tipi di oggetti, tutti necessari per sviluppare un prodotto di elevata complessità. La piattaforma ci permette di farlo in un ambiente user-friendly e molto flessibile, collegando tutte le funzioni dell'azienda in modo coerente".
 

ALM ha contribuito a semplificare l'aspetto della conformità degli sforzi di sviluppo di Navya, con collegamenti tracciabili che vanno dai requisiti di alto livello all'architettura organica e di nuovo ai test finali. Questo supporta il team di Navya nello svolgimento delle necessarie fasi di convalida e controlli di conformità. Prima di passare a Codebeamer, questi processi non erano automatizzati e Navya ha riferito che l'utilizzo della piattaforma ha inciso positivamente sull'efficienza del team.  

Considerando la flessibilità della piattaforma e tutti i vantaggi che offre, non sorprende che Navya stia ora studiando nuovi modi per adottare Codebeamer nell'organizzazione:

"Non abbiamo ancora finito di esplorare il vero potenziale di Codebeamer, poiché il nostro modo di lavorare è in continuo miglioramento. Stiamo estendendo l'utilizzo di questo strumento ad altre aree dell'azienda. Sebbene questo progetto sia stato avviato per affrontare la complessità dello sviluppo, ora l'attenzione si sta spostando verso la gestione di tutte le attività aziendali, come la gestione dei ticket per lo sviluppo, del rischio, la gestione aziendale, dei progetti, della roadmap del prodotto e così via".