Mokabyte

Dal 1996, architetture, metodologie, sviluppo software

  • Argomenti
    • Programmazione & Linguaggi
      • Java
      • DataBase & elaborazione dei dati
      • Frameworks & Tools
      • Processi di sviluppo
    • Architetture dei sistemi
      • Sicurezza informatica
      • DevOps
    • Project Management
      • Organizzazione aziendale
      • HR
      • Soft skills
    • Lean/Agile
      • Scrum
      • Teoria della complessità
      • Apprendimento & Serious Gaming
    • Internet & Digital
      • Cultura & Società
      • Conferenze & Reportage
      • Marketing & eCommerce
    • Hardware & Tecnologia
      • Intelligenza artificiale
      • UX design & Grafica
  • Ultimo numero
  • Archivio
    • Archivio dal 2006 ad oggi
    • Il primo sito web – 1996-2005
  • Chi siamo
  • Libri
  • Contatti e newsletter
  • Argomenti
    • Programmazione & Linguaggi
      • Java
      • DataBase & elaborazione dei dati
      • Frameworks & Tools
      • Processi di sviluppo
    • Architetture dei sistemi
      • Sicurezza informatica
      • DevOps
    • Project Management
      • Organizzazione aziendale
      • HR
      • Soft skills
    • Lean/Agile
      • Scrum
      • Teoria della complessità
      • Apprendimento & Serious Gaming
    • Internet & Digital
      • Cultura & Società
      • Conferenze & Reportage
      • Marketing & eCommerce
    • Hardware & Tecnologia
      • Intelligenza artificiale
      • UX design & Grafica
  • Ultimo numero
  • Archivio
    • Archivio dal 2006 ad oggi
    • Il primo sito web – 1996-2005
  • Chi siamo
  • Libri
  • Contatti e newsletter

Nel numero:

331 ottobre
, anno 2026

Appunti filosofici di un Software Architect

Un’introduzione al tema

Alberto Acerbis

Sono fondamentalmente un eterno curioso. Mi definisco da sempre uno sviluppatore backend, ma non disdegno curiosare anche dall'altro lato del codice. Mi piace pensare che "scrivere" software sia principalmente risolvere problemi di business e fornire valore al cliente, e in questo trovo che i pattern del DDD siano un grande aiuto. Lavoro come Software Engineer presso intré, un'azienda che sposa questa ideologia; da buon introverso trovo difficoltoso uscire allo scoperto, ma mi piace uscire dalla mia comfort-zone per condividere con gli altri le cose che ho imparato, per poter trovare ogni volta i giusti stimoli a continuare a migliorare.
Mi piace frequentare il mondo delle community, contribuendo, quando posso, con proposte attive. Sono co-founder della community DDD Open e Polenta e Deploy, e membro attivo di altre community come Blazor Developer Italiani.

architetture e filosofia

Appunti filosofici di un Software Architect

Un’introduzione al tema

Immagine di Alberto Acerbis

Alberto Acerbis

  • Questo articolo parla di: Architetture dei sistemi, Soft skills

 

Nei prossimi mesi pubblicheremo, nella nostra collana MBook disponibile in download dal sito, un libro dedicato a un interessante parallelismo tra architettura dello sviluppo del software e temi filosofici. Nella storia del pensiero umano, infatti, certi problemi e certi interrogativi tornano a più riprese. Ma anche nel mondo dello sviluppo software ci si interroga da tempo su come affrontare e risolvere determinati problemi. Su questa metafora, e sul modo in cui certi problemi affrontati nella storia della filosofia possano ritrovarsi nello sviluppo contemporaneo di architetture software, si basa appunto il nuovo libro di Alberto Acerbis. In questo articolo, l’autore ci introduce alla questione e presenta alcuni spunti di riflessione.

———————————————————————

 

Il problema non è mai stato il codice

Negli ultimi tempi mi sono ritrovato a mettere in discussione una convinzione che avevo dato per scontata per molti anni: che il mio lavoro fosse costruire software. È una frase che sembra perfettamente ragionevole. Dopotutto faccio il software architect. Passo le giornate a discutere di sistemi distribuiti, Domain-Driven Design, cloud, architetture event-driven, AI e microservizi. È naturale pensare che il software sia il centro del mio lavoro.

Eppure, più passa il tempo, più mi convinco che il software arrivi sempre per ultimo. Il software è il risultato. Non è il punto di partenza.

Scrivere codice non basta

