Agile Talent è la risposta per la progettazione di sistemi embedded?
Pubblicato: 2022-03-11Dalle calcolatrici alle automobili, i sistemi embedded sono ovunque guardiamo. Mentre leggi questo articolo, il dispositivo che stai utilizzando si basa su dozzine di questi sistemi, caratterizzati da software intrappolato e che servono a uno scopo all'interno di un componente hardware, per visualizzare il testo e reagire ai tuoi comandi. I sistemi embedded, si può dire con certezza, sono fondamentali per la vita quotidiana degli individui e di interi settori allo stesso modo.
La progettazione di sistemi embedded è diventata ancora più vitale e onnipresente con l'ascesa dell'"Internet delle cose" (IoT). L'IoT è alimentato da sistemi embedded e la sua portata è in rapida espansione.
Uno studio del 2013 pubblicato da McKinsey & Co. ha stimato che entro il 2020 circa 30 miliardi di oggetti potrebbero essere collegati all'IoT. Uno studio del 2017 condotto dal Boston Consulting Group ha rilevato inoltre che le aziende sono pronte a spendere oltre 250 miliardi di dollari in applicazioni e infrastrutture IoT nel solo 2020. Sebbene tali stime possano alla fine mancare il bersaglio, l'importanza futura dell'IoT sia per le aziende che per i consumatori sembra assicurata.
Dato l'impatto significativo dell'IoT sui consumatori e l'enorme potenziale economico, non sorprende che i migliori ingegneri in grado di progettare e sviluppare sistemi embedded siano molto richiesti. In alcuni settori, tuttavia, i cambiamenti apportati dall'IoT stanno superando la capacità delle aziende di assumere tali talenti e creare team interni.
Questo problema è particolarmente acuto nei settori tradizionalmente incentrati sull'hardware e sui macchinari pesanti, piuttosto che sullo sviluppo di software e in settori come l'apprendimento automatico e l'intelligenza artificiale. Inoltre, queste industrie si trovano spesso lontano dagli epicentri tecnologici sulla costa orientale e occidentale degli Stati Uniti, il che rende ancora più difficile convincere i migliori talenti del mercato del lavoro a sceglierli rispetto alle alternative high tech della Silicon Valley. La necessità per queste industrie di assumere esperti in sistemi embedded non è mai stata così grande e aumenterà solo.
La necessità per queste industrie di assumere esperti in sistemi embedded non è mai stata così grande e aumenterà solo.
In questo articolo vedremo che il talento agile, essenzialmente definito come freelancer esperti, può consentire a questi settori di adattarsi con successo alle sfide poste dall'importanza sempre maggiore dei sistemi embedded. Utilizzando l'industria automobilistica come esempio, acquisiremo anche una comprensione di alcuni degli ostacoli principali all'utilizzo di sviluppatori di sistemi embedded agili e di come possono essere superati.
Sviluppo agile di sistemi embedded: sfide e soluzioni
Due delle maggiori sfide che le aziende che cercano di sviluppare competenze nello sviluppo di sistemi embedded devono affrontare - trovare il talento giusto e incentivare il talento a trasferirsi - possono essere risolte con l'uso di ingegneri agili, che possono lavorare internamente o da remoto.
Carenza di talenti
Gli ingegneri dei sistemi embedded scarseggiano. Sebbene sia difficile ottenere stime empiriche sul numero di sviluppatori di sistemi embedded attualmente nella forza lavoro, una varietà di dati sulla domanda di tale talento fornisce un'idea delle dimensioni relative del mercato dei sistemi embedded.
Il Bureau of Labor Statistics ha rilevato che nel 2016 c'erano circa 1,3 milioni di posti di lavoro nell'ingegneria del software, contro 74.000 nell'ingegneria dell'hardware del computer. Una ricerca di base su Indeed, un motore di ricerca del lavoro, produce circa 63.000 posizioni aperte nello sviluppo di applicazioni, rispetto a circa 12.000 posizioni nei sistemi embedded. Sebbene queste siano metriche altamente imperfette, suggeriscono che il mercato dei sistemi embedded è sminuito da quello dell'ingegneria del software tradizionale.
La carenza di esperti di sistemi embedded può essere spiegata, almeno in parte, dall'istruzione. In un articolo del 2014, Robert Dewar, professore emerito alla New York University, ha affermato che i dipartimenti di informatica hanno sottovalutato le abilità - come la matematica avanzata, il lavoro di squadra, la comprensione dei sistemi di immagini grandi e la conoscenza di un'ampia gamma di linguaggi di programmazione - che sono essenziali allo sviluppo di sistemi embedded.
Con una formazione insufficiente, c'è un divario significativo tra i migliori sviluppatori di sistemi embedded e il resto. Marcos Oviedo, ingegnere di sistemi embedded presso Toptal e architetto software di lunga data presso Intel, afferma che, nella sua esperienza, a molti ingegneri manca la combinazione di competenze di sviluppo hardware e software essenziali per la progettazione di sistemi embedded di successo. L'uso del talento agile, dice, può dare alle aziende una soluzione a questo problema.
Il talento remoto, in particolare, può produrre vantaggi significativi, poiché consente alle aziende di accedere a un vasto pool di talenti con un'ampia gamma di competenze: "Essere in grado di fornire pratiche di sviluppo software valide e mature [insieme all'esperienza hardware] aumenterà la qualità del prodotto”, afferma Oviedo. "Questo è sicuramente qualcosa che il talento remoto può portare in tavola."
Posizione, posizione, posizione
Con gran parte del mondo tecnologico concentrato sulle coste orientali e occidentali degli Stati Uniti, potrebbe essere difficile motivare i migliori talenti tecnologici a lavorare - e stabilirsi - altrove.
Sebbene questo problema si applichi alle aziende che hanno bisogno di talenti tecnologici di ogni tipo, è particolarmente urgente per le aziende che cercano talenti in aree, come i sistemi embedded, che scarseggiano.
Il talento agile può contribuire in modo significativo a progetti che si basano su componenti hardware standardizzati e facili da gestire.
Il talento agile può risolvere questo problema consentendo alle aziende di assumere i migliori ingegneri che possono vivere dove vogliono. Invece di combattere una dura battaglia nel tentativo di convincere gli ingegneri di sistemi embedded a trasferirsi – e quindi limitarsi ad assumere solo quegli ingegneri disposti a fare una mossa del genere – le aziende possono assumere talenti che lavorano da qualsiasi luogo. Ciò elimina un grosso ostacolo all'assunzione dei migliori ingegneri per il lavoro da svolgere e fornisce alle aziende le migliori capacità per sviluppare rapidamente e con successo competenze nei sistemi embedded.
Ora che comprendiamo alcuni dei problemi chiave che il talento agile può risolvere, possiamo passare all'esplorazione di condizioni che consentano alle aziende di utilizzare tale talento e condizioni che lo rendono più difficile.
Quando sono fattibili gli sviluppatori di sistemi embedded agili?
Per alcuni sviluppatori di sistemi embedded, lavorare in remoto è più facile a dirsi che a farsi. Mentre un ingegnere può lavorare su un'app mobile comodamente da qualsiasi bar del mondo, lo sviluppo di sistemi basati su software per grandi componenti hardware richiede una conoscenza approfondita dell'hardware in questione, che potrebbe essere difficile da ottenere senza vicinanza all'hardware stesso.
È importante capire quando tale talento è appropriato e quando potrebbe non esserlo.
Quando il talento agile o remoto è fattibile: il talento agile può contribuire in modo significativo a progetti che si basano su componenti hardware standardizzati e facili da gestire. In questi casi, le aziende possono fornire agli ingegneri embedded specifiche hardware o kit di sviluppo software (SDK) generali che gli ingegneri possono modificare e utilizzare per sviluppare i loro prodotti da qualsiasi luogo.
Flavio de Castro Alves Filho, uno sviluppatore di sistemi embedded con sede a San Paolo, Brasile, ha scoperto che le aziende spesso forniscono a lui e al suo team gli strumenti necessari per completare i progetti in remoto. Quando ha lavorato allo sviluppo di sistemi embedded per apparecchiature per elettrocardiogramma (ECG), ad esempio, a Filho sono stati forniti molti dei componenti hardware di base – convertitori digitali, microprocessori e microcontrollori – necessari per completare il suo compito. "Se abbiamo l'hardware finale, va bene, ma non è un requisito", ha affermato Filho.
Quando il talento agile o remoto potrebbe non essere fattibile: al contrario, l'utilizzo del talento agile remoto può essere difficile per progetti che coinvolgono standard di sicurezza rigorosi o componenti hardware particolarmente grandi. È opportuno che gli sviluppatori di sistemi embedded freelance proteggano spazi fisici e apparecchiature che consentano loro di lavorare in remoto in un'ampia gamma di casi. Tuttavia, questi casi (esplorati di più nel case study automobilistico di seguito) potrebbero richiedere spazi di lavoro proibitivi per il lavoro a distanza o strumenti che potrebbero essere inaccessibili.

