Salta al contenuto principale

Chi Sono

Architetto Software .NET, Speaker e Formatore

Il viaggio che mi ha portato qui

L'inizio: test manuali e frustrazioni

Il mio primo lavoro in una multinazionale mi ha messo di fronte a un progetto gigantesco, composto da decine di microservizi. L'unico modo per testare qualcosa era rilasciare sul server di sviluppo. Ogni volta che dovevamo testare un bug in produzione, partiva una routine estenuante: trovare i dati giusti, replicare il problema, controllare i log.

La scoperta degli unit test

Un giorno mi viene chiesto di scrivere test per raggiungere l'80% di code coverage. Non sapevo nemmeno dell'esistenza di questi strumenti. Scoprire che potevo testare tutto in locale usando file JSON mi sembrò magia nera. Quella scoperta mi affascinò: testare senza passare dal server sembrava surreale.

Il primo approccio al TDD (e le prime difficoltà)

Affascinato, cominciai a documentarmi su MSTest e mi imbattei nel TDD. "Per applicare il TDD, bisogna scrivere i test prima del codice." Rimasi perplesso: come posso scrivere i test senza avere il codice? Decisi di immergermi nello studio del TDD, ma i risultati non arrivavano: i test funzionavano, ma dalla UI trovavo sempre casi non coperti. Ogni modifica rompeva qualcosa. Era frustrante, quasi più lungo del test manuale.

Non arrendersi

Nonostante le difficoltà, non volevo rinunciare. Sapevo che non potevano esistere metodologie solo teoriche: il modo ci doveva essere, mi stava sfuggendo qualcosa. Continuai a studiare, a fare esperimenti, ma sentivo che mi mancava un pezzo fondamentale.

Il cambiamento: ATDD e Outside-In Development

Quando ero sul punto di mollare, un collega mi consigliò il Software Crafting Programme di Alessandro di Gioia e Marco Consolaro. Nel corso scoprii l'ATDD (Acceptance Test-Driven Development) e l'Outside-In Development. Fu la svolta: imparai a vedere tutto dall'ottica dell'utilizzatore finale, concentrandomi sul valore che avrebbe ottenuto.

Capì che gli Unit Test, se non usati correttamente, ti fanno solo perdere tempo. La parte fondamentale è vedere il software per quello che è: uno strumento a servizio degli esperti di business.

La missione: aiutare altri team

Da quel momento, ho compreso che i test sono uno strumento a supporto dello sviluppatore, ma la chiave è la collaborazione tra dev e business. L'ATDD diventa documentazione viva che certifica cosa il software è in grado di fare.

Ora aiuto altri team a evitare le mie frustrazioni iniziali e a costruire software che dura nel tempo, usando metodo e architettura solida.

Il mio stack tecnologico

⚙️ Backend & Architettura

.NET Core/.NET 8 C# ASP.NET Core Clean Architecture Event-Driven Microservizi

☁️ Cloud & DevOps

Azure Docker CI/CD Terraform (IaC)

Testing & Qualità

ATDD/TDD Test Containers

Speaker & Divulgazione Tecnica

Credo fortemente nella condivisione della conoscenza. Intervengo regolarmente a conferenze nazionali e meetup per parlare di architettura software, testing, e best practices nello sviluppo .NET.

Ho parlato a

Talk recenti e prossimi eventi

  • Tech-Pub XE (Mestre) Gennaio 2025

    "Test di Accettazione: Il Ponte tra Tecnologia e Business"

    Come i test di accettazione possono diventare il linguaggio comune tra stakeholder tecnici e non tecnici, riducendo incomprensioni e migliorando la comunicazione nel team.

  • Working Software Giugno 2025

    "Outside-In development guided by tests in mob programming"

    con Marco Consolaro

    Un talk pratico su come guidare lo sviluppo attraverso test di accettazione, utilizzando la tecnica del mob programming per massimizzare la collaborazione e la qualità del codice.

  • XMasDev Dicembre 2025

    "Caro Babbo Claude, quest'anno per Natale vorrei... un mese senza bug!"

    con Marco Consolaro

    Un'esplorazione pratica e divertente di come AI e testing possono lavorare insieme per ridurre drasticamente i bug in produzione e migliorare la qualità del software.

  • Pordenone 31 Gennaio 2026 Prossimamente

    "Velocizza il testing di ASP.NET Core con TestContainers .NET"

    Quante volte si ripete la stessa sequenza per testare un'applicazione ASP.NET Core? Avviare i servizi, preparare i dati caricando backup, eseguire script, configurare l'ambiente. TestContainers .NET rende tutto questo possibile, integrando Docker direttamente nel workflow di testing. Durante la sessione condividerò la mia esperienza pratica con TestContainers, mostrandovi come lo utilizzo per automatizzare i test con l'infrastruttura caricata e nello stato desiderato.

Altre competenze & interessi

  • 🧠

    PNL e Crescita Personale

    Formazione in Programmazione Neuro-Linguistica e tecniche di coaching, che applico nel lavoro con i team per migliorare comunicazione e collaborazione.

  • Metodologie Agili & XP

    Appassionato di metodologie agili e Extreme Programming. Credo fortemente in pratiche come pair/mob programming, TDD e continuous integration.

  • 📚

    Apprendimento Continuo

    Sempre curioso di imparare nuove tecniche, pattern architetturali e approcci innovativi allo sviluppo software. Condivido regolarmente quello che imparo.

Vuoi saperne di più o collaborare?

Se pensi che possiamo lavorare insieme o semplicemente vuoi scambiare due chiacchiere su architettura software e best practices, contattami.