Tohum

Playbook end-to-end per lo sviluppo di prodotti IoT – Fase 1: Requisiti degli stakeholder e di sistema

Illustrazione: le voci di tre stakeholder convergono in un unico elenco di requisiti

Prima le cose importanti!

Clicca per la sezione precedente: Fase 0

I requisiti vengono prima in ogni progetto IoT ben gestito — prima degli schematici, prima del firmware, prima della prima riga di codice. Avete deciso che la vostra idea di prodotto merita di essere tenuta, e la tentazione ora è buttarvi direttamente nella costruzione. Resistete. La Fase 1 riguarda la raccolta dei requisiti, il fondamento di tutto ciò che segue. Può non sembrare eccitante come accendere un nuovo circuito o scrivere codice, ma pensatela come il tracciare la mappa prima di salpare. I viaggi senza mappe sono avventurosi, certo — semplicemente raramente finiscono bene.

Nella Fase 1: Requisiti degli stakeholder e di sistema, raccogliamo input da tutti gli attori chiave e definiamo esattamente cosa stiamo costruendo e perché: cosa deve fare il prodotto, le condizioni che deve soddisfare e i vincoli che deve rispettare. Il tempo investito qui viene ripagato dopo. Ogni decisione di design, ogni riga di codice e ogni test lungo il percorso risalirà a questi requisiti — sono la stella polare del progetto. Caricate senza di essi e rischiate di costruire la cosa sbagliata, o di scoprire dopo mesi di lavoro che una funzionalità chiave è stata trascurata o che un’assunzione era sbagliata.

In questo capitolo scomponiamo cosa significa catturare i requisiti degli stakeholder e di sistema: perché questa fase conta, i tipi di requisiti da considerare e come documentarli chiaramente. Condivideremo anche esempi che mostrano come definire bene i requisiti all’inizio può decretare il successo o il fallimento di un progetto IoT.

Cosa sono esattamente i requisiti?

Quindi cosa intendiamo per “requisiti”? In termini semplici, sono una descrizione dettagliata di cosa deve fare il vostro prodotto e in quali condizioni deve farlo — il regolamento del progetto, che cattura tutto ciò che ci si aspetta dal dispositivo prima di costruirlo. Se il vostro prodotto fosse una storia, i requisiti sarebbero la scaletta della trama: assicurano che tutti gli elementi chiave siano definiti così che la storia regga alla fine.

I requisiti si presentano in alcune varianti, ciascuna che copre un aspetto diverso del prodotto:

Attraverseremo ogni categoria in dettaglio. Per ora, ricordate che un buon requisito è chiaro, specifico e testabile. “Il dispositivo dovrebbe essere fantastico” non aiuterà il vostro team di ingegneria. “Il dispositivo deve misurare la temperatura da 0°C a 50°C con accuratezza di ±0,5°C” sì: chiunque lo legga sa esattamente cosa ci si aspetta, e dopo potete testare se il dispositivo lo soddisfa. Questo è il livello di chiarezza a cui puntare.

Requisiti funzionali

I requisiti funzionali descrivono le funzionalità, le funzioni e i comportamenti specifici del vostro prodotto IoT — cosa il sistema deve fare. Se qualcuno chiede “Cosa fa il tuo dispositivo?”, la risposta è un riassunto dei suoi requisiti funzionali: le azioni e i servizi che il dispositivo fornisce all’utente o ad altri sistemi.

Per un dispositivo IoT, i requisiti funzionali spesso includono:

Un esempio concreto. Supponiamo che stiate costruendo un semplice sensore di temperatura IoT per uso smart home. Alcuni requisiti funzionali potrebbero essere:

Ciascuno descrive qualcosa che il sistema fa, di solito formulato come “Il dispositivo deve…” seguito da un comportamento specifico. Quel formato rende la verifica semplice in seguito: o il dispositivo fa X come specificato, o non lo fa.

Buoni requisiti funzionali dipingono un quadro chiaro delle capacità, così il team di ingegneria sa esattamente cosa implementare. Solo allora i designer hardware e software possono pensare a come realizzarlo — il cosa viene prima, ed è per questo che questi requisiti vengono definiti ora. Senza di essi, potete ritrovarvi con un prodotto che manca ciò di cui l’utente ha davvero bisogno: un’elaborata stazione meteo IoT, per dire, che viene spedita senza sensore di umidità perché nessuno l’ha scritto. Definire i requisiti funzionali all’inizio cattura le funzionalità irrinunciabili prima che ciò accada.

Requisiti non funzionali

