• Skip to primary navigation
  • Skip to main content
  • Skip to footer

Codemotion Magazine

We code the future. Together

  • Discover
    • Events
    • Community
    • Partners
    • Become a partner
    • Hackathons
  • Magazine
    • Backend
    • Dev community
    • Carriere tech
    • Intelligenza artificiale
    • Interviste
    • Frontend
    • DevOps/Cloud
    • Linguaggi di programmazione
    • Soft Skill
  • Talent
    • Discover Talent
    • Jobs
    • Manifesto
  • Companies
  • For Business
    • EN
    • IT
    • ES
  • Sign in
ads

Matteo BaccanMarzo 3, 2026 7 min di lettura

L’Ingegneria del possibile: Oltre il dogma delle “Best Practice”

Carriere tech
facebooktwitterlinkedinreddit

Quando affrontiamo un problema di programmazione, sentiamo spesso frasi rassicuranti quanto limitanti:

"Questo è già stato risolto da [inserire nome guru qui], basta seguire le best practice."Code language: JSON / JSON with Comments (json)

Da un lato, queste parole dovrebbero tranquillizzarmi: il mio problema è già stato decodificato e risolto da menti illuminate. Dall’altro, mi fanno sentire inadeguato, come se fossi un eretico che non riuscisse a vedere la “luce” della soluzione perfetta, ripetendo errori ormai superati da centinaia di anni di storia informatica.

Recommended article
tech job interview concept
Gennaio 21, 2026

Job interview tech: il setup conta quanto il codice

Arnaldo Morena

Arnaldo Morena

Carriere tech

Frasi del genere ci inducono a credere che l’informatica sia una scienza esatta, come la matematica, dove 2+2 fa sempre 4. Suggeriscono che se il progetto è nel caos, se il debito tecnico ci soffoca o se il cliente è furioso, la colpa è esclusivamente nostra: non abbiamo applicato correttamente “La Ricetta”. Ma dopo anni di tastiere consumate, inizio a farmi una domanda scomoda: e se le ricette dei Guru fossero una stella polare, utile per navigare, ma pericolosa se scambiata per il porto di destinazione?

Per parafrasare il ragionier Ugo Fantozzi:

"Dopo tre mesi di letture maledette, Fantozzi vide la verità e si turbò leggermente, o meglio, si incazzò come una bestia. Ma allora mi han sempre preso per il culo!"Code language: JSON / JSON with Comments (json)

Non si tratta di sminuire i giganti dell’IT, ma di capire che loro descrivono l’eccellenza in condizioni ideali. La nostra missione, invece, è l’ingegneria del possibile. Un Senior non è colui che sopravvive al fango, ma colui che progetta il modo di bonificare il terreno, un passo alla volta.

Il miraggio del “Greenfield” e la strategia nel “Brownfield”

I “libri sacri”, da Extreme Programming a Clean Code, fioriscono nel “Greenfield”: praterie verdi dove si costruisce da zero, con team di alto livello, budget elastici e cultura del fallimento. Kent Beck, Martin Fowler, Dave Farley e Robert C. Martin (Uncle Bob) sono menti brillanti, ma le loro teorie assumono un contesto che nella realtà è più unico che raro. Meme come

"Deve essere pronto per ieri"Code language: JSON / JSON with Comments (json)

non sono solo battute, sono i confini del nostro campo da gioco. La realtà della maggior parte di noi è il Brownfield: monoliti stratificati dal 1995, database con campi nominati campo1, campo2, campo3 (con un manuale che spiega il significato di ognuno) e documentazione “nella testa” di ex colleghi.

Ricordo un progetto in cui un rivolo di sangue mi usciva dagli occhi ogni volta che dovevo capire cosa stava succedendo nel database. Spesso lavoriamo su sistemi che non possono essere toccati perché “nessuno sa cosa succede se cancelli quella colonna”. La seniority qui non è rassegnazione, è strategia. Dire “il problema è risolto” citando un libro è come suggerire il laser a un chirurgo sotto i bombardamenti. Il vero professionista sa che l’obiettivo non è solo salvare il paziente oggi, ma migliorare le condizioni dell’ospedale da campo affinché domani l’intervento sia più semplice.

La tassa sulla complessità

Il Test Driven Development è uno strumento potente, ma se usato acriticamente genera architetture contorte, sature di interfacce inutili usate da una sola classe e mock fragili che si rompono solo perché è cambiato il funzionamento interno del programma, che rimane consistente, ma il mock no.

Il rischio è un codice “testabile”, ma illeggibile. Per i junior questa piramide di astrazioni è spesso motivo di orgoglio: “Wow, che architettura fantastica!”. Per un Senior, invece, c’è la consapevolezza amara che chi ha scritto quel codice potrebbe aver già lasciato l’azienda prima che sia necessario passare le notti in produzione a debuggare un bug incomprensibile. È il momento della fuga: il codice è stato scritto per accrescere il CV, non per essere mantenuto.