Negli ultimi vent’anni il nostro settore è cambiato radicalmente. Sono cambiati i linguaggi, i framework, il modo di distribuire le applicazioni. Abbiamo imparato a costruire sistemi distribuiti, a utilizzare il cloud, a orchestrare container e a progettare architetture basate sugli eventi.

Oggi, grazie all’intelligenza artificiale generativa, possiamo perfino delegare una parte significativa della scrittura del codice. Se guardassimo soltanto gli strumenti, dovremmo concludere che sviluppare software non è mai stato così semplice.

E allora perché continuiamo a costruire sistemi che, dopo pochi anni, diventano difficili da comprendere? Perché continuiamo a riscrivere applicazioni che, dal punto di vista tecnologico, funzionano ancora perfettamente? Perché le discussioni più lunghe di un progetto raramente riguardano il framework, il database o il linguaggio di programmazione?

La mia esperienza è che le conversazioni davvero importanti iniziano molto prima. Cominciano quando qualcuno pronuncia una frase apparentemente banale: “Vorrei un sistema per gestire gli ordini.”

Figura 1 – Ogni sistema software comincia con una conversazione.
Figura 1 – Ogni sistema software comincia con una conversazione.

 

Interrogarsi, proprio come in filosofia…

Da quel momento inizia il vero lavoro.

  • Che cos’è esattamente un ordine?
  • Quando nasce?
  • Quando smette di esistere?
  • Può essere modificato?
  • Chi ne è responsabile?

Due persone possono utilizzare la stessa parola attribuendole significati completamente diversi, spesso senza nemmeno accorgersene. Ed è proprio lì che nasce la complessità. Non nel codice. Nel significato.

Negli ultimi mesi questa sensazione è diventata ancora più forte. L’arrivo dell’AI generativa ha alimentato una domanda che tutti, almeno una volta, ci siamo posti: “Se una macchina può scrivere il codice, quale sarà il ruolo di uno sviluppatore? E di un software architect?”

Figura 2 – Un conto è generare il codice, un conto è realizzare una vera comprensione del problema che quel software deve risolvere.
Figura 2 – Un conto è generare il codice, un conto è realizzare una vera comprensione del problema che quel software deve risolvere.

 

Comprendere i problemi

Non ho una risposta definitiva. Ma ho una convinzione sempre più forte: l’intelligenza artificiale non ha reso meno importante il nostro lavoro. Ha semplicemente messo in evidenza la parte del nostro lavoro che è sempre stata fondamentale: comprendere il problema.

Perché quando il contesto è ambiguo, anche il codice generato dall’AI sarà ambiguo. Quando il dominio è compreso male, anche la soluzione più elegante poggerà su fondamenta fragili. L’AI ha reso il codice più economico. Non ha reso più economica la comprensione.

Forse le domande che ci poniamo ogni giorno sono molto più antiche di quanto immaginiamo. Quando decidiamo che cosa rappresentare in un sistema, stiamo scegliendo quali aspetti della realtà considerare importanti. Quando definiamo un modello, stiamo stabilendo quali differenze meritano di esistere e quali possono essere ignorate. Quando assegniamo un nome a qualcosa, non ci limitiamo a descriverla. Le parole influenzano il modo in cui le persone la comprenderanno, ne parleranno e costruiranno software attorno a essa.

Il risvolto della filosofia

Queste non sono soltanto decisioni tecniche. Sono decisioni sulla realtà, sulla conoscenza e sul significato. Ed è forse per questo che le tecnologie cambiano continuamente, mentre alcune difficoltà rimangono sempre le stesse.

Possiamo sostituire un framework. Possiamo migrare un database. Possiamo riscrivere un’applicazione. Possiamo persino chiedere a un’intelligenza artificiale di generare il codice. Ma nessuno strumento può decidere al posto nostro che cosa il sistema debba davvero rappresentare.

Il codice può essere automatizzato. La comprensione no.

Ed è lì, molto prima della prima riga di codice, che comincia davvero l’architettura.

 

Facebook
Twitter
LinkedIn
Alberto Acerbis

Sono fondamentalmente un eterno curioso. Mi definisco da sempre uno sviluppatore backend, ma non disdegno curiosare anche dall'altro lato del codice. Mi piace pensare che "scrivere" software sia principalmente risolvere problemi di business e fornire valore al cliente, e in questo trovo che i pattern del DDD siano un grande aiuto. Lavoro come Software Engineer presso intré, un'azienda che sposa questa ideologia; da buon introverso trovo difficoltoso uscire allo scoperto, ma mi piace uscire dalla mia comfort-zone per condividere con gli altri le cose che ho imparato, per poter trovare ogni volta i giusti stimoli a continuare a migliorare.
Mi piace frequentare il mondo delle community, contribuendo, quando posso, con proposte attive. Sono co-founder della community DDD Open e Polenta e Deploy, e membro attivo di altre community come Blazor Developer Italiani.