Inoltre, le aziende possono scegliere di assumere ingegneri a tempo pieno piuttosto che talenti agili per determinati progetti di sistemi embedded "mission critical". Questi progetti possono durare per lunghi periodi, a volte anni, e coinvolgere sistemi così sensibili che le aziende devono mantenerli rigorosamente interni.
Hayram Nicacio, Presidente della Society of Automotive Engineers Brasil, fa questo punto riguardo ai sistemi di controllo nei veicoli: “Non tengono [lo sviluppo dei sistemi di controllo] all'interno di una cassaforte con sette chiavi; lo tengono dentro sette casseforti, una dentro l'altra. In alcuni casi, le aziende semplicemente non si sentiranno a proprio agio nell'assumere talenti agili a causa della natura altamente sensibile o proprietaria del progetto.
Sebbene queste sfide siano reali, il seguente caso di studio mostrerà che non sono insormontabili.
Caso di studio: l'industria automobilistica
In quanto settore legacy, basato su sistemi embedded e in rapido cambiamento tecnologico, l'industria automobilistica fornisce un'utile illustrazione sia della necessità di competenze sui sistemi embedded che delle sfide nell'utilizzo del talento agile per soddisfare questa esigenza.
L'ascesa dell'auto digitale
A un livello fondamentale, le auto sono sempre state raccolte intricate di sistemi embedded e dire che la loro complessità è aumentata nel tempo sarebbe un eufemismo grossolano. Un breve sguardo al design dei veicoli vintage rispetto a quello moderno dimostra questo punto.
La Ford Model T, prodotta tra il 1908 e il 1927, è, per gli standard odierni, relativamente semplice nel design e nella costruzione. Un singolo Modello T consisteva di circa 1.500 parti distinte che ingegneri meccanici e altri hanno messo insieme sulle innovative linee di montaggio Ford. Un veicolo moderno, al contrario, ha circa 15.000 parti distinte.
Tuttavia, l'aumento della complessità automobilistica è il risultato non solo di un aumento del numero di parti utilizzate, ma anche di un'espansione dei diversi tipi di parti utilizzate. Sebbene il Modello T includesse alcuni componenti elettrici di base, è stato costruito principalmente utilizzando parti meccaniche. Un veicolo moderno è una miscela molto più varia di componenti meccanici, elettrici e software. Come sottolinea un articolo del 2015 del New York Times , i veicoli premium prodotti oggi sono "tra le macchine più sofisticate del pianeta, contenenti 100 milioni o più righe di codice". Sebbene i progetti dei veicoli odierni facciano ancora molto affidamento sui componenti meccanici e sull'ingegneria elettromeccanica, sono diventati sempre più dipendenti dal software e dalla potenza di calcolo.
Nuovo tipo di talento necessario per un nuovo tipo di auto
Essendo un'industria secolare tradizionalmente incentrata sui sistemi elettromeccanici, che ora sta passando a tecnologie basate su software più avanzate, la relativa carenza di ingegneri del software nel settore automobilistico è comprensibile.
L'industria automobilistica ha bisogno di più ingegneri di sistemi embedded per navigare con successo nel futuro sempre più complesso basato sul software.
Storicamente con sede a Detroit, Michigan, l'industria automobilistica statunitense ha anche incontrato difficoltà nell'attirare i migliori talenti del software lontano dalla Silicon Valley. Questo problema è ulteriormente aggravato da società high tech, come Waymo di Alphabet, che fanno incursioni aggressive nel settore automobilistico. Le aziende automobilistiche hanno affrontato questa minaccia in diversi modi. Alcuni hanno collaborato con attori del settore high tech, mentre altri hanno sviluppato internamente con successo competenze high tech. L'industria automobilistica ha bisogno di più ingegneri di sistemi embedded, tra gli altri esperti di tecnologia avanzata, per navigare con successo in un futuro sempre più complesso basato sul software.
Superare le sfide del talento agile
Sebbene l'industria automobilistica possa affrontare sfide nell'utilizzo di sviluppatori di sistemi embedded agili, ci sono una serie di potenziali soluzioni che devono essere comprese:
Requisiti di sicurezza:
Sfida: l'industria automobilistica ha severi standard di sicurezza funzionale, in particolare ISO 26262, che modellano il modo in cui i sistemi e i componenti vengono sviluppati. Sebbene non sia un requisito rigoroso, è utile per gli sviluppatori di sistemi embedded in questo campo avere qualifiche conformi a questi standard.
Soluzione: ottenere le certificazioni appropriate in ISO 26262 non è proibitivamente difficile per gli sviluppatori di sistemi embedded e può essere fatto seguendo una serie di corsi. Inoltre, la ISO 26262 segue i principi essenziali di sicurezza funzionale contenuti nella norma IEC 61508, destinata ad applicarsi a settori come quello ferroviario e nucleare. Le case automobilistiche e i fornitori possono rivolgersi ai talenti dei sistemi embedded con precedente esperienza in questi altri campi per garantire una migliore aderenza alla ISO 26262.
Competenza specifica:
Sfida: i veicoli, in particolare data la loro complessità, hanno molti componenti che richiedono competenze di dominio specifiche. L'industria automobilistica dipende dalle conoscenze e dalle tecniche hardware, comprese le architetture MCU lockstep, la comunicazione CAN e LIN, in cui molti ingegneri potrebbero non avere esperienza. Poiché questi esperti di dominio scarseggiano, le aziende automobilistiche potrebbero essere riluttanti ad assumere liberi professionisti per paura che un ingegnere con competenze uniche lasci il progetto a metà, in particolare quando i progetti durano molti mesi o addirittura diversi anni.
Soluzione: il talento Agile può acquisire competenze specifiche in alcuni dei sistemi utilizzati dall'industria automobilistica attraverso corsi specifici su AUTOSAR e ASPICE, ad esempio. Se un ingegnere agile ha esperienza in un dominio rilevante (MCU, FPGA, per esempio) ma non ha esperienza nello spazio automobilistico in particolare, può essere guidato e guidato da altri che hanno tale esperienza. Inoltre, alcuni ingegneri agili potrebbero non avere limiti di tempo e per alcuni, in particolare quelli disposti a lavorare in loco, questi progetti possono rappresentare opportunità interessanti.
Logistica/ubicazione dell'hardware:
Sfida: i veicoli sono costituiti da componenti hardware di grandi dimensioni. A seconda del componente e del progetto specifico, gli sviluppatori di sistemi embedded nello spazio automatico potrebbero aver bisogno di apparecchiature di laboratorio specializzate o della vicinanza fisica all'hardware in fase di sviluppo. Ciò potrebbe costringere le aziende automobilistiche a escludere dalla considerazione i liberi professionisti remoti.
Soluzione: i progettisti di sistemi embedded agili possono acquisire le proprie apparecchiature, come oscilloscopi, multimetri, CAN, FlexRay, strumenti LIN per il debug, simulatori di celle della batteria e strumenti di test ESD, nonché spazi di laboratorio sufficientemente ampi da ospitare un'ampia gamma di componenti . Nei casi che coinvolgono progetti che non possono essere realizzati da remoto, i talenti agili disposti a viaggiare e lavorare in loco potrebbero comunque avere successo.
Agile Embedded Systems Talent come un modo per innovare
È vero che il talento agile e remoto potrebbe, di per sé, non essere una panacea per tutte le sfide di progettazione dei sistemi embedded. Piuttosto, è fondamentale comprendere alcune delle condizioni che possono rendere difficile l'utilizzo di sviluppatori di sistemi embedded agili e remoti e come queste sfide possono essere superate.
È anche importante sottolineare i vantaggi immateriali che il talento agile può portare. L'uso del talento agile non solo può aiutare le aziende a risolvere i problemi in modo conveniente, ma anche iniettare una dose di creatività che può rivelarsi essenziale per il design e il successo di un prodotto.
Quando Marcos Oviedo è stato assunto per lavorare in remoto per una startup della Silicon Valley, il prodotto dell'azienda - una fascia per aiutare a insegnare ai giocatori di basket il modo migliore per lanciare una palla in rete - non aveva un prototipo e l'azienda non aveva un piano chiaramente definito su come per svilupparlo. Pur lavorando da un continente diverso, Oviedo ha costruito il primo prototipo dell'azienda acquistando hardware di base facilmente accessibile e riproponendo hardware da altri dispositivi. Per questa azienda, il talento nella progettazione di sistemi embedded agili è servito come una scintilla innovativa che si è rivelata determinante per lo sviluppo di prodotti di successo.
Che si tratti di cinturini meccanici, orologi da polso o automobili, l'IoT continuerà ad espandersi e a fare affidamento su sistemi embedded. Le aziende avranno bisogno di fluidità nella progettazione di sistemi embedded per prosperare e il talento agile rappresenta una risorsa che non dovrebbe essere ignorata.