E il Clean Code? L’ossessione per le funzioni di tre righe può diventare un incubo. Ho lavorato su progetti dove per capire un invio dovevi aprire 18 file diversi costituiti per il 60% da commenti ereditati come questo preso dalla codebase del core di Linux:

FIXME: this function is never used, whyCode language: JavaScript (javascript)

La speranza qui risiede nella qualità come efficienza: 50 righe di codice sequenziale sono spesso più manutenibili di un puzzle di micro-funzioni astratte sparse ovunque, ognuna con un nome lungo quanto una frase e un test che mocka tre livelli di dipendenze. Il cliente non paga per l’eleganza, paga perché funzioni.

Continuous Delivery vs. Ufficio Compliance

Dave Farley ci insegna che dovremmo rilasciare in produzione più volte al giorno. Il deployment non dovrebbe essere un evento, ma un “non-evento” privo di stress. Bellissimo. Poi però provate a dirlo all’ufficio compliance di una banca o al responsabile della sicurezza di un’azienda che gestisce dati sensibili.

Ah, vorreste fare deployment ogni ora? 
Ecco il lasciapassare A-38 da compilare per ogni rilascio, firmato dal responsabile di reparto, dal CISO e dal DPO.
Serve un piano di rollback validato e la finestra di deployment è il martedì tra le 2 e le 4 di notte.

Il Guru ti dirà che è un problema culturale. Ma lo sviluppatore non ha il potere di riscrivere le leggi bancarie europee o di convincere l’auditor che “i nostri test coprono tutto”. Quelle regole sono nate dal sangue di disastri reali: qualcuno ha fatto un deploy di venerdì sera cancellando i dati di diecimila clienti. La seniority strategica accetta questi muri di gomma e cerca di automatizzare ciò che è possibile, senza ignorare i vincoli della realtà burocratica.

Microservizi: Scalabilità vs Semplicità

“I monoliti non scalano”. E così spezziamo sistemi efficienti in 47 microservizi che comunicano tra loro con sette protocolli diversi (o chiamate dirette al database altrui perché non c’era tempo per l’API). Il grafico delle dipendenze sembra il disegno di mio figlio all’asilo quando “gli piaceva fare i cerchi”.

Il debugging diventa una caccia al tesoro tra log desincronizzati su più container, dove tail e grep sono considerati roba per poveracci. Ma nella mia azienda abbiamo 100 utenti concorrenti: CENTO. Una mole di traffico che anche un monolite in Visual Basic 6 gestirebbe senza sudare. Abbiamo creato una complessità immane per risolvere un problema che non avevamo, solo perché “Netflix lo fa così”. Tu non sei Netflix; non hai 10.000 ingegneri. La seniority è saper dire “no” alla complessità inutile.

Agile: da manifesto a burocrazia

"Individui e interazioni più dei processi e degli strumenti".Code language: JavaScript (javascript)

Poi ti ritrovi in daily standup di 45 minuti dove nessuno inizia a parlare, e quando tocca a te inventi una “supercazzola” perché ti vergogni a dire che hai perso otto ore di vita per una codepage della tabella DB non allineata. Abbiamo trasformato un manifesto di libertà in un’industria di certificazioni, Scrum Master, SAFe e KPI.
L’agilità si trasforma in burocrazia con un vocabolario diverso. La speranza è che l’essenza dell’Agile risieda nel team che si parla davvero, proteggendosi dalle “feature ad personam” dettate da manager che chiedono stime basate sul nulla (o sul nome della feature stessa). L’agilità è un’attitudine, non un board su Jira.

Gestire il debito: Oltre la sindrome del TODO

"Lascia il codice migliore di come l'hai trovato"Code language: JSON / JSON with Comments (json)

Una regola d’oro, ma che non deve diventare una giustificazione per refactoring infiniti che fanno slittare le deadline. Il Senior sa che aggiungere un “brutto if” non è una sconfitta se lo si fa con metodo. Non basta scrivere un TODO che nessuno leggerà mai.

Gestire il debito significa negoziarlo: si inserisce la pezza per rispettare la deadline, si apre un ticket di refactoring e si concorda che il “prestito” tecnico va restituito. Magari ad agosto, quando hai tempo per ragionare perché tutti sono al mare (e tu ci andrai a settembre). Questa è la differenza tra un Senior e un dilettante: il primo contrae un debito consapevole, il secondo crea un disastro involontario.

La Metafora del Tavernello: Scope vs Qualità

Una volta mi hanno detto:

"Se hai 3 euro in tasca compri un Tavernello, non un Barolo."Code language: JSON / JSON with Comments (json)