Immagine di Alberto Acerbis

Alberto Acerbis

Sono fondamentalmente un eterno curioso. Mi definisco da sempre uno sviluppatore backend, ma non disdegno curiosare anche dall'altro lato del codice. Mi piace pensare che "scrivere" software sia principalmente risolvere problemi di business e fornire valore al cliente, e in questo trovo che i pattern del DDD siano un grande aiuto. Lavoro come Software Engineer presso intré, un'azienda che sposa questa ideologia; da buon introverso trovo difficoltoso uscire allo scoperto, ma mi piace uscire dalla mia comfort-zone per condividere con gli altri le cose che ho imparato, per poter trovare ogni volta i giusti stimoli a continuare a migliorare. Mi piace frequentare il mondo delle community, contribuendo, quando posso, con proposte attive. Sono co-founder della community DDD Open e Polenta e Deploy, e membro attivo di altre community come Blazor Developer Italiani.
Tutti gli articoli
Nello stesso numero
Loading...

Il CMS agentico: la terza via

IV parte: Git come workflow editoriale nativo

Modelli LLM: Come funzionano?

XI parte: Le fasi dell’addestramento

Anonimizzare i dati per l’AI

La soluzione italiana

Nella stessa serie
Loading...

Il CMS agentico: la terza via

IV parte: Git come workflow editoriale nativo

Modelli LLM: Come funzionano?

XI parte: Le fasi dell’addestramento

Anonimizzare i dati per l’AI

La soluzione italiana

Il CMS agentico: la terza via

III parte: Il problema dell’intenzione editoriale

LLM in un’architettura preesistente

Dove collocarli (e dove non metterli…)

Agenti AI open source a confronto

OpenClaw, Hermes, Prime Agent, OpenCode…

Modelli LLM: Come funzionano?

X parte: I fondamenti dell’addestramento

Il CMS agentico: la terza via

II parte: Il design system come vocabolario dell’agente

ChartNet per l’analisi di grafici

Un modello piccolo per grandi risultati

Dove sono finiti i miei token?

II parte: Linee guida per un uso efficiente del modello

Serious gaming

Uno sguardo d’insieme

Il CMS agentico: la terza via

I parte: Websmith, un agente AI per costruire e gestire siti

Dove sono finiti i miei token?

I parte: Comprendere il meccanismo

RecursiveMAS ha abolito i token

Gli agenti parlano nella loro lingua

Agilità organizzativa

Individui e interazioni nelle aziende moderne

LLMs models: how do they work?

Part 9: Prompt engineering with frameworks

Tutto quello che sapevi sullo sviluppo prodotto è cambiato

Le “ondate” dello sviluppo prodotto con AI

Dopo la MokaByte Conference 26

Riflessioni sull’impatto dell’AI

Modelli LLM: Come funzionano?

IX parte: Prompt Engineering con i framework

Dieci regole per usare l’AI in azienda

Come cambiano le policy

LLMs models: how do they work?

Part 8: A first look at Prompt Engineering

Trent’anni di MokaByte

Le giornate della Moka

Autoresearch con l’AI

Insegnare alle macchine a fare ricerca autonoma

Modelli LLM: Come funzionano?

VIII parte: Un primo sguardo sul Prompt Engineering

Mokabyte

MokaByte è una rivista online nata nel 1996, dedicata alla comunità degli sviluppatori java.
La rivista tratta di vari argomenti, tra cui architetture enterprise e integrazione, metodologie di sviluppo lean/agile e aspetti sociali e culturali del web.

Imola Informatica

MokaByte è un marchio registrato da:
Imola Informatica S.P.A.
Via Selice 66/a 40026 Imola (BO)
C.F. e Iscriz. Registro imprese BO 03351570373
P.I. 00614381200
Cap. Soc. euro 100.000,00 i.v.

Privacy | Cookie Policy

Contatti

Contattaci tramite la nostra pagina contatti, oppure scrivendo a info@mokabyte.it

Seguici sui social

Facebook Linkedin Rss
Imola Informatica
Mokabyte