Hardware agile con sviluppo software integrato
Pubblicato: 2022-03-11Costruire ecosistemi hardware e software complessi che trovino un prodotto/mercato adatto è un compito difficile. Sebbene la maggior parte delle startup hardware alla fine falliscano perché esauriscono i soldi, secondo un rapporto di CB Insights, il motivo principale principale è in realtà la mancanza di domanda per i loro prodotti. Ciò sottolinea solo l'importanza di quanto sia critico il ruolo di product manager per le startup hardware, poiché il loro obiettivo principale è capire le esigenze del cliente e i punti deboli per fornire un prodotto di successo.
L'ultima azienda che ho gestito ha creato un ecosistema di applicazioni software Web, mobili, integrate e dispositivi hardware per l'industria dei parcheggi. La strategia del prodotto hardware faceva parte del mio lavoro quotidiano, che mi ha portato a sperimentare vari flussi di lavoro di sviluppo del prodotto hardware. Nonostante abbia lavorato con prodotti hardware per 10 anni e avessi una laurea in Elettronica e Telecomunicazioni, avevo ancora molto da imparare sul lavoro. Ho creato la guida di seguito nella speranza che tu possa aggiornarti sulla gestione del prodotto all'interno dell'hardware con lo spazio software incorporato più velocemente di me.
Sfide della gestione dei prodotti hardware
Mentre SaaS e app mobili possono essere facilmente sviluppate utilizzando un framework agile, le condizioni uniche nello sviluppo di dispositivi hardware e software incorporati rendono molto più difficile l'applicazione dei principi agili. In questa prima sezione tratteremo le caratteristiche dello sviluppo hardware che creano complessità. Non tutti hanno soluzioni semplici, ma ci sono modi per ridurre la difficoltà impiegando particolari strategie di sviluppo hardware, che saranno trattate nella prossima sezione.
È difficile trovare talenti tecnici specializzati a livello locale
La creazione di nuovi prodotti hardware è significativamente più difficile rispetto all'iterazione su quelli esistenti. Implica molta creatività ed esperienza nella prototipazione, che raramente viene insegnata nelle università. Alcune università non dispongono nemmeno di strutture per la prototipazione o degli strumenti necessari per sviluppare queste competenze e tale esperienza viene acquisita quasi esclusivamente in società di hardware più grandi che dispongono di centri di ricerca e sviluppo. Trovare professionisti locali con competenze pertinenti può, quindi, essere molto difficile, con il risultato che molti fondatori di startup hardware hanno la necessità di espandere il proprio pool di talenti assumendo da remoto.
I sistemi di controllo della versione non sono adattati alla progettazione hardware
La maggior parte dei sistemi di controllo della versione (VCS) sono orientati al supporto del formato testuale, poiché sono stati creati per il lavoro collaborativo di sviluppo software. Nei progetti che coinvolgono lo sviluppo hardware, le informazioni vengono invece racchiuse in file di progettazione creati con l'aiuto di strumenti speciali come OrCAD. E alcuni di questi strumenti supportano solo file binari che non sono nemmeno ottimizzati per essere utilizzati nei VCS. CADLAB è un tentativo relativamente nuovo di creare un VCS compatibile con l'hardware e, si spera, ci saranno più strumenti come questo nel prossimo futuro.
Le strutture di produzione hardware sono delocalizzate
Gli impianti di produzione hardware si trovano spesso in un'altra regione, paese o continente. La comunicazione tra il produttore dell'hardware e il produttore richiede un'attenzione particolare ed è la chiave per la consegna di un prodotto di successo. Una comunicazione di successo richiede un inquadramento più strategico per assicurare la qualità del prodotto e per garantire che possa far fronte ai cambiamenti nella fase di validazione dinamica del prodotto-mercato. Per raggiungere questo obiettivo, il produttore di hardware deve creare molte specifiche dettagliate inviate al produttore. Il quadro di collaborazione deve garantire la consegna rapida delle informazioni e la gestione del ciclo di vita delle specifiche, poiché possono facilmente diventare obsolete rapidamente.
Le modifiche hardware sono meno flessibili
Un modello operativo popolare nelle startup di software sacrifica la qualità per la velocità nelle fasi iniziali. Anche Facebook ha sostenuto per un po' di tempo il mantra "muoviti velocemente e rompi le cose". Un altro approccio familiare è "fingi finché non ce la fai". Funziona per le startup di software a causa dei costi di infrastruttura economici e dei framework di programmazione semplificati che consentono agli sviluppatori di distribuire gli aggiornamenti del codice quotidianamente.
Sebbene questo approccio allo sviluppo si sia lentamente insinuato nello spazio hardware, è una tendenza sfortunata in questo campo, poiché è molto più difficile apportare e distribuire modifiche hardware. I costi di sviluppo compensano il valore guadagnato attraverso rilasci veloci e frequenti, quindi è una strategia molto più desiderabile investire di più nella fase di progettazione per creare architetture hardware solide.
La trappola del crowdfunding
Molte startup sono intrappolate nell'idea che il lancio di una campagna di crowdfunding hardware di successo sia equivalente alla convalida del mercato. Il crowdfunding tende ad avere più successo per i prodotti che coinvolgono un componente hardware, in particolare a causa del nostro desiderio inconscio di proprietà relativo all'oggetto fisico. Tuttavia, il crowdfunding non ha lo scopo di convalidare il tuo prodotto su larga scala, ma piuttosto un modo democratico di finanziare lo sviluppo del prodotto nella fase iniziale. La sfortunata realtà è che molte aziende con campagne di crowdfunding di successo hanno successivamente trovato difficile o quasi impossibile ridimensionare la propria produzione poiché non hanno convalidato il loro mercato su larga scala.
Certificazioni, regolamenti e omologazioni
Tutti i prodotti hardware richiedono una sorta di certificazione per essere venduti. È uno dei passaggi più trascurati nelle primissime fasi di immissione sul mercato di prodotti hardware. In che modo il vincolo di certificazione influirà sul piano del prodotto e sul quadro applicato per lo sviluppo? Non è raro pianificare le prime fasi del progetto con la certificazione e altre approvazioni come pietra miliare del progetto, per poi tornare indietro condizionatamente alla fase di avvio. I product manager possono invece analizzare attentamente le normative, le dipendenze e i gateway decisionali strategici del piano di prodotto in un approccio più a cascata.
Opportunità per la gestione dei prodotti hardware
Ora che abbiamo affrontato alcune delle sfide esistenti nel campo dell'hardware con software embedded, diamo ora un'occhiata a come rendere il processo di sviluppo più snello e prevedibile per compensare le difficoltà intrinseche dello sviluppo hardware.
Incorpora Agile nello sviluppo hardware
I product manager esperti sono consapevoli delle sfide alla base della creazione di prodotti hardware con software embedded che cercano di sfruttare un'opportunità di mercato creata dai nuovi sviluppi tecnologici. Imparano a bilanciare l'accelerazione del time-to-market senza compromettere la probabilità di successo del prodotto sin dalla fase di pianificazione. Il più delle volte, questo prende forma attraverso un approccio di caduta dell'acqua.
La fase di ideazione del prodotto amplia i principi del prodotto, gli obiettivi e le caratteristiche di alto livello nel maggior numero di dettagli possibile. I grandi product manager dedicano più tempo a perfezionare i risultati di questa fase: visione, missione, valutazione delle opportunità, obiettivi del prodotto hardware e funzionalità. Questa è la stella polare del prodotto che deve essere sufficientemente chiara prima di iniziare a lavorare su qualsiasi tipo di prototipo hardware, quindi si consiglia un approccio a cascata.
È fondamentale disporre di requisiti e specifiche funzionali ben documentati per i prodotti hardware, nonché di una buona architettura tecnica per il software integrato che guida il prodotto hardware. Le modifiche ai requisiti e alle specifiche dovrebbero essere penalizzate, non incoraggiate una volta che sono state approvate dall'intero team.
Durante lo sviluppo di software embedded è possibile utilizzare una metodologia Scrum standard. È meno costoso in termini di tempo e denaro regolare e perfezionare l'implementazione del software per funzionare con l'architettura hardware predefinita che viceversa.
Il test di integrazione finale e il test di accettazione dell'utente devono essere eseguiti in condizioni a cascata. In questa fase, la fase di sviluppo è completa e le nuove funzionalità e le caratteristiche mancanti vengono registrate come richieste di lavoro aggiuntive per il prossimo periodo di pianificazione.
Incorpora Agile nello sviluppo di software embedded
La creazione di prodotti hardware complessi con software integrato influisce sul modo in cui vengono applicate le metodologie di sviluppo software tradizionali. Molti sistemi utilizzati per produrre software che gira su un personal computer non sono appropriati per lo sviluppo di software embedded, perché ci sono vincoli rispetto alla scarsità di risorse e cicli di vita di sviluppo molto più lunghi.

