L’architettura prima dell’hardware

Le decisioni più importanti di un progetto si prendono prima di acquistare il primo componente.

Quando si parla di un progetto tecnologico, la prima domanda è quasi sempre la stessa:

“Che hardware hai usato?”

È una domanda legittima. Raspberry Pi, ESP32, sensori, telecamere, cloud, database… oggi esistono centinaia di componenti tra cui scegliere.

Ma, almeno per come lavoro io, è la domanda sbagliata da cui partire.

Ogni volta che inizio un nuovo progetto cerco di ignorare, almeno per un momento, tutta la tecnologia disponibile. Prima voglio capire quale problema sto cercando di risolvere.

Partire dal problema

Ivrea Observatory è un buon esempio.

L’obiettivo non era costruire una dashboard o utilizzare una Raspberry Pi. L’obiettivo era progettare un sistema capace di osservare e raccontare il cielo in modo continuo, raccogliendo dati ambientali e immagini in tempo reale, con costi contenuti e una manutenzione minima.

Tradotto in requisiti, il sistema doveva:

  • funzionare 24 ore su 24;
  • consumare poca energia;
  • essere affidabile nel tempo;
  • essere facilmente espandibile con nuovi sensori;
  • poter essere gestito anche da remoto;
  • rimanere economicamente sostenibile.

Solo dopo aver definito questi requisiti ha avuto senso iniziare a parlare di hardware.

Ogni scelta è un compromesso

Non esiste il componente perfetto.

Esistono componenti più adatti a un determinato contesto.

Un Raspberry Pi 5 offre prestazioni superiori rispetto a un Raspberry Pi Zero 2 W. Sarebbe quindi stata la scelta migliore?

Non necessariamente.

Nel mio caso il sistema doveva acquisire immagini, dialogare con alcuni sensori, pubblicare dati e rimanere acceso senza interruzioni. Le prestazioni del Raspberry Pi Zero 2 W erano più che sufficienti, mentre i consumi ridotti rappresentavano un vantaggio concreto.

La scelta non è stata “il Raspberry migliore”, ma “il Raspberry più adatto”.

Lo stesso ragionamento si è ripetuto per ogni altro componente: telecamera, sensori, rete Wi-Fi e alimentazione.

Progettare significa decidere

Ogni progetto è una sequenza di decisioni.

Ogni decisione introduce un compromesso.

Ogni compromesso comporta vantaggi e rinunce.

Per questo motivo considero l’architettura la parte più importante del lavoro. È il momento in cui si definiscono le regole del sistema, la sua evoluzione futura e, spesso, anche il suo costo di manutenzione.

Quando l’architettura è solida, sostituire un componente diventa relativamente semplice.

Quando l’architettura è fragile, anche un piccolo cambiamento può avere conseguenze imprevedibili.

Il valore di un progetto

Guardando Ivrea Observatory dall’esterno è facile vedere una telecamera, alcuni sensori e una dashboard.

Io vedo qualcosa di diverso.

Vedo un insieme di decisioni prese nel tempo, continuamente riviste e migliorate sulla base dell’esperienza.

È questo, per me, il valore più interessante di un progetto tecnologico: non l’elenco dei componenti utilizzati, ma il percorso che porta a sceglierli.

Per questo motivo, quando qualcuno mi chiede quale hardware consiglio, la mia risposta è quasi sempre la stessa:

dipende da quale problema stai cercando di risolvere.