È un’analogia potente. Nell’IT usare un prodotto che non copre in modo corretto i requisiti può causare problemi più grandi di quelli che si avrebbero comperando un prodotto di fascia alta. Il vero compromesso non deve riguardare la qualità intrinseca (il codice deve essere corretto, sicuro e testato), ma lo scope (cosa facciamo). Se hai poco budget, non cucinare un pranzo di nozze scadente: prepara un’ottima pasta al pomodoro. Semplifica i requisiti, non la cura con cui scrivi le righe di codice.

Ricordo un video dove Luca Mezzalira parlava di DAZN: per cambiare l’anno nel footer dei siti, editano a mano 4 file. Soluzione sporca? Forse. Ma in 5 minuti è fatta, rischio zero e impatto bassissimo. Se lo fanno i Guru dei microservizi, forse non è così sbagliato. Quel codice “brutto” spesso sopravvive anni generando valore, mentre il codice “bello” iper-ingegnerizzato viene riscritto dopo sei mesi perché nessuno sa come toccarlo.

I guru vendono libri, noi vendiamo soluzioni

I Guru sono chef stellati che comprano ingredienti di prima scelta. Noi siamo i cuochi che devono sfamare 200 persone in un’ora. Se provi a replicare la ricetta del Tiramisù di Iginio Massari senza avere il tempo per i savoiardi fatti in casa, finirai con le persone che se ne vanno a casa scocciate per l’attesa. Usa i biscotti del supermercato e concentrati su una crema decente.

Dobbiamo creare soluzioni basate sul reale. I Guru indicano la vetta, ma siamo noi che dobbiamo tracciare il sentiero tra i rovi. L’eccellenza è fornire la massima qualità possibile entro i vincoli dati, non lamentarsi dei vincoli stessi.

Ma quindi siamo vecchi o senior?

La differenza è che il vecchio ha smesso di imparare, il senior ha smesso di essere un fanatico. Il senior ha studiato le regole così bene da sapere esattamente quando infrangerle per salvare il progetto, trasformando quella deroga in un atto consapevole di ingegneria.

Ha imparato che “dipende” è la risposta più onesta. Che il codice perfetto è nemico del codice funzionante. Che consegnare il 90% in tempo è meglio del 100% in ritardo. E se questo significa passare per uno che “vive nella comfort zone” agli occhi di chi fa vibe coding con l’ultimo framework pubblicizzato su X: me ne farò una ragione.

Ci vediamo in trincea. Sguazziamo nel fango, teniamo in piedi monoliti e costruiamo ponti. Perché alla fine, la colpa non è dei Guru che ci hanno fatto credere nella perfezione, ma nostra se abbiamo smesso di cercare l’eccellenza possibile per rincorrere quella immaginaria.

Related Posts

Autostopisti podcast imagine

Il Podcasting : dal monologo al delirio organizzato

Arnaldo Morena
Gennaio 14, 2026
imb skillsbuild

5 corsi gratuiti IBM SkillsBuild per aggiornare (o potenziare) le tue competenze tech

Codemotion
Ottobre 21, 2025
I diversi stili di leadership nel settore tech: scegliere l’approccio giusto per guidare l’innovazione

I diversi stili di leadership nel settore tech: scegliere l’approccio giusto per guidare l’innovazione

Gianluca Desiderato
Settembre 23, 2025
diventare programmatore oggi

Il mondo della programmazione è cambiato e con esso il modo di diventare programmatori

Matteo Baccan
Settembre 10, 2025
Share on:facebooktwitterlinkedinreddit

Tagged as:baccan best practice

Matteo Baccan
Matteo Baccan è un ingegnere del software e formatore professionista con oltre 30 anni di esperienza nel settore IT. Ha lavorato per diverse aziende e organizzazioni, occupandosi di progettazione, sviluppo, testing e gestione di applicazioni web e desktop, utilizzando vari linguaggi e tecnologie. È anche un appassionato divulgatore e insegnante di informatica, autore di numerosi articoli, libri e corsi online rivolti a tutti i livelli di competenza. Gestisce un sito internet e un canale YouTube dove condivide video tutorial, interviste, recensioni e consigli sulla programmazione. Attivo nelle community open source, partecipa regolarmente a eventi e concorsi di programmazione. Si definisce…
Claude Code fa tremare Wall Street con la nuova guida per modernizzare codice legacy
Previous Post
MiniMax M2.5: costi bassi, prestazioni alte, rilancia la sfida geopolitica dell’AI cinese
Next Post

Footer

Discover

  • Events
  • Community
  • Partners
  • Become a partner
  • Hackathons

Magazine

  • Tech articles

Talent

  • Discover talent
  • Jobs

Companies

  • Discover companies

For Business

  • Codemotion for companies

About

  • About us
  • Become a contributor
  • Work with us
  • Contact us

Follow Us

© Copyright Codemotion srl Via Marsala, 29/H, 00185 Roma P.IVA 12392791005 | Privacy policy | Terms and conditions