I requisiti non funzionali specificano le qualità, le condizioni e i vincoli del prodotto anziché le sue funzionalità: quanto bene funziona, quanto è robusto e quali limiti deve rispettare. Stabiliscono i guardrail per la qualità complessiva, e sono critici quanto le funzionalità stesse — mantengono il dispositivo sicuro, affidabile e pratico nel mondo reale.

Considerazioni non funzionali comuni per un dispositivo IoT:

È una lista lunga, ma pensate ai requisiti non funzionali come agli attributi di qualità che il prodotto deve avere. Raramente finiscono nella brochure di marketing, eppure ignorarli fa fallire il prodotto in modi meno evidenti. Un sensore può riportare dati perfettamente (funzionale!) e comunque frustrare ogni utente perché la sua batteria muore in un giorno. Un dispositivo può funzionare bene in laboratorio e comunque cadere al primo attacco perché la sicurezza non è stata integrata fin dall’inizio.

Definire queste qualità all’inizio assicura che il prodotto finale non sia solo ricco di funzionalità, ma robusto, usabile e sostenibile. I requisiti non funzionali guidano le scelte dei componenti, l’architettura software (affidabilità, sicurezza), il design meccanico (durata, dimensioni) e persino il modo in cui testerete. Lavorano dietro le quinte, ma sono essenziali per soddisfare le aspettative degli stakeholder e sopravvivere al deployment nel mondo reale.

Requisiti di interfaccia

I requisiti di interfaccia definiscono come il vostro prodotto si connette e interagisce con il mondo esterno — fisicamente e logicamente. Le interfacce sono i punti di contatto tra il vostro dispositivo e tutto il resto: altro hardware, fonti di alimentazione, contenitori, utenti e sistemi software. Questa categoria assicura che il dispositivo si inserisca nel suo ecosistema previsto e comunichi correttamente al suo interno.

Aspetti coperti dai requisiti di interfaccia:

Definire bene i requisiti di interfaccia chiarisce come tutti i pezzi si collegano. Se state progettando un sensore che si attacca a una macchina industriale, un requisito di interfaccia meccanica specifica le dimensioni e il pattern dei fori per le viti così che entri davvero. Se il dispositivo è alimentato a batteria, un requisito di interfaccia elettrica assicura un connettore standard così che l’utente possa ricaricarlo facilmente. Ne mancate uno, e ottenete l’esito classico: un dispositivo perfettamente valido a cui nessuno riesce a connettersi perché manca la porta giusta.

In breve, i requisiti di interfaccia assicurano che il vostro dispositivo funzioni con il suo ambiente e i suoi utenti — che si tratti di una smart home, di un impianto industriale o di una persona con un telefono. Trascurarli è spesso la differenza tra un prodotto compatibile e facile da usare e uno che causa mal di testa durante l’integrazione.

Coinvolgere gli stakeholder fin da subito

Da dove vengono tutti questi requisiti? Non dal nulla — li raccogliete dai vostri stakeholder: tutti coloro che hanno un interesse nel successo del prodotto. Questo include i candidati ovvi, utenti finali e clienti, ma anche marketing, vendite, ingegneri di diverse discipline (hardware, software, firmware), project manager ed esperti di normative o conformità. Ogni gruppo ha i propri bisogni e le proprie preoccupazioni, e i requisiti dovrebbero catturare ogni prospettiva critica.

Identificate i vostri stakeholder e coinvolgeteli presto, perché sono loro a definire come sarà il “successo”. Il marketing potrebbe dire: “Deve costare meno di 50 $ e durare un anno con una carica — è quello che i nostri clienti si aspettano.” Gli utenti finali (o una persona rappresentativa) potrebbero aver bisogno che il setup sia semplice e la manutenzione minima. Il team software potrebbe aver bisogno di un’API robusta per integrarsi con una piattaforma cloud. L’esperto di sicurezza insisterà su cifratura e autenticazione. Un responsabile della conformità vi ricorderà i limiti di emissione radio FCC o gli standard di sicurezza elettrica. Tutti questi input diventano requisiti.

Far emergere questi bisogni ora costa molto meno che dopo. Sessioni di brainstorming, workshop o semplici interviste con ogni gruppo di stakeholder costruiranno un elenco completo. Non fatelo in una bolla: un requisito scritto senza l’input degli stakeholder può mancare il bersaglio. Saltate il team di assistenza clienti e potreste trascurare “Il dispositivo deve fornire un meccanismo di reset per ripristinare le impostazioni di fabbrica” — importante per la risoluzione dei problemi. Saltate la produzione e potreste specificare un design troppo costoso o troppo difficile da produrre in volume.

