Hardware agil cu dezvoltare software încorporată
Publicat: 2022-03-11Construirea de ecosisteme hardware și software complexe care să se potrivească cu produsul/piața este o sarcină dificilă. În timp ce majoritatea startup-urilor hardware eșuează în cele din urmă pentru că rămân fără bani, potrivit unui raport de la CB Insights, cel mai mare motiv de bază este de fapt lipsa cererii pentru produsele lor. Acest lucru subliniază doar importanța cât de critic este rolul managerului de produs pentru startup-urile hardware, deoarece obiectivul lor principal este acela de a identifica nevoile clienților și punctele de durere pentru a livra un produs de succes.
Ultima companie pe care am condus-o a creat un ecosistem de aplicații web, mobile, software încorporat și dispozitive hardware pentru industria parcărilor. Strategia de produse hardware a făcut parte din munca mea zilnică, ceea ce m-a determinat să experimentez diverse fluxuri de lucru de dezvoltare a produselor hardware. În ciuda faptului că am lucrat cu produse hardware timp de 10 ani și am avut o licență în electronică și telecomunicații, încă mai aveam multe de învățat la locul de muncă. Am creat ghidul de mai jos în speranța că puteți ajunge la curent cu gestionarea produsului în hardware-ul cu spațiu software încorporat mai repede decât am făcut-o.
Provocări ale managementului produselor hardware
În timp ce aplicațiile SaaS și mobile pot fi dezvoltate cu ușurință folosind un cadru agil, condițiile unice din dezvoltarea software-ului și a dispozitivelor hardware încorporate fac mult mai dificilă aplicarea principiilor agile. În această primă secțiune, vom acoperi caracteristicile dezvoltării hardware care creează complexitate. Nu toate au soluții simple, dar există modalități de a reduce dificultatea prin utilizarea unor strategii specifice de dezvoltare hardware, care vor fi tratate în secțiunea următoare.
Talentul tehnic specializat este greu de găsit la nivel local
Crearea de noi produse hardware este mult mai dificilă decât repetarea pe cele existente. Implică multă creativitate și experiență în crearea de prototipuri, care este rar predată în universități. Unele universități nici măcar nu au facilități de prototipare sau instrumente necesare pentru a dezvolta aceste abilități și o astfel de experiență este dobândită aproape exclusiv în corporații de hardware mai mari care au centre de cercetare și dezvoltare. Găsirea profesioniștilor locali cu expertiză relevantă poate fi, prin urmare, foarte dificilă, ceea ce duce la nevoia multor fondatori de startup-uri de hardware să-și extindă fondul de talent prin angajarea de la distanță.
Sistemele de control al versiunilor nu sunt adaptate la designul hardware
Majoritatea sistemelor de control al versiunilor (VCS) sunt orientate în format textual suport, deoarece au fost create pentru munca colaborativă de dezvoltare software. În proiectele care implică dezvoltarea hardware, informațiile sunt în schimb împachetate în fișiere de design create cu ajutorul instrumentelor speciale precum OrCAD. Și unele dintre aceste instrumente acceptă doar fișiere binare care nici măcar nu sunt optimizate pentru a fi utilizate în VCS. CADLAB este o încercare relativ nouă de a crea un VCS compatibil hardware și sperăm că vor exista mai multe instrumente ca acesta în viitorul apropiat.
Instalațiile de producție hardware sunt delocalizate
Unitățile de producție hardware sunt adesea situate în altă regiune, țară sau continent. Comunicarea dintre producătorul de hardware și producător necesită o atenție specială și este cheia pentru livrarea de succes a produsului. Comunicarea de succes necesită o încadrare mai strategică pentru a asigura calitatea produsului și pentru a se asigura că acesta poate face față schimbărilor din etapa de validare dinamică a produsului-piață. Pentru a realiza acest lucru, producătorul de hardware trebuie să creeze multe specificații detaliate trimise producătorului. Cadrul de colaborare trebuie să asigure livrarea rapidă a informațiilor și gestionarea ciclului de viață al specificațiilor, deoarece acestea pot depăși rapid cu ușurință.
Schimbările hardware sunt mai puțin flexibile
Un model de operare popular în startup-urile de software sacrifică calitatea în favoarea vitezei în stadiile incipiente. Chiar și Facebook a susținut mantra „mișcă-te repede și sparge lucrurile” de ceva timp. O altă abordare familiară este „falsează până când reușești”. Acest lucru funcționează pentru startup-urile de software din cauza costurilor de infrastructură ieftine și a cadrelor de programare simplificate care permit dezvoltatorilor să implementeze actualizări de cod zilnic.
În timp ce această abordare a dezvoltării s-a strecurat încet în spațiul hardware, este o tendință nefericită în acest domeniu, deoarece este mult mai greu să faci și să implementezi modificări hardware. Costurile de dezvoltare compensează valoarea câștigată prin lansări rapide și frecvente, așa că este de fapt o strategie mult mai de dorit să investești mai mult în faza de proiectare pentru a crea arhitecturi hardware de sunet.
Capcana crowdfunding-ului
Multe startup-uri sunt prinse în ideea că lansarea unei campanii de crowdfunding hardware de succes este echivalentă cu validarea pieței. Crowdfundingul tinde să aibă cel mai mare succes pentru produsele care implică o componentă hardware, în special din cauza dorinței noastre inconștiente de a deține obiectul fizic. Cu toate acestea, crowdfunding nu este menit să vă valideze produsul la scară, ci mai degrabă o modalitate democratică de finanțare a dezvoltării de produse în stadiu incipient. Realitatea nefericită este că multe companii cu campanii de crowdfunding de succes au găsit ulterior dificil sau aproape imposibil să-și extindă producția, deoarece nu și-au validat piața la scară.
Certificari, reglementări și aprobări
Toate produsele hardware necesită un fel de certificare pentru a fi vândute. Este unul dintre pașii cei mai trecuți cu vederea în primele etape ale aducerii pe piață a produselor hardware. Cum va afecta constrângerea de certificare planul de produs și cadrul aplicat pentru dezvoltare? Nu este neobișnuit să se planifice fazele incipiente ale proiectului cu certificare și alte aprobări ca etapă a proiectului, abia apoi să se revină condiționat la faza de lansare. Managerii de produse pot analiza cu atenție reglementările, dependențele și porțile de decizie strategică pentru planul de produs într-o abordare mai asemănătoare cu cascada.
Oportunități pentru managementul produselor hardware
Acum că am acoperit unele dintre provocările existente în domeniul hardware cu software încorporat, să vedem cum să facem procesul de dezvoltare mai eficient și mai previzibil pentru a compensa dificultățile inerente ale dezvoltării hardware.
Încorporați Agile în dezvoltarea hardware
Managerii de produse cu experiență sunt conștienți de provocările din spatele construirii de produse hardware cu software încorporat care încearcă să exploateze o oportunitate de piață creată de noile dezvoltări tehnologice. Ei învață să echilibreze accelerarea timpului de lansare pe piață fără a compromite probabilitatea succesului produsului încă din etapa de planificare. De cele mai multe ori, acest lucru ia formă printr-o abordare apă-scrum-fall.
Faza de ideare a produsului extinde principiile produsului, obiectivele și caracteristicile de nivel înalt în cât mai multe detalii posibil. Excelenții manageri de produs petrec mai mult timp perfecționând livrabilele acestei faze: viziune, misiune, evaluare a oportunităților, obiective ale produselor hardware și caracteristici. Aceasta este steaua nordică a produsului care trebuie să fie suficient de clară înainte de a începe să lucreze la orice tip de prototip hardware, de aceea se recomandă o abordare în cascadă.
Este esențial să aveți cerințe și specificații funcționale bine documentate pentru produsele hardware, precum și o arhitectură tehnică bună pentru software-ul încorporat care conduce produsul hardware. Modificările în cerințe și specificații ar trebui să fie penalizate, nu încurajate odată ce sunt aprobate de întreaga echipă.
O metodologie standard de scrum poate fi utilizată atunci când se dezvoltă software încorporat. Este mai puțin costisitor în termeni de timp și bani să ajustați și să rafinați implementarea software-ului pentru a lucra cu arhitectura hardware predefinită decât invers.
Testarea finală de integrare și testarea de acceptare a utilizatorului ar trebui să fie efectuate în condiții de cascadă. În această etapă, faza de dezvoltare este finalizată și noile funcționalități și caracteristicile lipsă sunt înregistrate ca solicitări de lucru suplimentare pentru următoarea perioadă de planificare.
Încorporați Agile în dezvoltarea de software încorporat
Construirea de produse hardware complexe cu software încorporat are un impact asupra modului în care sunt aplicate metodologiile tradiționale de dezvoltare a software-ului. Multe sisteme utilizate pentru a produce software care rulează pe un computer personal nu sunt adecvate pentru dezvoltarea de software încorporat, deoarece există constrângeri în ceea ce privește deficitul de resurse și ciclurile de viață de dezvoltare mult mai lungi.