Un gruppo di accademici e professionisti brasiliani ha offerto una potenziale soluzione: Metodologia di progettazione software basata su piattaforma per sistemi di controllo incorporati: un toolkit agile . Questa metodologia incorpora principi agili nello sviluppo di software embedded. Di seguito è riportato un breve riassunto della metodologia, ma si consiglia vivamente ai product manager hardware di leggere la descrizione completa prima di applicarla nella loro pratica.
I ruoli coinvolti in questa metodologia sono:
- Proprietario della piattaforma: responsabile della definizione degli obiettivi di qualità, pianificazione e costi
- Leader del prodotto: responsabile dell'implementazione, integrazione e test del prodotto
- Leader delle funzionalità: responsabile della gestione dei progetti di sottosistemi e del monitoraggio dello stato di avanzamento della consegna delle funzionalità
- Team di sviluppo – Lavorare allo sviluppo del prodotto
La metodologia suddivide lo sviluppo del software embedded in tre gruppi di processi:
- Gruppo di processi della piattaforma di sistema. Un sistema sceglie i componenti di sistema che faranno parte dell'architettura e delle piattaforme API da una libreria di piattaforma e li personalizza per soddisfare i vincoli dell'applicazione in questione. Il processo di personalizzazione avviene in cicli iterativi programmando i processori configurabili dal progettista e le logiche riconfigurabili in runtime integrate nella piattaforma.
- Gruppo processi di sviluppo prodotto. Le funzionalità che compongono il prodotto sono suddivise in elementi hardware o software della piattaforma. La metodologia fornisce algoritmi di partizionamento per tenere conto del consumo energetico, del tempo di esecuzione e della dimensione della memoria dei componenti dell'applicazione.
- Il gruppo dei processi di gestione del prodotto monitora e controlla l'ambito del prodotto, i parametri di tempo, qualità e costo. Gli approcci suggeriti consistono principalmente nelle pratiche promosse dal metodo Scrum Agile e nei modelli agili.
Crea un programma di sviluppo hardware
La strutturazione di un programma di sviluppo hardware in fase iniziale ha consentito alle aziende di fornire un rapido pivoting o un piano B. Da un punto di vista aziendale, può ridurre i margini finanziari, ma alla fine fornisce l'agilità necessaria per far fronte a un mercato in continua evoluzione condizioni in termini di prodotti rilasciati dalla concorrenza e capacità tecnologiche avanzate.
Supponiamo che un'azienda esegua una campagna di crowdfunding di successo per il suo prodotto hardware con software incorporato. Funzionano alla grande per il primo lotto di prodotti fino a quando una grande azienda affermata non annuncia qualcosa di simile. La versatilità e il time to market sono i fattori più importanti e una risposta pragmatica e agile a questa situazione aumenta le probabilità di un prodotto di successo. Disponendo di un programma di sviluppo hardware, l'azienda può adattarsi rapidamente e mettere in evidenza una versione più ricca del prodotto come risposta alla concorrenza.
Test di successo dell'hardware con il software integrato
Il test è una componente cruciale della gestione del prodotto hardware perché, a differenza del test agile del software, la maggior parte dei bug dell'hardware può essere risolta solo producendo un nuovo lotto di prodotti. I dispositivi Samsung Galaxy Note 7 che stavano prendendo fuoco sono un ottimo esempio del motivo per cui i test hardware dovrebbero essere una priorità assoluta per tutti i product manager.
I test funzionali sono l'obiettivo chiave della convalida tecnica per l'hardware con prodotti software incorporati. La complessità di queste procedure deriva dal fatto che è probabile che gli errori provengano da qualsiasi parte del sistema.
Il test unitario di solito avviene in un ambiente simulato dopo ogni sprint, poiché l'hardware simulato offre il vantaggio di essere perfettamente controllabile. Gli script di test possono essere automatizzati, supervisionare l'esecuzione e terminare i test che sembrano essersi arrestati in modo anomalo senza produrre alcun risultato.
I test di integrazione dovrebbero tenere conto delle operazioni online e offline e della presentazione del prodotto hardware a condizioni operative reali. Ad esempio, se l'azienda sviluppa un sistema di monitoraggio del cervello montato sulla testa durante le attività all'aperto, le condizioni di test dovrebbero considerare queste particolarità.
Il test del sistema implica il test dell'intero sistema per errori e bug. Questo test viene eseguito interfacciando i componenti hardware e software dell'intero sistema (che sono stati precedentemente testati per unità e integrazione) e quindi testati nel suo insieme. Questo test è elencato sotto il metodo di test della scatola nera, in cui il software viene verificato per gli scenari previsti dall'utente, potenziali eccezioni e condizioni di edge case. Menzionabili categorie speciali di test:
- Test attivato da eventi: avviato da eventi particolari o cambiamenti di stato nella vita del prodotto hardware (ad es. avvio, ripristino, spegnimento). Il suo obiettivo è rilevare guasti permanenti.
- Test a tempo: avviato a orari preconfigurati durante il normale funzionamento del sistema, eseguito periodicamente per rilevare guasti permanenti. È utile nei sistemi in esecuzione per lunghi periodi, in cui non si verificano eventi di attivazione di test significativi. Il test attivato dal tempo è utile anche per rilevare guasti intermittenti.
Accettazione del prodotto di hardware con software integrato
Il valore del prodotto per i prodotti hardware con software integrato viene generalmente convalidato dopo la fase di accettazione del prodotto nella metodologia Water-Scrum-fall. L'hardware con ecosistema software incorporato deve dare la priorità all'hardware rispetto al software per la convalida e l'accettazione. Come affermato in precedenza, le modifiche hardware sono più difficili e costose da eseguire. È normale che i product manager concepiscano soluzioni innovative, necessarie per risolvere problemi di accettazione o adeguare il valore, considerando il vincolo di non poter alterare l'hardware e favorendo iterazioni extra nel campo dello sviluppo software.
Gli eccellenti product manager hanno l'acume del prodotto e il grande potere di visione per prevedere le esigenze hardware e dare la priorità alle giuste funzionalità includebili in modo che il modello di business sia solido, l'accettazione sia solida e gli utenti si divertano a utilizzare il prodotto. Considerando il software embedded, la "decorazione" dell'hardware non dovrebbe sorprendere, poiché deve seguire regole e vincoli, guidati da processi di sviluppo hardware, procedure di certificazione, sfide di produzione e accettazione del mercato.
Lo sviluppo hardware richiede agilità gestita
Agile ha preso d'assalto il mondo dello sviluppo software e ora ha iniziato a insinuarsi nello spazio hardware. Tuttavia, le condizioni del prodotto hardware con lo sviluppo del software integrato comportano diverse sfide:
- Mancanza di talento specializzato
- Sistemi di controllo della versione non adatti all'hardware
- Stabilimenti di produzione delocalizzati
- Modifiche più difficili da apportare rispetto al software
- Requisiti di certificazione e normativa che impongono ostacoli alla pianificazione
Queste sfide rendono più difficile l'applicazione dei principi agili allo stesso modo delle aziende di software.
Per combattere queste sfide, è necessario un approccio di agilità gestita sotto forma di water-scrum-fall. Lo sviluppo del software embedded viene creato seguendo le procedure standard di Scrum, mentre altri passaggi come l'ideazione, la creazione di specifiche e il test sono implementati in una configurazione a cascata. Ciò consente alle aziende di hardware di raccogliere i frutti offerti da Agile mantenendo un approccio di gestione del prodotto funzionante che deve considerare i vari vincoli sopra elencati. Questo approccio di agilità gestita fornisce una strada vincente nel contesto di condizioni di mercato in rapida evoluzione e costanti miglioramenti tecnologici.