Il coinvolgimento precoce crea anche adesione. Quando le persone vedono le proprie preoccupazioni affrontate nei requisiti, sostengono il progetto, e meno sorprese emergono dopo. Gli stakeholder portano esperienza — usarla ora risparmia cambiamenti dolorosi lungo la strada.

Man mano che questi input si accumulano, prende forma il quadro dei requisiti funzionali, non funzionali e di interfaccia necessari. Questa fase è essenzialmente un colmare il divario tra un’idea promettente e un prodotto chiaramente definito: desideri sfumati (“Deve essere economico! Deve essere sicuro! Deve fare X e Y!”) diventano requisiti precisi con cui gli ingegneri possono lavorare, parlando con le persone giuste e facendo le domande giuste.

La raccolta dei requisiti è uno sport di squadra. Portate gli attori chiave nella stanza — letteralmente o figurativamente — e definite cosa deve fare il dispositivo. Più punti di vista incorporate ora, meno punti ciechi vi portate nelle fasi successive.

Documentare e tracciare i requisiti

Una volta raccolti, i requisiti devono essere scritti chiaramente e organizzati. Una registrazione ben strutturata mantiene tutti sulla stessa pagina e assicura che nulla vada perso. In pratica, i team usano metodi diversi:

Qualunque formato scegliate, mantenete ogni requisito non ambiguo e testabile. Evitate parole vaghe come “ottimale”, “facile da usare” o “sufficiente” senza quantificazione; usate numeri concreti o criteri chiari. Invece di “la durata della batteria dovrebbe essere lunga”, scrivete “la durata della batteria deve essere di almeno 12 mesi con una singola carica con upload di dati orari.” È un obiettivo su cui i designer possono lavorare, senza congetture.

Un’altra abitudine utile: etichettate ogni requisito con come lo verificherete in seguito — pensate in anticipo a come dimostrerete che il prodotto lo soddisfa. Metodi di verifica comuni:

Etichettare il metodo di verifica all’inizio — alcuni team aggiungono una colonna “Metodo di verifica” al documento dei requisiti — forza ogni requisito a essere formulato in modo da poter essere dimostrato in seguito. Vi risparmia anche il momento della fase di test in cui qualcuno chiede: “Aspetta, come controlliamo se abbiamo raggiunto questo obiettivo vago?”

Infine, mantenete il documento dei requisiti aggiornato. Man mano che il progetto evolve potreste rifinire o aggiungere requisiti (idealmente non troppi, se il lavoro iniziale è stato approfondito). Un elenco organizzato e sotto version control — anche un semplice foglio di calcolo o un documento vivo — mantiene tutti allineati sui requisiti concordati correnti, e aiuta i nuovi membri del team a mettersi in pari su cosa il prodotto dovrebbe fare.

In breve: non scarabocchiate i requisiti su post-it sperando nella buona sorte. Scriveteli in modo chiaro e strutturato — un documento formale o un backlog ben mantenuto. La chiarezza ora previene la confusione dopo, e pianificare la verifica presto spiana la strada a una fase di test più fluida.

Per concludere la Fase 1

Ancora una volta, prima di andare avanti: cambiare un requisito in ritardo è come decidere di aggiungere una camera da letto dopo che la casa è stata costruita — possibile, ma doloroso e costoso. Nell’IoT, “doloroso e costoso” può significare una riprogettazione completa del PCB perché un sensore è stato dimenticato, o una revisione importante del firmware perché un caso d’uso non era stato considerato. Può significare ritardi, sforamenti di budget o, nel peggiore dei casi, un prodotto che tradisce i suoi utenti e stakeholder.

Investire lo sforzo ora per catturare requisiti chiari degli stakeholder e di sistema dà al progetto il suo progetto e la sua roadmap. I requisiti diventano il punto di riferimento per tutti i coinvolti:

Quando disaccordi o nuove idee appaiono in seguito, il documento dei requisiti è la stella polare che mantiene il team allineato. Se qualcuno propone feature creep a metà dello sviluppo, potete chiedere: “È nello scope secondo i nostri requisiti concordati? Se no, cosa sacrificiamo per aggiungerlo?”

Quindi prendetevi il tempo per fare bene la Fase 1. Fate entrare gli stakeholder, ragionate sulle funzioni e sui vincoli, scrivete tutto chiaramente e ricontrollate che il tutto regga. Iterare su una specifica costa molto meno che iterare su un dispositivo fisico o su una codebase. Fate bene questa fase, e preparate ogni fase che segue.

Con un solido insieme di requisiti degli stakeholder e di sistema in mano, siete pronti ad andare avanti verso il design e la costruzione di qualcosa che li soddisfi. E mentre lo fate, portate la mappa con voi — prima le cose importanti, fatte bene.