Un grup de cadre universitare și profesioniști din Brazilia a oferit o soluție potențială: Metodologia de proiectare software bazată pe platformă pentru sistemele de control încorporate: un set de instrumente agil . Această metodologie încorporează principii agile în dezvoltarea de software încorporat. Mai jos este un scurt rezumat al metodologiei, dar managerii de produse hardware sunt sfătuiți să citească descrierea completă înainte de a o aplica în practica lor.
Rolurile implicate în această metodologie sunt:
- Proprietarul platformei – Responsabil pentru definirea obiectivelor de calitate, planificare și costuri
- Lider de produs – Responsabil pentru implementarea, integrarea și testarea produsului
- Lider de caracteristici – Responsabil cu gestionarea proiectelor subsistemului și urmărirea progresului livrabilului caracteristicilor
- Echipa de dezvoltare – Lucrează la dezvoltarea produsului
Metodologia împarte dezvoltarea software-ului încorporat în trei grupuri de procese:
- Grupul de procese ale platformei de sistem. Un sistem alege componentele de sistem care vor face parte din arhitectura și platformele API dintr-o bibliotecă de platformă și le personalizează pentru a satisface constrângerile aplicației în cauză. Procesul de personalizare se desfășoară în cicluri iterative prin programarea procesoarelor configurabile de designer și a logicii reconfigurabile în timp de execuție integrate în platformă.
- Grupul de procese de dezvoltare a produselor. Funcționalitățile care compun produsul sunt împărțite în elemente hardware sau software ale platformei. Metodologia oferă algoritmi de partiționare pentru a lua în considerare consumul de energie, timpul de execuție și dimensiunea memoriei componentelor aplicației.
- Grupul de procese de management al produselor monitorizează și controlează sfera produsului, timpul, calitatea și parametrii de cost. Abordările sugerate constau în principal în practicile promovate de metoda Scrum Agile, precum și în modelele agile.
Creați un program de dezvoltare hardware
Structurarea unui program de dezvoltare hardware în stadiu incipient a permis companiilor să ofere un pivot rapid sau un plan B. Din punct de vedere al afacerii, poate diminua marjele financiare, dar, în final, oferă agilitatea necesară pentru a face față pieței în continuă schimbare. condiții în ceea ce privește produsele lansate de concurență și avansarea capacităților tehnologice.
Să presupunem că o companie derulează o campanie de crowdfunding de succes pentru produsul său hardware cu software încorporat. Ei lucrează grozav la primul lot de produse până când o mare companie consacrată anunță ceva similar. Versatilitatea și time to market sunt cele mai importante, iar un răspuns pragmatic și agil la această situație crește probabilitatea unui produs de succes. Având un program de dezvoltare hardware, compania se poate adapta rapid și pune în lumina reflectoarelor o versiune mai bogată a produsului ca răspuns la concurenții săi.
Testarea cu succes a hardware-ului cu software încorporat
Testarea este o componentă crucială a managementului produselor hardware deoarece, spre deosebire de testarea agilă a software-ului, majoritatea erorilor hardware pot fi remediate numai prin producerea unui nou lot de produse. Dispozitivele Samsung Galaxy Note 7 care au luat foc este un exemplu excelent de ce testarea hardware ar trebui să fie o prioritate de top pentru toți managerii de produs.
Testele funcționale sunt obiectivul cheie al validării tehnice pentru hardware cu produse software încorporate. Complexitatea acestor proceduri vine din faptul că erorile sunt probabil să vină din orice parte a sistemului.
Testarea unitară are loc de obicei într-un mediu simulat după fiecare sprint, deoarece hardware-ul simulat oferă avantajul de a fi perfect controlabil. Scripturile de testare pot fi automatizate, pot supraveghea execuția și pot ucide testele care par să se fi prăbușit fără a produce niciun rezultat.
Testarea integrării ar trebui să ia în considerare operațiunile online și offline și supunerea produsului hardware la condiții operaționale reale. De exemplu, dacă compania dezvoltă un sistem de monitorizare a creierului montat pe cap în timpul activităților în aer liber, condițiile de testare ar trebui să ia în considerare aceste particularități.
Testarea sistemului implică testarea întregului sistem pentru erori și bug-uri. Acest test este realizat prin interfațarea componentelor hardware și software ale întregului sistem (care au fost anterior testate în unitate și integrare) și apoi testate în ansamblu. Această testare este listată în metoda de testare cutie neagră, în care software-ul este verificat pentru scenarii așteptate de utilizator, excepții potențiale și condiții limită. Categorii speciale de testare menționate:
- Testare declanșată de evenimente: inițiată de anumite evenimente sau modificări de stare în viața produsului hardware (de exemplu, pornire, resetare, oprire). Scopul său este de a detecta defecțiuni permanente.
- Testare declanșată în timp: Inițiată la ore preconfigurate în funcționarea normală a sistemului, efectuată periodic pentru a detecta defecțiuni permanente. Este util în sistemele care rulează pe perioade lungi, unde nu au loc evenimente semnificative de declanșare a testului. Testarea declanșată în timp este, de asemenea, utilă pentru detectarea defecțiunilor intermitente.
Acceptarea produsului hardware cu software încorporat
Valoarea produsului pentru produsele hardware cu software încorporat este de obicei validată după etapa de acceptare a produsului în metodologia water-scrum-fall. Hardware-ul cu ecosistem software încorporat trebuie să acorde prioritate hardware-ului față de software pentru validare și acceptare. După cum sa menționat anterior, modificările hardware sunt mai dificil și mai costisitor de efectuat. Este obișnuit ca managerii de produs să conceapă soluții inovatoare, necesare pentru rezolvarea problemelor de acceptare sau ajustarea valorii ținând cont de constrângerea de a nu putea modifica hardware-ul și de a favoriza iterațiile suplimentare în domeniul dezvoltării software.
Managerii de produs excelenți au perspicacitatea produsului și marea putere de viziune în prognoza nevoilor hardware și în a prioritiza caracteristicile potrivite, astfel încât modelul de afaceri să fie solid, acceptarea să fie solidă și utilizatorii să se bucure de utilizarea produsului. Având în vedere software-ul încorporat, „decorarea” hardware-ului nu ar trebui să fie surprinzătoare, deoarece trebuie să respecte reguli și constrângeri, determinate de procesele de dezvoltare hardware, procedurile de certificare, provocările de producție și acceptarea pe piață.
Dezvoltarea hardware necesită agilitate gestionată
Agile a luat cu asalt lumea dezvoltării de software și acum a început să se strecoare în spațiul hardware. Cu toate acestea, condițiile produsului hardware cu dezvoltare software încorporat implică diverse provocări:
- Lipsa talentului specializat
- Sisteme de control al versiunilor care nu sunt adaptate pentru hardware
- Facilități de producție delocalizate
- Modificări care sunt mai greu de făcut în comparație cu software-ul
- Cerințe de certificare și reglementare care impun obstacole de planificare
Aceste provocări fac mai dificilă aplicarea principiilor agile în același mod în care o fac companiile de software.
Pentru a combate aceste provocări, este necesară o abordare a agilității gestionate sub formă de apă-scrum-fall. Dezvoltarea software-ului încorporat este creată urmând procedurile standard de scrum, în timp ce alți pași, cum ar fi ideea, crearea specificațiilor și testarea, sunt implementați într-o configurație în cascadă. Acest lucru permite companiilor de hardware să culeagă recompensele oferite de Agile, menținând în același timp o abordare funcțională de management al produselor, care trebuie să ia în considerare diferitele constrângeri enumerate mai sus. Această abordare a agilității gestionate oferă o cale de succes în contextul condițiilor de piață în schimbare rapidă și îmbunătățiri tehnologice constante.