[{"data":1,"prerenderedAt":4092},["ShallowReactive",2],{"has-blog-posts":3,"blog-categories":4,"category-posts-sviluppo":17},true,[5,8,11,14],{"slug":6,"name":7},"architettura","Architettura",{"slug":9,"name":10},"devops","DevOps",{"slug":12,"name":13},"sviluppo","Sviluppo",{"slug":15,"name":16},"testing","Testing",[18,242,390,509,676,845,1039,1147,1264,1429,1630,1791,1955,2084,2252,2431,2557,2677,2842,3040,3185,3320,3443,3569,3766,3944],{"id":19,"title":20,"body":21,"category":13,"date":223,"description":224,"extension":225,"image":226,"meta":227,"navigation":3,"path":228,"published":3,"seo":229,"seoTitle":230,"slug":231,"stem":232,"tags":233,"updated":240,"__hash__":241},"blog/blog/2026-05-21-claude-code-vs-codex-quale-scegliere.md","Claude Code vs Codex: quale scegliere per programmare?",{"type":22,"value":23,"toc":211},"minimark",[24,33,36,39,42,47,50,56,59,62,66,69,72,75,78,81,84,88,91,94,97,100,103,106,110,117,120,123,126,129,133,136,139,142,151,155,158,161,164,167,171,174,177,180,183,186,190,193,196,199,202,205,208],[25,26,27,28,32],"p",{},"Se stai cercando un confronto tra Claude Code e Codex, probabilmente vuoi rispondere a una domanda molto pratica: ",[29,30,31],"strong",{},"quale usare per programmare davvero?"," Non in una demo, non su un benchmark sintetico, ma dentro un codebase reale, con vincoli reali, bug reali e poco tempo per sistemare quando qualcosa va storto.",[25,34,35],{},"Negli ultimi mesi uso sia Claude Code sia OpenAI Codex su progetti reali. Non per fare benchmark da laboratorio, ma perché quando stai lavorando su un codebase devi portare a casa una modifica: leggere codice esistente, capire vincoli, fare una scelta, implementarla, verificare che non abbia rotto altro.",[25,37,38],{},"In questi giorni mi sono capitati due episodi quasi speculari. Stesso tipo di lavoro: una task concreta, codebase reale, prompt dettagliato, interazioni successive per correggere la direzione. Da una parte Claude Code con Opus 4.7. Dall'altra Codex con GPT-5.5.",[25,40,41],{},"Il risultato è stato interessante proprio perché non ha prodotto una classifica semplice. In un caso Claude si è perso e Codex ha risolto in pochi minuti. Nell'altro Codex ha prodotto una soluzione brutta e fragile, mentre Claude ha consegnato codice pulito quasi subito.",[43,44,46],"h2",{"id":45},"claude-code-o-codex-risposta-breve","Claude Code o Codex: risposta breve",[25,48,49],{},"Se devo semplificare, oggi li vedo così: Claude Code è spesso più forte quando serve progettare o modificare una feature con molto contesto; Codex è molto forte come revisore, semplificatore e secondo parere tecnico quando una soluzione sta diventando troppo complicata.",[25,51,52,53],{},"Quindi la domanda \"meglio Claude Code o Codex?\" è posta male. La domanda utile è: ",[29,54,55],{},"per quale fase del lavoro?",[25,57,58],{},"Per scrivere una feature complessa, soprattutto se il progetto ha un flusso applicativo già strutturato, tendo a preferire Claude. Per revisionare codice, togliere complessità, individuare rischi e uscire da un vicolo cieco, Codex è spesso il compagno giusto.",[25,60,61],{},"Il punto non è scegliere una squadra. Il punto è sapere quando cambiare strumento.",[43,63,65],{"id":64},"claude-code-vs-codex-dove-claude-si-è-incartato","Claude Code vs Codex: dove Claude si è incartato",[25,67,68],{},"Il primo episodio riguardava una feature in Go e Angular: un workflow editor, cioè un'interfaccia per creare e modificare un flusso visuale simile a una macchina a stati finiti. Stati, transizioni, frecce, nodi editabili. Il tipo di interfaccia dove la parte difficile non è solo salvare i dati, ma rendere leggibile il diagramma mentre l'utente lo modifica.",[25,70,71],{},"Claude ha capito il problema generale. Ha iniziato a progettare la feature, ha scritto codice, ha iterato sulle modifiche. Il problema è emerso sulle frecce: più cercava di sistemarle, più il disegno diventava confuso. Linee sovrapposte, incroci poco controllati, layout difficile da seguire. Il risultato era il classico \"piatto di spaghetti\": formalmente c'erano tutti i collegamenti, ma visivamente il diagramma era inutilizzabile.",[25,73,74],{},"Dopo quasi due ore di prompt e interazioni, la situazione era peggiorata. Claude continuava a lavorare sullo stesso punto, ma ogni tentativo aggiungeva complessità senza risolvere il problema di fondo. A un certo punto ha iniziato a proporre librerie aggiuntive, astrazioni nuove, logica extra per gestire casi che in realtà erano sintomi della soluzione sbagliata. Il progetto diventava più pesante, ma il diagramma non diventava più leggibile.",[25,76,77],{},"Questo è uno dei failure mode più pericolosi degli assistenti AI: non falliscono sempre fermandosi. A volte falliscono continuando a lavorare. Producono codice, spiegano cosa stanno facendo, sembrano avere una strategia, ma in realtà stanno scavando più in profondità dentro una direzione sbagliata.",[25,79,80],{},"Alla fine ho passato il problema a Codex. Non gli ho chiesto di aggiungere un'altra pezza, ma di guardare il problema e risolverlo. In circa dieci minuti ha fatto la cosa che serviva: ha tolto dipendenze, ha semplificato il codice, ha riscritto un paio di metodi chiave e ha riportato il progetto alla forma desiderata.",[25,82,83],{},"La cosa importante non è che Codex abbia \"vinto\" quel task. La cosa importante è che ha riconosciuto una complessità inutile e l'ha tagliata. In quel momento serviva meno codice, non più codice. E Claude, dentro quel loop, non ci stava arrivando.",[43,85,87],{"id":86},"quando-codex-sbaglia-architettura-e-claude-risolve","Quando Codex sbaglia architettura e Claude risolve",[25,89,90],{},"Pochi giorni dopo è successo l'inverso.",[25,92,93],{},"Avevo quasi esaurito il piano Claude Max e ho deciso di affidare a Codex una task su un progetto Laravel e Vue. Anche qui niente esperimento astratto: una modifica reale dentro un flusso applicativo già esistente. Prompt chiaro, contesto sufficiente, obiettivo verificabile.",[25,95,96],{},"Dopo circa venticinque minuti e tre iterazioni, il risultato era tecnicamente inaccettabile. Non perché mancasse completamente l'idea, ma perché l'implementazione era una somma di scorciatoie: override di un flusso già previsto dal programma, condizioni speciali infilate nei punti sbagliati, hack per forzare il comportamento invece di integrarsi con il modello esistente. E, cosa ancora più importante, il codice non funzionava bene: c'erano bug logici e problemi infrastrutturali.",[25,98,99],{},"Probabilmente quel codice si sarebbe potuto sistemare a mano. Ma a quel punto la domanda interessante era un'altra: cosa sarebbe successo dando lo stesso task a Claude?",[25,101,102],{},"Ho revertito tutte le modifiche e ho passato a Claude Code lo stesso prompt, copiato e incollato. In sette minuti e due interazioni mi ha consegnato una soluzione funzionante. L'ho revisionata a mano, riga per riga. Il codice era pulito, coerente con il progetto, inserito nel flusso corretto. Non era solo \"funziona\": era una soluzione che avrei fatto fatica a scrivere meglio.",[25,104,105],{},"Qui il risultato è stato opposto al primo episodio. Dove Codex aveva cercato una strada laterale, Claude ha capito l'architettura del flusso e ci si è infilato dentro nel modo giusto.",[43,107,109],{"id":108},"quale-ai-per-programmare-dipende-da-come-sbaglia","Quale AI per programmare? Dipende da come sbaglia",[25,111,112,113,116],{},"Questi due episodi raccontano una cosa che nei discorsi sull'AI nello sviluppo software viene spesso semplificata troppo: non basta chiedersi quale modello \"scrive codice meglio\". Bisogna chiedersi ",[29,114,115],{},"come sbaglia",".",[25,118,119],{},"Claude, nella mia esperienza, tende a essere molto forte quando deve costruire un modello mentale del sistema. Legge bene l'intenzione, ragiona sui confini, propone soluzioni ordinate, spesso mantiene una coerenza architetturale migliore. Come sviluppatore e come architetto, quando prende la direzione giusta, è impressionante.",[25,121,122],{},"Il suo problema è che quando entra in un loop sbagliato può diventare difficile da fermare. Continua a raffinare la stessa direzione, aggiunge dettagli, moltiplica la struttura, propone dipendenze. Se non lo guidi con decisione, o se non hai voglia di intervenire a mano, rischi di ritrovarti con un sistema più complicato e ancora rotto.",[25,124,125],{},"Codex, invece, mi convince moltissimo come revisore. È molto bravo a guardare codice esistente, individuare punti fragili, togliere rumore, ridurre complessità. Nel primo episodio ha fatto esattamente questo: ha guardato una soluzione che stava collassando sotto il suo peso e l'ha resa semplice.",[25,127,128],{},"Come developer è assolutamente utilizzabile. Ma come architetto, almeno nei casi che ho visto, mi convince meno. Soprattutto quando il task richiede di rispettare un flusso applicativo già progettato e di inserirsi nel punto giusto, può cercare scorciatoie locali: codice che sembra risolvere il caso immediato, ma aggira il disegno del sistema. E quando succede, il costo arriva dopo, in manutenzione.",[43,130,132],{"id":131},"code-review-con-ai-la-revisione-manuale-resta-obbligatoria","Code review con AI: la revisione manuale resta obbligatoria",[25,134,135],{},"La prima lezione è banale, ma va detta perché è l'unica che conta davvero: il codice generato va sempre revisionato. Sempre.",[25,137,138],{},"Non importa se arriva da Claude, da Codex, da Cursor o dal modello migliore del momento. Non importa se ha passato i test. Non importa se la diff sembra piccola. Un assistente AI può produrre codice elegante e sbagliato, codice brutto e funzionante, codice pulito ma incoerente con il dominio, codice che risolve il task e danneggia l'architettura.",[25,140,141],{},"La review non serve solo a trovare bug. Serve a rispondere a domande più importanti: questa modifica rispetta il modello del progetto? Sta introducendo una dipendenza inutile? Sta mettendo logica nel posto giusto? Sta risolvendo il problema o sta nascondendo un sintomo? Tra sei mesi qualcuno capirà perché è stata fatta così?",[25,143,144,145,150],{},"È lo stesso punto che torna quando si parla di ",[146,147,149],"a",{"href":148},"/blog/sviluppare-con-ai","sviluppare con l'AI",": questi strumenti accelerano il lavoro, ma non eliminano il giudizio. Anzi, lo rendono più importante, perché producono materiale tecnico molto più velocemente di quanto un team medio riesca a valutarlo con attenzione.",[43,152,154],{"id":153},"quando-usare-claude-code-e-quando-usare-codex","Quando usare Claude Code e quando usare Codex",[25,156,157],{},"La seconda lezione è più pratica: non bisogna affezionarsi allo strumento. Claude non è \"il migliore\" in assoluto. Codex non è \"il migliore\" in assoluto. Sono strumenti diversi, con punti forti diversi e modi diversi di fallire.",[25,159,160],{},"Se Claude entra in un loop di complessità, può essere molto più efficiente fermarlo, salvare il contesto e chiedere a Codex una revisione radicale. Non per continuare ad aggiungere codice, ma per togliere quello che non serve.",[25,162,163],{},"Se Codex propone una soluzione che aggira il flusso del progetto, può avere senso fermarsi subito e passare il task a Claude, soprattutto quando serve una lettura più architetturale del sistema.",[25,165,166],{},"Questa è una competenza nuova ma concreta: saper capire quando un assistente sta ancora aiutando e quando sta solo producendo rumore. Prima lo capisci, meno tempo perdi. Il costo non è solo il tempo del modello: è il tempo che passerai tu a ripulire, debuggare, spiegare e magari revertire.",[43,168,170],{"id":169},"confronto-claude-code-vs-codex-cosa-mi-porto-a-casa","Confronto Claude Code vs Codex: cosa mi porto a casa",[25,172,173],{},"Da questi due episodi mi porto a casa tre cose.",[25,175,176],{},"La prima è che la review umana non è un rito finale, ma parte centrale del lavoro. Senza review, l'AI aumenta la velocità con cui entra codice nel progetto, ma non necessariamente la qualità del sistema.",[25,178,179],{},"La seconda è che Claude, quando non si perde, oggi mi sembra più forte sia come architetto sia come sviluppatore. Soprattutto su task dove bisogna capire il flusso applicativo e inserirsi nel disegno esistente. Però ha un failure mode molto riconoscibile: quando entra in un vicolo cieco, può continuare a produrre complessità invece di fermarsi e cambiare strada.",[25,181,182],{},"La terza è che Codex è un revisore eccellente e un buon sviluppatore, ma lo uso con più cautela quando la task richiede una decisione architetturale. Mi fido molto della sua capacità di criticare codice, semplificare, trovare problemi. Mi fido meno della sua tendenza a progettare il flusso giusto da zero o a rispettare un disegno implicito se il progetto non glielo rende evidente.",[25,184,185],{},"Naturalmente sono osservazioni empiriche, non una legge fisica. Versioni diverse dei modelli, prompt diversi, codebase diverse e stack diversi possono cambiare molto. Ma proprio per questo gli episodi reali sono utili: mostrano i punti in cui la teoria si sporca con il lavoro quotidiano.",[43,187,189],{"id":188},"entrambi-servono-ma-per-lavori-diversi","Entrambi servono, ma per lavori diversi",[25,191,192],{},"Il punto non è tifare Claude o Codex. Il punto è costruire un modo di lavorare che sfrutti entrambi senza delegare loro il giudizio.",[25,194,195],{},"Io oggi li uso così: Claude quando serve costruire o modificare una feature con forte componente di contesto; Codex quando serve revisionare, semplificare, smontare una soluzione che non mi convince. Se uno dei due inizia a girare a vuoto, non insisto per principio. Revert, cambio strumento, confronto le soluzioni, poi decido io cosa tenere.",[25,197,198],{},"In questo senso, Codex per me ha un valore molto pragmatico anche quando non è lo strumento principale di sviluppo: è il revisore che entra quando qualcosa non torna, l'assistente da chiamare nei momenti bui, il secondo paio di occhi quando il modello che stai usando ha iniziato a complicare invece di chiarire.",[25,200,201],{},"Se lavori seriamente con questi strumenti, mettere a budget circa 23 euro in più al mese per avere Codex disponibile non è una spesa difficile da giustificare. Non perché sostituisca Claude, e non perché sia sempre migliore. Perché copre un bisogno diverso: revisione, contrasto, semplificazione, recupero quando l'altro assistente si è incastrato.",[25,203,204],{},"È meno romantico del \"l'AI scrive tutto da sola\", ma è molto più vicino al lavoro reale.",[25,206,207],{},"Entrambi sono validi. In certi flussi, entrambi sono necessari. Ma nessuno dei due firma la pull request al posto tuo.",[25,209,210],{},"La responsabilità del codice resta sempre del developer: del codice che scrive, del codice che accetta, del codice che lascia entrare in produzione. L'AI può scrivere codice molto buono. Può anche scrivere codice pessimo con grande sicurezza. La differenza la fa ancora chi guarda la diff e decide se quel codice merita di entrare nel progetto.",{"title":212,"searchDepth":213,"depth":213,"links":214},"",2,[215,216,217,218,219,220,221,222],{"id":45,"depth":213,"text":46},{"id":64,"depth":213,"text":65},{"id":86,"depth":213,"text":87},{"id":108,"depth":213,"text":109},{"id":131,"depth":213,"text":132},{"id":153,"depth":213,"text":154},{"id":169,"depth":213,"text":170},{"id":188,"depth":213,"text":189},"2026-05-21","Confronto reale tra Claude Code e Codex su due task: sviluppo, architettura e code review. Quando usare Claude, quando Codex, e perché la review resta umana.","md","/images/blog/claude-code-vs-codex-quale-scegliere.jpg",{},"/blog/2026-05-21-claude-code-vs-codex-quale-scegliere",{"title":20,"description":224},"Claude Code vs Codex: quale scegliere per programmare","claude-code-vs-codex-quale-scegliere","blog/2026-05-21-claude-code-vs-codex-quale-scegliere",[234,235,236,237,6,238,239],"ai","claude-code","codex","code-review","sviluppo-software","debito-tecnico",null,"9MPbXq1rsg88KQZQQuihnv9qvjedWAKx7vH824UYkqw",{"id":243,"title":244,"body":245,"category":13,"date":374,"description":375,"extension":225,"image":376,"meta":377,"navigation":3,"path":378,"published":3,"seo":379,"seoTitle":380,"slug":381,"stem":382,"tags":383,"updated":240,"__hash__":389},"blog/blog/2026-05-19-segnali-progetto-software-fallira.md","Segnali che un progetto software fallirà prima di iniziare",{"type":22,"value":246,"toc":364},[247,250,253,257,260,263,267,270,273,276,279,283,290,293,297,300,303,307,315,318,322,325,329,332,340,344,347,357],[25,248,249],{},"La maggior parte dei progetti software che finiscono male non lo fanno all'improvviso. I segnali c'erano già all'inizio, solo che nessuno li ha presi sul serio: all'inizio c'è entusiasmo, c'è voglia di partire, c'è la sensazione che \"poi sistemiamo strada facendo\". E invece quello che non sistemi all'inizio diventa strutturale.",[25,251,252],{},"Dopo un po', se lavori su questi progetti, inizi a riconoscerli subito. Si vede da come parte la conversazione, prima ancora di guardare il codice.",[43,254,256],{"id":255},"quando-il-problema-non-è-chiaro","Quando il problema non è chiaro",[25,258,259],{},"Il primo segnale è semplice: manca chiarezza su cosa si stia cercando di risolvere, in modo concreto, non astratto. \"Voglio automatizzare questo processo\" è un'intenzione, non ancora una definizione. Tra le due cose c'è un abisso fatto di dettagli, eccezioni, vincoli.",[25,261,262],{},"Se il problema non è definito, ogni soluzione sarà interpretata. E ogni interpretazione diversa diventa un potenziale conflitto.",[43,264,266],{"id":265},"quando-tutto-sembra-semplice","Quando tutto sembra semplice",[25,268,269],{},"Ci sono richieste che, raccontate a parole, sembrano banali.",[25,271,272],{},"\"Basta prendere questi dati e tirar fuori queste informazioni.\"",[25,274,275],{},"Poi guardi meglio e scopri che i dati non sono strutturati, che le regole cambiano caso per caso, che quello che sembra una regola è in realtà un'eccezione ricorrente.",[25,277,278],{},"Il vero ostacolo è la stabilità: senza una definizione abbastanza precisa, il sistema non può essere stabile, indipendentemente dalla difficoltà tecnica. E un sistema instabile genera aspettative instabili.",[43,280,282],{"id":281},"quando-una-demo-diventa-una-promessa","Quando una demo diventa una promessa",[25,284,285,286,116],{},"Un prototipo serve a validare una cosa: che una direzione è percorribile. Non serve a garantire che tutto funzionerà sempre, in ogni condizione, con qualsiasi input. È la stessa confusione che porta a ",[146,287,289],{"href":288},"/blog/cos-e-un-mvp-software","trattare l'MVP come un prodotto mal fatto",[25,291,292],{},"Se una demo viene letta come una promessa implicita — \"se qui funziona, funzionerà sempre\" — il progetto è già fuori asse. La realtà coincide con l'insieme di tutti i casi che ancora non hai visto, ben oltre il caso demo.",[43,294,296],{"id":295},"quando-i-limiti-non-vengono-accettati","Quando i limiti non vengono accettati",[25,298,299],{},"Ogni tecnologia ha limiti: alcuni tecnici, altri economici, altri semplicemente legati alla natura del problema. Se questi limiti vengono discussi, è normale; se vengono ignorati o trattati come dettagli secondari, no.",[25,301,302],{},"Un progetto funziona quando entrambe le parti accettano che esistono vincoli e lavorano dentro quei vincoli. Quando una delle due parti parte dal presupposto che i vincoli siano negoziabili, il progetto diventa una trattativa continua. E le trattative continue non producono buon software.",[43,304,306],{"id":305},"quando-il-costo-non-torna","Quando il costo \"non torna\"",[25,308,309,310,314],{},"Un altro segnale è la reazione ai costi. Il fatto che sembrino alti è normale: il software, visto da fuori, sembra sempre più semplice di quello che è — un tema su cui ho già scritto in ",[146,311,313],{"href":312},"/blog/stime-sviluppo-sbagliate-perche","perché le stime di sviluppo sembrano sempre sbagliate",". Il segnale arriva quando il costo viene percepito come \"sbagliato\" invece che come informazione nuova.",[25,316,317],{},"In quel momento la discussione, sotto i numeri, riguarda due realtà diverse di cosa sia il software. E se la realtà non è condivisa, il progetto non ha base su cui stare.",[43,319,321],{"id":320},"un-disallineamento-di-partenza","Un disallineamento di partenza",[25,323,324],{},"Questi segnali descrivono condizioni di partenza in cui il progetto non può funzionare, più che un \"cliente difficile\". È una distinzione importante: il giudizio sulle persone è secondario, quello che conta è capire quando il sistema che si sta creando non reggerà. E quando non regge, non c'è codice che tenga.",[43,326,328],{"id":327},"fermarsi-prima-costa-meno","Fermarsi prima costa meno",[25,330,331],{},"Il momento più economico per fermare un progetto è prima di iniziarlo. Dopo hai tempo investito, aspettative create, posizioni irrigidite, decisioni prese che diventano difficili da ritrattare. A quel punto, anche quando è evidente che qualcosa non funziona, si continua lo stesso. Perché fermarsi sembra una perdita.",[25,333,334,335,339],{},"E invece la perdita è andare avanti. È lo stesso meccanismo che porta tante ",[146,336,338],{"href":337},"/blog/agenzia-abbandona-progetto-software","agenzie a mollare a metà progetto",": il punto di rottura era già visibile mesi prima.",[43,341,343],{"id":342},"riconoscere-i-segnali-per-quello-che-sono","Riconoscere i segnali per quello che sono",[25,345,346],{},"Chi ha esperienza li riconosce quasi subito. Per esperienza accumulata, più che per bravura: li ha già visti. Il problema è che spesso vengono ignorati, minimizzati, razionalizzati.",[25,348,349,350,353,354,356],{},"\"Poi si sistema.\"",[351,352],"br",{},"\n\"Partiamo e vediamo.\"",[351,355],{},"\n\"Non sarà così complicato.\"",[25,358,359,360,116],{},"A volte va bene. Molto più spesso no. E quando no, la cosa più frustrante è che si poteva vedere prima: i segnali c'erano già. Bastava prenderli sul serio — e accettare che ",[146,361,363],{"href":362},"/blog/quando-dire-no-a-un-progetto-software","non tutti i progetti vanno iniziati",{"title":212,"searchDepth":213,"depth":213,"links":365},[366,367,368,369,370,371,372,373],{"id":255,"depth":213,"text":256},{"id":265,"depth":213,"text":266},{"id":281,"depth":213,"text":282},{"id":295,"depth":213,"text":296},{"id":305,"depth":213,"text":306},{"id":320,"depth":213,"text":321},{"id":327,"depth":213,"text":328},{"id":342,"depth":213,"text":343},"2026-05-19","Molti progetti software falliscono per segnali chiari fin dal primo incontro. Quali sono, come riconoscerli, perché quasi nessuno li prende sul serio.","/images/blog/segnali-progetto-software-fallira.jpg",{},"/blog/2026-05-19-segnali-progetto-software-fallira",{"title":244,"description":375},"Progetti software: come riconoscere i segnali di fallimento","segnali-progetto-software-fallira","blog/2026-05-19-segnali-progetto-software-fallira",[384,385,386,387,388],"segnali-fallimento","rischi-progetto","scelta-fornitore","valutazione-progetto","prevenzione","P2WIvcLcSRjXpL5G59BjMdFrp4DeVEnSAiP5ZYw2vmE",{"id":391,"title":392,"body":393,"category":13,"date":495,"description":496,"extension":225,"image":497,"meta":498,"navigation":3,"path":499,"published":3,"seo":500,"seoTitle":501,"slug":502,"stem":503,"tags":504,"updated":240,"__hash__":508},"blog/blog/2026-05-14-quando-dire-no-a-un-progetto-software.md","Quando dire no a un progetto software (e perché conviene a tutti)",{"type":22,"value":394,"toc":487},[395,401,404,408,411,414,418,421,424,431,435,438,441,448,452,455,463,467,470,473,477,484],[25,396,397,398,116],{},"C'è un equivoco che torna sempre, soprattutto quando si parla di sviluppo software: ",[29,399,400],{},"se una cosa si può fare, allora si deve fare",[25,402,403],{},"La realtà è un'altra. Un progetto può essere tecnicamente fattibile — magari anche relativamente semplice — e allo stesso tempo essere una pessima idea da iniziare: la tecnologia lo permette, il contesto intorno lo rende ingestibile. Ed è qui che si vede la differenza tra chi sviluppa e chi fa consulenza.",[43,405,407],{"id":406},"fattibile-non-significa-sostenibile","Fattibile non significa sostenibile",[25,409,410],{},"Costruire una demo è spesso facile. In poche ore puoi dimostrare che una certa cosa \"funziona\": estrai un dato, automatizzi un passaggio, fai vedere un risultato. Il problema è che quella demo viene quasi sempre interpretata come una promessa.",[25,412,413],{},"Una soluzione che gira una volta può non reggere alla seconda. Su un caso controllato può funzionare; davanti alla variabilità del mondo reale può crollare. Funzionare oggi non garantisce di essere mantenibile tra sei mesi, quando i casi limite iniziano a emergere. La distanza tra \"si può fare\" e \"funziona davvero in produzione\" è esattamente il posto dove nascono i problemi, e quella distanza è fatta soprattutto di aspettative.",[43,415,417],{"id":416},"lallineamento-conta-più-del-codice","L'allineamento conta più del codice",[25,419,420],{},"I progetti software non saltano perché il codice è difficile. Saltano perché chi lo commissiona e chi lo costruisce stanno risolvendo due problemi diversi senza accorgersene.",[25,422,423],{},"Succede quando il problema non è definito con chiarezza, quando i limiti tecnici vengono trattati come ostacoli negoziabili, quando il budget è scollegato dalla complessità reale, quando una prova diventa — nella percezione del cliente — una garanzia.",[25,425,426,427,116],{},"In queste condizioni, il progetto parte già disallineato, e più vai avanti, più l'allineamento peggiora. All'inizio sono piccole incomprensioni, poi diventano discussioni, poi diventano \"ma tu avevi detto che…\". E a quel punto il problema diventa relazionale, prima ancora che tecnico. È la stessa dinamica che porta a ",[146,428,430],{"href":429},"/blog/scope-creep-progetti-agile","scope creep continuo travestito da agilità",[43,432,434],{"id":433},"il-vero-lavoro-di-un-consulente","Il vero lavoro di un consulente",[25,436,437],{},"Chi è all'inizio della carriera tende a dire sì. È normale: vuoi lavorare, vuoi dimostrare che sei capace, vuoi portare a casa il progetto. Con il tempo, inizi a vedere pattern che si ripetono.",[25,439,440],{},"Non guardi più solo cosa ti stanno chiedendo di costruire. Guardi quanto è chiaro il problema, quanto sono realistiche le aspettative, quanto è disposto il cliente ad accettare vincoli e compromessi, quanto è probabile che a metà progetto il perimetro cambi.",[25,442,443,444,447],{},"E a un certo punto capisci che il tuo lavoro non si esaurisce nel costruire software: comprende anche ",[29,445,446],{},"decidere se vale la pena iniziare a costruirlo",". Dire sì a un progetto con presupposti sbagliati sposta il problema più avanti nel tempo, quando sarà più costoso per tutti — chiamarla flessibilità è un'illusione consolatoria.",[43,449,451],{"id":450},"il-costo-dei-progetti-sbagliati","Il costo dei progetti sbagliati",[25,453,454],{},"Accettare un progetto che nasce male ha sempre lo stesso finale. All'inizio sembra tutto normale. Poi arrivano le prime frizioni, il perimetro si allarga, le aspettative cambiano, il tempo non basta più. A quel punto qualcuno perde: a volte il cliente, che si ritrova con qualcosa che non corrisponde a quello che aveva in testa; a volte il fornitore, che lavora più del previsto per rimanere dentro a una promessa fatta troppo presto; spesso entrambi.",[25,456,457,458,462],{},"E nel mezzo c'è la cosa più costosa: tempo buttato. Tempo che non torna indietro, né per chi paga né per chi lavora. È lo stesso meccanismo per cui ",[146,459,461],{"href":460},"/blog/preventivo-software-partire-dal-budget","partire da una conversazione sul budget invece che da un preventivo"," salva entrambe le parti dal disastro.",[43,464,466],{"id":465},"il-no-come-atto-professionale","Il no come atto professionale",[25,468,469],{},"Dire no a un progetto, in molti casi, equivale a riconoscere un rischio prima che sia tardi — più che a rifiutare un'opportunità. È dire: in queste condizioni, con queste aspettative e questo livello di chiarezza, la probabilità che questo progetto finisca male è troppo alta. Più che una questione di volontà, è una questione di responsabilità.",[25,471,472],{},"Chi dice sì a tutto sembra più disponibile: spesso è solo meno esperto, o meno attento alle conseguenze. Chi si ferma prima evita di creare un problema che poi qualcuno dovrà risolvere.",[43,474,476],{"id":475},"il-segnale-da-leggere","Il segnale da leggere",[25,478,479,480,116],{},"Se un professionista ti dice di no, la lettura più semplice è che \"non ha voglia\" o \"non ha capito il progetto\". A volte è vero. Più spesso, però, sta vedendo qualcosa che tu, da dentro, non riesci ancora a vedere: un disallineamento che crescerà, una complessità nascosta, una combinazione di fattori che rende il progetto fragile prima ancora di iniziare. Per riconoscerli prima ho dedicato un articolo specifico ai ",[146,481,483],{"href":482},"/blog/segnali-progetto-software-fallira","segnali che un progetto software finirà male",[25,485,486],{},"Non tutti i progetti vanno iniziati. E una delle competenze più sottovalutate, in questo mestiere, è saperlo riconoscere prima.",{"title":212,"searchDepth":213,"depth":213,"links":488},[489,490,491,492,493,494],{"id":406,"depth":213,"text":407},{"id":416,"depth":213,"text":417},{"id":433,"depth":213,"text":434},{"id":450,"depth":213,"text":451},{"id":465,"depth":213,"text":466},{"id":475,"depth":213,"text":476},"2026-05-14","Un progetto può essere tecnicamente fattibile e comunque una pessima idea. Perché dire no al momento giusto conviene sia al cliente che al fornitore.","/images/blog/quando-dire-no-a-un-progetto-software.jpg",{},"/blog/2026-05-14-quando-dire-no-a-un-progetto-software",{"title":392,"description":496},"Quando dire no a un progetto software: i segnali da leggere","quando-dire-no-a-un-progetto-software","blog/2026-05-14-quando-dire-no-a-un-progetto-software",[387,505,506,386,507],"consulenza-tecnica","segnali-rischio","responsabilita","SfB_bs4o-G7b9tTMLR6IrDBtIDTPLdfh9UlIeWXVKDQ",{"id":510,"title":511,"body":512,"category":13,"date":658,"description":659,"extension":225,"image":660,"meta":661,"navigation":3,"path":662,"published":3,"seo":663,"seoTitle":664,"slug":665,"stem":666,"tags":667,"updated":240,"__hash__":675},"blog/blog/2026-05-12-successione-tecnica-conoscenza-tacita.md","Successione tecnica: cosa si può davvero trasferire a chi viene dopo",{"type":22,"value":513,"toc":648},[514,517,522,525,528,532,535,538,542,545,548,552,555,562,566,569,572,575,579,587,590,594,602,610,614,617,620,624,627,630,633,636,639,642,645],[25,515,516],{},"C’è una domanda che chi guida tecnicamente un team, prima o poi, si fa davvero.",[25,518,519],{},[29,520,521],{},"Se domani me ne vado, cosa resta?",[25,523,524],{},"Resta il codice, certo. Restano i processi, se li hai costruiti bene. Resta la documentazione, se non l’hai trattata come un favore da fare “quando c’è tempo”. Ma c’è una parte del tuo contributo che non resta: non resta il tuo gusto tecnico, non resta il tuo modo specifico di capire al volo che una strada è sbagliata e un’altra ha più possibilità di reggere, non resta quella combinazione di esperienza, intuito, errori fatti negli anni e sensibilità costruita caso dopo caso.",[25,526,527],{},"E non resta non perché hai delegato male. Non resta perché quella parte, semplicemente, non si trasferisce del tutto.",[43,529,531],{"id":530},"il-problema-non-è-la-documentazione","Il problema non è la documentazione",[25,533,534],{},"Quando ci si accorge di questa cosa, il primo istinto è sempre lo stesso: documentare di più, spiegare meglio, affiancare più a lungo, provare a trasformare il proprio giudizio in un insieme di regole. È un istinto sano, ma ha un limite.",[25,536,537],{},"Puoi trasferire il contesto di una decisione, i vincoli del sistema con cui hai lavorato, le alternative che hai scartato, i criteri con cui hai valutato un trade-off. Non puoi trasferire completamente il tuo modo di sentire che una soluzione “puzza” prima ancora di riuscire a spiegare bene perché. Quella parte nasce da anni di casi concreti compressi in pattern mentali. Funziona proprio perché è più veloce del ragionamento esplicito. E se è più veloce del ragionamento esplicito, per definizione non la formalizzerai mai tutta.",[43,539,541],{"id":540},"lerrore-è-voler-lasciare-una-copia-di-sé","L’errore è voler lasciare una copia di sé",[25,543,544],{},"Qui c’è un passaggio importante. Molte persone tecnicamente forti, quando iniziano a ragionare sulla successione, fanno lo stesso errore: cercano di lasciare dietro di sé una versione ridotta di se stesse. Vogliono formare qualcuno che prenda le stesse decisioni, che faccia le stesse review, che abbia gli stessi criteri, che continui il progetto “come l’avrebbero fatto loro”.",[25,546,547],{},"È una tentazione comprensibile. Ma è una strada sbagliata, perché se vuoi lasciare una copia di te stai ancora ragionando come se il sistema dovesse dipendere dalla tua persona, solo in forma differita. Un successore non è un avatar, e un team sano non ha bisogno di pensare come te: ha bisogno di poter funzionare bene senza di te.",[43,549,551],{"id":550},"quello-che-puoi-lasciare-davvero","Quello che puoi lasciare davvero",[25,553,554],{},"Questa è la distinzione che conta. Non puoi lasciare il tuo giudizio identico al tuo; puoi lasciare le condizioni in cui un altro giudizio ragionevole può emergere.",[25,556,557,558,561],{},"Puoi lasciare contesto chiaro e decisioni tracciate, standard condivisi e processi di review sensati, una cultura tecnica sana, un team capace di discutere senza dipendere da una sola voce. Questo sì che resta, e fa una differenza enorme. Perché chi viene dopo non prenderà le tue stesse decisioni: alcune saranno peggiori, alcune migliori, quasi tutte semplicemente diverse. Ma se il sistema è sano, saranno decisioni ",[29,559,560],{},"ragionevoli",". Ed è questo il punto: non perpetuare il tuo gusto, ma costruire un contesto in cui non serva.",[43,563,565],{"id":564},"come-capisci-se-hai-lasciato-un-sistema-o-solo-dipendenza","Come capisci se hai lasciato un sistema o solo dipendenza",[25,567,568],{},"C’è un test molto semplice. Entra una persona senior nuova nel team. Non formata da te, non cresciuta dentro il tuo progetto. Una persona forte, ma esterna. Cosa trova?",[25,570,571],{},"Se trova documentazione viva, decisioni architetturali tracciate, un team che sa spiegare il perché delle cose, un modo di lavorare leggibile, un repository che racconta qualcosa oltre al codice, allora hai lasciato un sistema.",[25,573,574],{},"Se invece trova codice che si capisce solo “parlandone con te”, motivi delle scelte noti soltanto a voce, parti del sistema che nessuno tocca senza chiederti, una cultura del “chiedi a tizio che sa”, allora non hai lasciato un sistema: hai lasciato un’estensione di te stesso. Ed è una differenza enorme.",[43,576,578],{"id":577},"il-bus-factor-qui-non-basta","Il bus factor qui non basta",[25,580,581,582,586],{},"Il ",[146,583,585],{"href":584},"/blog/bus-factor-developer-indispensabile","bus factor"," resta una metrica fondamentale. Ma qui non basta dire “abbiamo costruito un secondo” o “abbiamo distribuito la conoscenza”, perché puoi anche alzare il bus factor operativo e avere comunque una dipendenza forte sul piano del giudizio.",[25,588,589],{},"Magari il team sa fare deploy, sa gestire un bug in produzione, sa portare avanti il lavoro. Bene. Ma quando c’è una decisione veramente delicata — cambiare struttura, riscrivere un modulo, dire no a una feature, scegliere un compromesso — chi decide davvero? Se la risposta è ancora “sempre la stessa persona”, il problema è meno visibile, ma c’è ancora.",[43,591,593],{"id":592},"la-documentazione-serve-ma-non-fa-miracoli","La documentazione serve, ma non fa miracoli",[25,595,596,597,601],{},"Qui conviene essere onesti. ADR, explanation, reference ben scritta, commit message decenti: tutto questo aiuta moltissimo, e chi ha letto l’articolo su ",[146,598,600],{"href":599},"/blog/ai-codice-commodity-documentazione","il codice come commodity e il perché come asset"," sa già perché.",[25,603,604,605,609],{},"Ma la documentazione non sostituisce il giudizio: lo prepara, lo accelera, lo orienta. È una differenza importante. Chi arriva dopo di te non potrà diventare te leggendo una cartella ",[606,607,608],"code",{},"/docs",", ma potrà evitare mesi di archeologia inutile, potrà partire dal contesto giusto invece che ricostruirlo da zero, potrà sbagliare su problemi veri e non su cose che erano già state capite tre anni prima. E questo è già enorme.",[43,611,613],{"id":612},"il-passaggio-più-difficile-della-carriera-tecnica","Il passaggio più difficile della carriera tecnica",[25,615,616],{},"Secondo me, questo è uno dei passaggi più difficili per chi cresce tecnicamente. Per anni il tuo valore sta nel fatto che vedi cose che altri non vedono, che capisci prima, che decidi meglio, che sei quello che tiene insieme il sistema quando si piega. A un certo punto, però, se continui a giocarti tutto lì, diventi un collo di bottiglia di lusso: molto competente, molto prezioso, molto rispettato, ma sempre un collo di bottiglia.",[25,618,619],{},"La maturità vera arriva quando smetti di chiederti come rendere eterno il tuo contributo personale e inizi a chiederti come costruire un contesto che regga anche quando il tuo contributo personale manca. È un cambio di mestiere, non una rinuncia.",[43,621,623],{"id":622},"il-conforto-giusto","Il conforto giusto",[25,625,626],{},"C’è però una cosa che vale la pena dire, perché è vera. Il fatto che il tuo gusto tecnico non si trasferisca completamente non significa che il tuo lavoro sparisca: significa che il tuo lavoro non consiste nel lasciare una copia di te.",[25,628,629],{},"Consiste nel lasciare chiarezza dove prima c’era solo intuizione, criteri dove prima c’era solo abitudine, contesto dove prima c’era solo memoria, autonomia dove prima c’era solo dipendenza.",[25,631,632],{},"Chi verrà dopo non farà il lavoro come lo avresti fatto tu.",[25,634,635],{},"Meno male.",[25,637,638],{},"Se il sistema che lasci è buono, farà comunque buon lavoro. Non uguale al tuo, ma abbastanza buono da non dipendere più dal fatto che tu sia lì. Ed è probabilmente l’unica eredità professionale sensata che valga la pena costruire.",[640,641],"hr",{},[25,643,644],{},"Puoi trasferire molto, puoi documentare molto, puoi delegare molto. Puoi anche costruire un secondo vero, se fai il lavoro necessario. Quello che non puoi fare è lasciare in eredità il tuo cervello.",[25,646,647],{},"Puoi però lasciare qualcosa di più utile: un sistema che continui a prendere decisioni ragionevoli anche quando tu non ci sei più.",{"title":212,"searchDepth":213,"depth":213,"links":649},[650,651,652,653,654,655,656,657],{"id":530,"depth":213,"text":531},{"id":540,"depth":213,"text":541},{"id":550,"depth":213,"text":551},{"id":564,"depth":213,"text":565},{"id":577,"depth":213,"text":578},{"id":592,"depth":213,"text":593},{"id":612,"depth":213,"text":613},{"id":622,"depth":213,"text":623},"2026-05-12","Documentazione, delega e bus factor aiutano. Ma il gusto tecnico non si trasferisce del tutto. Cosa puoi davvero lasciare a chi viene dopo di te.","/images/blog/successione-tecnica-conoscenza-tacita.jpg",{},"/blog/2026-05-12-successione-tecnica-conoscenza-tacita",{"title":511,"description":659},"Conoscenza tacita: cosa resta quando te ne vai","successione-tecnica-conoscenza-tacita","blog/2026-05-12-successione-tecnica-conoscenza-tacita",[668,669,670,671,672,673,674],"conoscenza-tacita","gestione-team","leadership","documentazione","successione","cultura-tecnica","bus-factor","i6G1K-EzP4QlOmd81G3t8-jai6wQpyZl0OCUrSnwzrg",{"id":677,"title":678,"body":679,"category":13,"date":830,"description":831,"extension":225,"image":832,"meta":833,"navigation":3,"path":834,"published":3,"seo":835,"seoTitle":836,"slug":837,"stem":838,"tags":839,"updated":240,"__hash__":844},"blog/blog/2026-05-07-ai-codice-commodity-documentazione.md","Con l'AI il codice diventa commodity: la documentazione è l'asset",{"type":22,"value":680,"toc":819},[681,684,687,693,697,700,703,706,710,713,724,728,731,734,737,741,744,747,751,754,757,764,768,771,777,780,784,787,790,793,797,800,803,806,810,813,816],[25,682,683],{},"Per anni abbiamo trattato il codice come l’asset principale di un prodotto software. Lo misuravamo, lo difendevamo, lo versionavamo con cura, lo consideravamo il cuore del valore. Se un’azienda aveva tanto codice proprietario, sembrava avere un patrimonio. Se un team produceva tanto codice, sembrava stare costruendo qualcosa di solido.",[25,685,686],{},"Questa idea sta diventando rapidamente falsa. Con gli strumenti AI che ormai fanno parte del lavoro quotidiano — Claude Code, Codex, Cursor e tutto quello che arriverà dopo — il costo di scrivere codice sta scendendo in modo molto netto. Non a zero, ma abbastanza da cambiare la gerarchia delle cose che vale la pena proteggere.",[25,688,689,690,116],{},"Il codice non sparisce. Semplicemente, smette di essere la parte più rara del sistema. La parte rara si sposta altrove: si sposta sul ",[29,691,692],{},"perché",[43,694,696],{"id":695},"il-codice-non-è-più-la-cosa-costosa","Il codice non è più la cosa costosa",[25,698,699],{},"Per capire cosa sta cambiando, basta guardare come lavorava un team anche solo due anni fa. Una nuova feature significava analisi, implementazione, test, rifinitura, refactoring, magari qualche giorno perso su dettagli secondari. Il codice costava tempo, e il tempo costava soldi. Quindi quel codice diventava qualcosa da preservare, da ottimizzare, da non buttare.",[25,701,702],{},"Oggi la situazione è diversa. Un senior con strumenti AI produce in un’ora quello che fino a poco tempo fa richiedeva una giornata. Chi usa davvero questi strumenti lo vede tutti i giorni, e non serve farne una religione per riconoscere che la produttività sulla parte esecutiva è salita tantissimo.",[25,704,705],{},"Quando il costo marginale di produrre codice crolla, il codice si svaluta. Non nel senso che diventa inutile, ma nel senso che diventa meno raro. E quando una cosa diventa meno rara, smette di essere il centro del valore.",[43,707,709],{"id":708},"cosa-resta-raro","Cosa resta raro",[25,711,712],{},"Se il codice si può rigenerare, cosa non si può rigenerare facilmente? Non il repository, non la sintassi, non nemmeno la struttura superficiale del sistema. La cosa davvero difficile da ricostruire è il contesto che ha portato a una decisione: perché quel modulo è fatto così, perché quella dipendenza non è stata sostituita, perché quel flusso apparentemente brutto esiste, perché una soluzione più elegante è stata scartata, perché una certa stranezza non è un errore ma la risposta a un vincolo reale.",[25,714,715,716,719,720,723],{},"Questa roba non vive nel codice. Il codice mostra ",[29,717,718],{},"cosa hai fatto",", molto raramente spiega ",[29,721,722],{},"perché l’hai fatto",". Ed è proprio lì che sta l’asset.",[43,725,727],{"id":726},"il-problema-dei-sistemi-che-nessuno-capisce-più","Il problema dei sistemi che nessuno capisce più",[25,729,730],{},"Chiunque abbia lavorato su un software con qualche anno sulle spalle conosce la scena. Apri un modulo e trovi una scelta strana, e la prima reazione è: “questa cosa va rifatta”. Poi chiedi a chi c’era allora, e scopri che quella scelta era legata a un bug in produzione, a un cliente enorme, a un vincolo fiscale, a un’integrazione esterna assurda, a una limitazione del sistema di allora.",[25,732,733],{},"Quella informazione non era nel codice. Era nella testa di qualcuno. Se quella persona se ne va, il sistema perde valore anche se il repository resta identico.",[25,735,736],{},"Ed è qui che il discorso AI diventa serio: se domani rigeneri quel modulo da capo con un assistente che scrive codice meglio e più velocemente di te, ma non hai il contesto dietro quella scelta, rigeneri qualcosa di più pulito e probabilmente più sbagliato. Il rischio vero è perdere il motivo per cui il codice era fatto in quel modo, più che il codice stesso.",[43,738,740],{"id":739},"il-perché-è-lunica-cosa-che-sopravvive-alla-riscrittura","Il perché è l’unica cosa che sopravvive alla riscrittura",[25,742,743],{},"Questa è la vera inversione. Per anni abbiamo pensato: il codice è l’asset, la documentazione è un costo. Oggi il rapporto si sta ribaltando: il codice si può rigenerare, il perché no. O meglio: il perché si può ricostruire solo se qualcuno lo ha registrato mentre prendeva la decisione. Se non l’ha fatto, sparisce. E quando sparisce, il progetto entra in modalità archeologia.",[25,745,746],{},"Ogni modifica diventa più lenta, ogni refactoring è più rischioso, ogni nuovo ingresso nel team richiede mesi, ogni AI lavora su un sistema formalmente leggibile ma sostanzialmente muto. Il codice di oggi serve a produrre il software di oggi; il perché di oggi serve a produrre il software di domani.",[43,748,750],{"id":749},"ecco-perché-la-documentazione-smette-di-essere-overhead","Ecco perché la documentazione smette di essere “overhead”",[25,752,753],{},"Qui bisogna intendersi: non sto parlando della wiki aziendale piena di pagine morte che nessuno apre da mesi. Quella è arredamento, non documentazione.",[25,755,756],{},"Sto parlando di artefatti che catturano decisioni mentre sono ancora vive: un ADR scritto bene, che spiega quale scelta architetturale è stata fatta e perché; una sezione di explanation che chiarisce il contesto di un modulo; un commit message che non dice “fix bug”, ma spiega quale problema reale è stato corretto e cosa si è scelto di non fare. Queste cose sembrano piccole, in realtà sono l’unico modo per conservare il valore vero del sistema.",[25,758,759,760,763],{},"Diátaxis è utile proprio per questo: perché separa i tipi di documentazione e impedisce di mischiare tutto in un blob inutile. Ma il framework, in fondo, è secondario. Il punto è un altro: ",[29,761,762],{},"il contesto va estratto dalle teste e messo accanto al codice",". Altrimenti, alla prima riscrittura seria, lo perdi.",[43,765,767],{"id":766},"il-cambiamento-strategico-per-chi-decide","Il cambiamento strategico per chi decide",[25,769,770],{},"Se questa lettura è corretta, cambia anche il modo in cui un’azienda dovrebbe investire. Per anni il budget è andato quasi tutto nella produzione di codice; la documentazione, quando andava bene, era il 5% del lavoro. Il ragionamento era semplice: il codice è il prodotto, il resto è supporto.",[25,772,773,774,116],{},"Ora quel ragionamento non regge più. Il codice conta ancora, ovviamente: un codice scritto male resta un problema. Ma il punto non è se il codice conta. Il punto è ",[29,775,776],{},"cosa conviene proteggere di più",[25,778,779],{},"E oggi conviene proteggere il contesto decisionale, perché è quello che non puoi ricomprare dopo: non con un altro team, non con un assistente AI, non con una settimana di reverse engineering. Se un’azienda accumula per anni comprensione del dominio, eccezioni dei clienti, vincoli normativi, ragioni dietro le scelte, e lascia tutto dentro le teste dei senior, sta trattando come sottoprodotto il suo asset principale.",[43,781,783],{"id":782},"i-due-errori-ugualmente-pericolosi","I due errori ugualmente pericolosi",[25,785,786],{},"Qui vedo due estremi. Il primo è continuare come prima: trattare il codice come patrimonio duraturo, sottovalutare la documentazione, lasciare che le decisioni restino implicite. È l’errore più diffuso, e il più costoso nel medio periodo.",[25,788,789],{},"Il secondo è l’errore opposto: pensare che allora basti documentare tutto e lasciare il resto all’AI. Neanche questo funziona, perché il fatto che il codice si svaluti non significa che il gusto tecnico si svaluti. Anzi: se hai persone che non sanno riconoscere una buona decisione da una cattiva, documenteranno male, leggeranno male la documentazione, useranno male l’AI e produrranno rumore a velocità maggiore.",[25,791,792],{},"Il codice diventa commodity, il giudizio no. Il perché diventa asset, ma solo se c’è qualcuno capace di scriverlo, leggerlo e rimetterlo in discussione quando serve.",[43,794,796],{"id":795},"dove-conviene-investire-oggi","Dove conviene investire oggi",[25,798,799],{},"Se dovessi semplificarlo brutalmente, direi così: meno energia nel proteggere il codice come oggetto da museo, più energia nel catturare il contesto che permette di rigenerarlo bene.",[25,801,802],{},"Questo significa scrivere ADR per le decisioni che contano davvero, non per ogni dettaglio. Significa tenere una explanation documentata per i moduli strani o sensibili, e una reference accurata dove serve sul serio. Significa scrivere commit e pull request che spieghino il motivo del cambiamento, non solo il cambiamento; e fare review che valutino anche la qualità del ragionamento, non solo la qualità del codice.",[25,804,805],{},"Sembrano dettagli. In realtà sono la differenza tra un sistema che può essere rigenerato e uno che deve essere scavato.",[43,807,809],{"id":808},"la-scelta-si-fa-adesso","La scelta si fa adesso",[25,811,812],{},"Il modo in cui un team documenta oggi determina quanto sarà facile usare bene l’AI tra uno, due o tre anni. Chi avrà contesto ben catturato potrà rigenerare velocemente codice buono; chi avrà solo montagne di codice e poco perché dovrà prima ricostruire la storia del sistema, e quella parte sarà lenta, costosa e piena di errori.",[25,814,815],{},"La scelta, in fondo, è molto semplice. Puoi continuare a trattare il codice come il bene da proteggere, oppure puoi iniziare a proteggere quello che rende il codice sostituibile senza perdere il sistema.",[25,817,818],{},"Il codice è il cosa di oggi. Il perché è il capitale che ti permette di ricostruire il cosa domani.",{"title":212,"searchDepth":213,"depth":213,"links":820},[821,822,823,824,825,826,827,828,829],{"id":695,"depth":213,"text":696},{"id":708,"depth":213,"text":709},{"id":726,"depth":213,"text":727},{"id":739,"depth":213,"text":740},{"id":749,"depth":213,"text":750},{"id":766,"depth":213,"text":767},{"id":782,"depth":213,"text":783},{"id":795,"depth":213,"text":796},{"id":808,"depth":213,"text":809},"2026-05-07","Con l'AI il costo di scrivere codice crolla. Quello che resta davvero raro è il perché delle decisioni: architettura, trade-off, vincoli, contesto.","/images/blog/ai-codice-commodity-documentazione.jpg",{},"/blog/2026-05-07-ai-codice-commodity-documentazione",{"title":678,"description":831},"AI e sviluppo software: il codice si svaluta, il contesto no","ai-codice-commodity-documentazione","blog/2026-05-07-ai-codice-commodity-documentazione",[234,671,840,6,841,842,239,843],"strategia","adr","diataxis","futuro-del-software","3G6lTUKmqd5iGfk6RX9n17tR1qo8G8g5qqa6ZZlyquQ",{"id":846,"title":847,"body":848,"category":13,"date":1025,"description":1026,"extension":225,"image":1027,"meta":1028,"navigation":3,"path":1029,"published":3,"seo":1030,"seoTitle":1031,"slug":1032,"stem":1033,"tags":1034,"updated":240,"__hash__":1038},"blog/blog/2026-05-05-bus-factor-reale-come-misurarlo-e-alzarlo.md","Bus factor reale: come misurarlo davvero e costruire un secondo",{"type":22,"value":849,"toc":1014},[850,861,864,868,871,878,881,884,888,891,897,909,912,916,919,922,926,929,932,936,939,942,948,951,954,958,961,964,975,979,982,985,988,992,995,998,1001,1005,1008,1011],[25,851,852,853,856,857,860],{},"In un articolo precedente ho spiegato perché il ",[146,854,855],{"href":584},"bus factor è una delle metriche di rischio più ignorate nello sviluppo software",". Questo articolo parte da lì, ma va un passo oltre: non tanto perché il bus factor conta — quello ormai dovrebbe essere chiaro — ma ",[29,858,859],{},"come si misura davvero",". Perché il numero che quasi tutti hanno in testa è quasi sempre falso.",[25,862,863],{},"Il motivo è semplice. Quando un team guarda sé stesso da dentro, tende a sovrastimare quanto la conoscenza sia distribuita. Quattro sviluppatori che lavorano sullo stesso progetto sembrano un bus factor di quattro. Sulla carta è rassicurante. Nella pratica, spesso è uno.",[43,865,867],{"id":866},"il-bus-factor-che-racconti-e-quello-che-hai-davvero","Il bus factor che racconti e quello che hai davvero",[25,869,870],{},"Il bus factor apparente è facile da raccontare. Si calcola così: quante persone lavorano sul progetto? Quante sanno aprire il repository, fare una modifica, chiudere un bug, scrivere una feature? Se la risposta è “quattro”, allora ci si convince che il rischio sia basso.",[25,872,873,874,877],{},"Il bus factor reale è un’altra cosa. La domanda giusta non è “quante persone sanno contribuire?”, ma ",[29,875,876],{},"quante persone possono tenere in piedi il progetto da sole quando succede qualcosa di non previsto?"," Non eseguire task già definiti, non fare il compitino assegnato, non portare avanti il lavoro finché tutto fila liscio. Sto parlando di decidere: che trade-off fare, dove mettere mano, cosa sacrificare, come spiegare la scelta allo stakeholder, come tenere insieme il tutto quando il progetto si piega sotto un problema vero. Lì il numero si abbassa brutalmente.",[25,879,880],{},"Nella maggior parte dei team c’è una persona che tiene in testa il sistema intero. Le altre conoscono bene le parti su cui lavorano, abbastanza quelle adiacenti, poco o nulla il resto. Finché il lavoro è ordinario, sembra che tutto funzioni. Quando arriva l’imprevisto, tutti tornano da quella persona.",[25,882,883],{},"Quella persona è il tuo bus factor reale.",[43,885,887],{"id":886},"il-test-che-non-perdona","Il test che non perdona",[25,889,890],{},"Il modo migliore per capire se ti stai raccontando una favola è molto semplice: sparisci per una settimana. Non ferie vere, non “scrivimi se succede qualcosa di grave”. Proprio una settimana in cui, su quel progetto, tu non ci sei, e le decisioni vanno prese senza di te.",[25,892,893,894],{},"Il punto non è se qualcuno ti cerca — quello succederà comunque. Il punto è un altro: ",[29,895,896],{},"al tuo ritorno trovi decisioni già prese oppure una pila di cose lasciate in sospeso perché “dovevi vederle tu”?",[25,898,899,900,902,903,905,906,908],{},"Se trovi la seconda, il tuo bus factor è 1.",[351,901],{},"\nAnche se il team è di cinque persone.",[351,904],{},"\nAnche se tutti sono bravi.",[351,907],{},"\nAnche se il progetto “va bene”.",[25,910,911],{},"Questo è il test che separa la ridondanza reale dalla semplice sensazione di avere una squadra.",[43,913,915],{"id":914},"il-bug-notturno-è-sempre-più-sincero-dei-processi","Il bug notturno è sempre più sincero dei processi",[25,917,918],{},"C’è un altro momento in cui il bus factor smette di mentire: il problema notturno. Se alle due di notte succede qualcosa in produzione, quante persone possono davvero diagnosticare il problema e risolverlo? Non alzare il telefono e farsi guidare, non “tamponare finché domani si vede”. Risolverlo.",[25,920,921],{},"È lì che capisci quanta conoscenza del sistema è superficiale e quanta invece è strutturale. Molti team scoprono in quel momento che il loro progetto è, di fatto, una monarchia tecnica travestita da organizzazione distribuita.",[43,923,925],{"id":924},"il-sintomo-più-sottovalutato-lonboarding","Il sintomo più sottovalutato: l’onboarding",[25,927,928],{},"C’è poi un test ancora più subdolo, perché non ha il pathos del bug in produzione ma dice la verità con la stessa precisione: il tempo che serve a una persona senior per diventare operativa.",[25,930,931],{},"Se domani entra qualcuno molto bravo, quanto ci mette a muoversi sul progetto senza appoggiarsi continuamente alla stessa persona? Se la risposta vera è “mesi”, allora la conoscenza è ancora quasi tutta in una testa sola. Se invece in due settimane riesce a orientarsi leggendo, facendo qualche domanda e prendendo mano ai moduli giusti, vuol dire che una parte della conoscenza è stata esternalizzata. Ed è lì che entra in gioco la documentazione fatta bene.",[43,933,935],{"id":934},"la-documentazione-aiuta-quella-finta-no","La documentazione aiuta. Quella finta no.",[25,937,938],{},"Qui serve una distinzione brutale. La documentazione non alza il bus factor solo perché esiste una wiki: quella roba, nella maggior parte dei casi, serve solo a far sentire il team più ordinato di quanto sia davvero. La documentazione utile è quella che permette a qualcuno di entrare, capire e fare, non quella che spiega genericamente il sistema con belle parole e diagrammi dimenticati da sei mesi.",[25,940,941],{},"Il principio giusto è semplice: una documentazione sana separa le cose per quello che sono. C’è la parte che ti aiuta a capire il perché, quella che ti dice come fare una cosa specifica, quella che ti serve da riferimento quando cerchi un dettaglio preciso. Mischiare tutto nello stesso documento produce solo confusione.",[25,943,944,945,116],{},"Il nome del framework conta relativamente. Il punto vero è un altro: ",[29,946,947],{},"la conoscenza deve uscire dalle teste e finire in artefatti che qualcuno può usare davvero",[25,949,950],{},"Il problema è che la documentazione decade. Sempre. Oggi è corretta, tra diciotto mesi no. E decade nel modo peggiore: in silenzio. Nessuno se ne accorge finché qualcuno prova a seguirla e si schianta.",[25,952,953],{},"Per questo la documentazione non va trattata come un progetto a parte da fare “quando c’è tempo”. Va trattata come parte del lavoro normale. Se cambi il sistema e non aggiorni la documentazione che serve a capirlo, stai solo spostando il problema in avanti.",[43,955,957],{"id":956},"perché-il-bus-factor-resta-basso-anche-nei-team-forti","Perché il bus factor resta basso anche nei team forti",[25,959,960],{},"Questo è il punto che confonde più persone. Puoi avere un team bravo, serio, capace, e avere comunque un bus factor reale di 1. Perché contribuire bene non significa poter sostituire davvero: sono due cose diverse.",[25,962,963],{},"Un team funziona quando ognuno sa fare bene il proprio pezzo. Il bus factor sale quando almeno un’altra persona sa fare anche il tuo. E questo richiede un investimento esplicito, che spesso non si fa perché sembra inefficiente: in apparenza è uno spreco, stai chiedendo a qualcuno di imparare cose che già un altro sa fare. In realtà è esattamente il contrario. Stai pagando ridondanza oggi per non trovarti paralizzato domani.",[25,965,966,967,974],{},"Il problema è che questo investimento andrebbe fatto proprio dalla persona più sovraccarica del sistema. E quella persona, quasi sempre, non ha tempo. È lo stesso meccanismo che ho raccontato in ",[146,968,970],{"href":969},"/blog/troppi-ruoli-una-persona-rischio",[971,972,973],"em",{},"Quando una persona copre troppi ruoli, l’organizzazione è fragile",": il sistema dipende da qualcuno proprio perché quel qualcuno non ha mai avuto il margine per costruire un’alternativa.",[43,976,978],{"id":977},"costruire-un-secondo-non-significa-passare-task","Costruire un secondo non significa passare task",[25,980,981],{},"Qui c’è l’errore più comune. Molti pensano che costruire un secondo significhi iniziare a distribuire lavoro. Non basta: passare task produce supporto operativo, non ridondanza reale.",[25,983,984],{},"Se vuoi costruire un secondo, devi dare a qualcuno un pezzo intero di sistema. Un’area con responsabilità vera. Qualcosa su cui quella persona debba decidere, sbagliare, capire, difendere scelte e portarne il peso. Se continui a dare compiti singoli, il modello mentale resta nel tuo cervello: l’altra persona impara a eseguire, non a sostituire.",[25,986,987],{},"Poi c’è il passaggio più difficile: smettere di correggere tutto. All’inizio la review serve. Poi arriva un punto in cui tu continui a rivedere tutto solo per rassicurarti, e lì la review smette di essere uno strumento di qualità e diventa una tassa sulla crescita dell’altro. Il momento in cui capisci che stai facendo sul serio è questo: l’altra persona prende una decisione diversa da quella che avresti preso tu, ma ragionevole. Se la tua reazione è correggerla comunque, non stai costruendo un secondo. Stai costruendo una copia minore di te.",[43,989,991],{"id":990},"da-1-a-2-cambia-quasi-tutto","Da 1 a 2 cambia quasi tutto",[25,993,994],{},"Non serve inseguire la perfezione. Non serve un bus factor di 5 ovunque. Nella maggior parte dei casi, la vera soglia è passare da 1 a 2 sulle parti critiche.",[25,996,997],{},"Con una sola persona, l’indisponibilità è un rischio costante. Con due, la resilienza cambia drasticamente. Non in modo lineare: proprio di ordine di grandezza.",[25,999,1000],{},"È qui che molte aziende sbagliano. Vedono la costruzione del “secondo” come un lusso organizzativo. In realtà è una forma di assicurazione. Costa prima, salva dopo.",[43,1002,1004],{"id":1003},"il-punto-di-partenza-se-il-tuo-bus-factor-è-1","Il punto di partenza, se il tuo bus factor è 1",[25,1006,1007],{},"Se leggendo questo articolo ti sei reso conto che il tuo progetto gira davvero intorno a una sola persona, non serve fare teorie. Serve iniziare da qualcosa di estremamente concreto.",[25,1009,1010],{},"Scegli una persona specifica. Non “il team”, non “nei prossimi mesi distribuiremo meglio la conoscenza”. Una persona con nome e cognome. Dagli un’area precisa. Lasciale prendere decisioni. Lasciale sbagliare in modo controllato. Costringiti a non intervenire su tutto. Poi pianifica la settimana in cui non ci sarai.",[25,1012,1013],{},"Perché finché non fai quel test, puoi raccontarti quello che vuoi. Il bus factor, come la sicurezza o il debito tecnico, sembra sotto controllo finché non lo metti davvero alla prova. E quando cede, di solito cede tutto insieme.",{"title":212,"searchDepth":213,"depth":213,"links":1015},[1016,1017,1018,1019,1020,1021,1022,1023,1024],{"id":866,"depth":213,"text":867},{"id":886,"depth":213,"text":887},{"id":914,"depth":213,"text":915},{"id":924,"depth":213,"text":925},{"id":934,"depth":213,"text":935},{"id":956,"depth":213,"text":957},{"id":977,"depth":213,"text":978},{"id":990,"depth":213,"text":991},{"id":1003,"depth":213,"text":1004},"2026-05-05","Il bus factor apparente quasi sempre inganna: nella maggior parte dei team è 1. Come capire quello reale e alzarlo senza allargare il team.","/images/blog/bus-factor-reale-come-misurarlo-e-alzarlo.jpg",{},"/blog/2026-05-05-bus-factor-reale-come-misurarlo-e-alzarlo",{"title":847,"description":1026},"Come calcolare e alzare il bus factor nello sviluppo software","bus-factor-reale-come-misurarlo-e-alzarlo","blog/2026-05-05-bus-factor-reale-come-misurarlo-e-alzarlo",[674,669,1035,671,1036,1037],"rischio","delega","organizzazione","8jZciW65ZitXOJQ89-xTYOZSttNrjOaHsSPvVsXQAQY",{"id":1040,"title":1041,"body":1042,"category":13,"date":1135,"description":1136,"extension":225,"image":1137,"meta":1138,"navigation":3,"path":1139,"published":3,"seo":1140,"seoTitle":1141,"slug":1142,"stem":1143,"tags":1144,"updated":240,"__hash__":1146},"blog/blog/2026-04-30-codice-funziona-non-significa-buona-idea.md","Il codice funziona. Non significa che sia una buona idea.",{"type":22,"value":1043,"toc":1128},[1044,1050,1054,1057,1060,1063,1067,1070,1073,1076,1080,1087,1095,1103,1107,1110,1118,1122,1125],[25,1045,1046,1049],{},[29,1047,1048],{},"Uno sviluppatore di medio livello entra in un progetto nuovo."," Invece di passare le prime settimane a capire il codice esistente e come funziona il dominio, apre un assistente AI e inizia a produrre feature. I ticket si chiudono, le pull request arrivano, i test passano. Tutto sembra ottimo. Dopo un mese, i numeri parlano: questa persona produce il doppio di chi è entrato con lo stesso ruolo un anno fa. Un anno fa sarebbe stato un mezzo disastro, oggi sembra una notizia entusiasmante. Non lo è, e la differenza tra le due cose si paga in produzione.",[43,1051,1053],{"id":1052},"una-scena-che-si-ripete","Una scena che si ripete",[25,1055,1056],{},"In un punto del prodotto c'è un'operazione che, quando l'utente salva, deve aspettare un calcolo in background prima di aggiornare una parte della pagina. Ci sono due modi ovvi di farlo. Il primo: aspettare qualche decimo di secondo in più, salvare, rileggere il dato, mostrarlo. Venti righe di codice. Il secondo: salvare subito, far girare il calcolo in modo asincrono, notificare la pagina quando il calcolo finisce e aggiornare il DOM in tempo reale. Un sistema di code, un canale di notifica real-time al browser, logica di reconnect, gestione degli stati intermedi. È anche molto più interessante da scrivere.",[25,1058,1059],{},"Lo sviluppatore sceglie il secondo. L'AI lo aiuta, il codice esce pulito, ordinato, testato, e la PR passa la review. Arriva in produzione e non succede nulla. Per qualche settimana.",[25,1061,1062],{},"Il problema emerge dopo: il calcolo in background, nel sistema reale, non dura mezzo secondo. Dura minuti, a volte ore — il backend lo gestisce in una coda che dipende dal carico. Nel frattempo l'utente ha cambiato pagina, aperto altro, riaperto lo stesso schermo in un'altra scheda. Quando finalmente la notifica arriva, trova un DOM che non esiste più, o peggio ne aggiorna uno che non doveva aggiornare. L'utente vede la pagina rompersi in modo incomprensibile. A volte perde dati.",[43,1064,1066],{"id":1065},"lerrore-non-era-nel-codice","L'errore non era nel codice",[25,1068,1069],{},"Il codice era scritto decentemente. La review non ha trovato nulla perché tecnicamente era tutto corretto. L'errore era una scelta architetturale che nessuno ha mai discusso esplicitamente: non serviva un sistema real-time per un problema che si risolveva aspettando mezzo secondo al salvataggio. La soluzione semplice era anche quella giusta, la soluzione sofisticata ha introdotto una classe di bug che nel modello banale non poteva nemmeno esistere.",[25,1071,1072],{},"Lo sviluppatore non l'ha visto perché non conosceva ancora il prodotto — era da poco sul progetto e aveva saltato la fase di studio. Non sapeva che quei calcoli potevano durare ore, non aveva osservato come gli utenti usavano davvero quella pagina. L'AI non poteva vederlo: ha risposto alla domanda \"come aggiorno una pagina in modo asincrono\" con la risposta più sofisticata disponibile, non con quella più adatta al contesto. Nessuno dei due aveva il contesto, e il contesto è l'unica cosa che l'AI non può ricostruire da sola.",[25,1074,1075],{},"La review non l'ha intercettato per un motivo strutturale: una PR review guarda il codice, non l'architettura. Controlla che i test passino, che lo stile sia giusto, che non ci siano errori evidenti. Raramente chiede \"ma serviva davvero fare così?\". Quando il codice è pulito e viene da qualcuno che usa l'AI, la review diventa ancora meno sensibile, perché quel codice è indistinguibile da qualsiasi altro codice dello stesso tipo.",[43,1077,1079],{"id":1078},"velocità-di-produzione-superficie-di-decisioni","Velocità di produzione, superficie di decisioni",[25,1081,1082,1083,1086],{},"Questa non è una scena isolata. È quello che sta succedendo in tantissimi team che hanno adottato l'AI senza ripensare come lavorano. ",[146,1084,1085],{"href":148},"La produttività sale"," ed è facilmente misurabile: più PR, più ticket chiusi, più codice in arrivo. Sotto la superficie si accumulano scelte architetturali che nessuno ha mai vagliato, e ognuna di quelle scelte è una piccola bomba a tempo.",[25,1088,1089,1090,1094],{},"La bomba non esplode nelle settimane di sviluppo. Esplode in produzione, mesi dopo, quando gli utenti iniziano a segnalare ",[146,1091,1093],{"href":1092},"/blog/software-fragile-regressioni","bug che si moltiplicano quando tocchi qualcosa",", data loss a bassa frequenza ma alto impatto, comportamenti strani che in ambiente di test non si riproducono. Casi limite che non corrispondono mai alla documentazione, perché la documentazione non esiste: chi ha scritto il codice non aveva tempo, e l'AI lo ha seguito sulla velocità.",[25,1096,1097,1098,1102],{},"Il costo lo paga chi ha commissionato il software. Lo paga nel crescere dei ticket di produzione, nei tempi di risposta del team su problemi che \"non capiamo da dove vengano\", nel momento in cui qualcuno deve ",[146,1099,1101],{"href":1100},"/blog/riscrivere-software-da-zero","smantellare un'architettura inutilmente complicata e rimetterla semplice"," — una seconda volta, con un altro team.",[43,1104,1106],{"id":1105},"lai-amplifica-quello-che-già-cè","L'AI amplifica quello che già c'è",[25,1108,1109],{},"L'AI nelle mani di uno sviluppatore senior amplifica il giudizio: chi già sa riconoscere quando una soluzione semplice batte una soluzione impressionante usa l'AI per andare più veloce su quella strada. L'AI nelle mani di uno sviluppatore meno esperto amplifica l'ottimismo: la fiducia che, siccome il codice funziona nei test, allora la soluzione è giusta. Più aumenta la velocità con cui il team produce, più aumenta la superficie di decisioni non controllate.",[25,1111,1112,1113,1117],{},"La contromisura non è togliere l'AI al team, cosa che nessuna azienda con un minimo di senso farà. È cambiare il criterio con cui si valuta il lavoro. Il mestiere oggi non è produrre codice: quello l'AI lo fa in fretta, pulito, spesso meglio di un umano. Il mestiere è capire il problema, scegliere la ",[146,1114,1116],{"href":1115},"/blog/semplicita-nel-software","soluzione più semplice che risolve davvero",", proteggere le scelte architetturali nei momenti in cui conta farlo.",[43,1119,1121],{"id":1120},"la-domanda-da-fare-al-team","La domanda da fare al team",[25,1123,1124],{},"Chi guida o commissiona un team che usa l'AI dovrebbe smettere di chiedere \"quanto producete in uno sprint?\" e iniziare a chiedere \"quanto di quello che avete prodotto negli ultimi tre mesi pensate di tenere tra un anno?\". È la domanda che filtra la velocità utile dalla velocità pericolosa. Oggi molti team non sanno rispondere, o peggio rispondono \"tutto\" senza averci pensato sopra.",[25,1126,1127],{},"Il fatto che il codice funzioni non significa che sia una buona idea. È una distinzione che l'AI ha reso molto più importante, perché il codice che funziona ma è una cattiva idea oggi si produce dieci volte più in fretta di prima. In produzione si paga esattamente uguale.",{"title":212,"searchDepth":213,"depth":213,"links":1129},[1130,1131,1132,1133,1134],{"id":1052,"depth":213,"text":1053},{"id":1065,"depth":213,"text":1066},{"id":1078,"depth":213,"text":1079},{"id":1105,"depth":213,"text":1106},{"id":1120,"depth":213,"text":1121},"2026-04-30","Con l'AI i team chiudono più ticket e producono più PR. Ma 'funziona nei test' non dice se la decisione architetturale era quella giusta — e il conto arriva in produzione.","/images/blog/codice-funziona-non-significa-buona-idea.jpg",{},"/blog/2026-04-30-codice-funziona-non-significa-buona-idea",{"title":1041,"description":1136},"Codice che funziona ma è sbagliato: il rischio dell'AI nei team","codice-funziona-non-significa-buona-idea","blog/2026-04-30-codice-funziona-non-significa-buona-idea",[234,6,1145,237,239,669],"qualita-codice","S9dwvPH4gBOQB7bWM_hOf_UjWPuDhtH69y7hZihINoA",{"id":1148,"title":1149,"body":1150,"category":13,"date":1248,"description":1249,"extension":225,"image":1250,"meta":1251,"navigation":3,"path":1252,"published":3,"seo":1253,"seoTitle":1254,"slug":1255,"stem":1256,"tags":1257,"updated":240,"__hash__":1263},"blog/blog/2026-04-28-ai-progetta-software-costo-reale-sviluppo.md","L'AI progetta il software in cinque minuti. Costruirlo richiede ancora sei mesi.",{"type":22,"value":1151,"toc":1240},[1152,1158,1162,1165,1168,1172,1175,1178,1182,1188,1191,1195,1198,1206,1209,1213,1216,1223,1230,1234,1237],[25,1153,1154,1157],{},[29,1155,1156],{},"Hai un'idea di prodotto."," La racconti a ChatGPT, Claude o al modello di turno. Dopo qualche scambio ottieni un documento tecnico: architettura a box, database vettoriale, pipeline di ingestion dei dati, i nomi di ogni tecnologia al posto giusto. Sembra un deliverable da studio di consulenza. Arrivi con quel documento a chiedere un preventivo, con un budget di qualche migliaio di euro in testa. E qualcuno ti deve spiegare che il progetto descritto in quel documento costa uno zero in più. È la scena più comune degli ultimi mesi, e quella che due anni fa non esisteva.",[43,1159,1161],{"id":1160},"il-pattern-si-ripete","Il pattern si ripete",[25,1163,1164],{},"Negli anni 2000 bastavano 3.000 euro per chiedere \"un sito come Amazon\" anzi, a dire il vero \"un sito come eBay\", senza nessuna idea di cosa significasse costruire un e-commerce a quella scala. Poi è toccato a \"un'app come Airbnb\" con WordPress e plugin, poi a \"una piattaforma no-code in un weekend\". Oggi la cifra richiesta è simile — tipicamente tra i 2 e i 5K — ma l'idea coinvolge tecnologie che fino a ieri richiedevano mezza Silicon Valley per essere tenute in piedi: database vettoriali, modelli linguistici in API, pipeline di OCR, crawler distribuiti.",[25,1166,1167],{},"Ogni generazione di astrazioni produce lo stesso effetto: la superficie diventa accessibile, il sotto resta un casino. Chi sta sopra non lo vede finché non ci sbatte la testa. L'AI ha semplicemente spinto l'astrazione un piano più in alto, e il divario tra aspettativa e realtà di sviluppo è diventato più grande di quanto sia mai stato.",[43,1169,1171],{"id":1170},"cosa-fa-davvero-lai-quando-progetta-un-software","Cosa fa davvero l'AI quando \"progetta un software\"",[25,1173,1174],{},"Un modello linguistico mette in fila nomi che sembrano pertinenti. Prende la descrizione del tuo problema, la associa a pattern visti in miliardi di documenti tecnici, produce un diagramma plausibile. Postgres con pgvector, crawler headless, modelli in API, microservizi dove servono, pipeline di OCR per i documenti. Frecce giuste, box giusti. A colpo d'occhio è indistinguibile dal lavoro di un professionista con anni di esperienza alle spalle.",[25,1176,1177],{},"Il problema è che il modello non ha mai messo un sistema del genere in produzione. Non sa che l'OCR su un documento sporco rende una volta su tre. Non sa che fare web scraping è complesso perchè il sito può cambiare struttura senza preavviso, o mettere una protezione antibot. Non sa che il 70% del costo di un sistema come quello che ha disegnato non è nel codice: è nella pulizia dei dati, nella manutenzione continua delle regole di business, nella difficoltà quotidiana di tenere aggiornato un database che descrive un mondo che cambia.",[43,1179,1181],{"id":1180},"lottimismo-strutturale-dei-modelli","L'ottimismo strutturale dei modelli",[25,1183,1184,1185,116],{},"C'è un'altra caratteristica importante di come rispondono questi modelli. L'AI dice quasi sempre che si può fare. La domanda \"è fattibile?\" riceve una risposta ottimistica perché il modello non ha mai pagato un mese di debug in produzione, non ha mai visto un cliente abbandonare per un bug ricorrente, non ha mai dovuto coordinare quattro persone che parlano linguaggi diversi del progetto. Risponde \"ottima idea, iniziamo lo sviluppo\" con la stessa fiducia con cui ti darebbe una ricetta di cucina. Poi inizi a costruire e scopri che il 10% del progetto occupa il 90% del tempo, e ",[146,1186,1187],{"href":312},"le stime diventano imprecise proprio per questo",[25,1189,1190],{},"A questo si somma un secondo fenomeno: le allucinazioni. Il modello cita librerie che non esistono, API che non fanno quello che dice, pattern che sembrano standard ma nessuno ha mai davvero usato in quel modo. Nel documento iniziale non si vedono. Si vedono dopo, in sviluppo, quando per ogni pezzo dell'architettura tocca verificare che esista e funzioni come promesso.",[43,1192,1194],{"id":1193},"larchitettura-è-diventata-gratis-la-costruzione-no","L'architettura è diventata gratis. La costruzione no.",[25,1196,1197],{},"Fino a poco tempo fa, un documento tecnico di quel tipo richiedeva giornate di lavoro a qualcuno che lo stack lo aveva usato davvero. Oggi chiunque lo ottiene in cinque minuti. Questa parte si è commoditizzata, ed è giusto riconoscerlo.",[25,1199,1200,1201,1205],{},"Il lavoro di costruzione, invece, non si è ridotto nella stessa proporzione. Chi sa far girare quei box in produzione, con dati reali e sporchi, con sistemi esterni che si comportano male, con eccezioni che emergono solo dopo il lancio, non è stato sostituito. È diventato meno visibile, perché la patina del documento AI fa sembrare che il lavoro sia quasi finito quando in realtà non è ancora iniziato. ",[146,1202,1204],{"href":1203},"/blog/quanto-costa-un-software-custom","Il grosso del costo nello sviluppo software si nasconde proprio lì",", e nessun documento generato in cinque minuti può raccontarlo.",[25,1207,1208],{},"Un architetto che non sa quanto costa davvero costruire un muro è un architetto inutile: disegna palazzi che non stanno in piedi. L'AI oggi produce esattamente questo genere di architetti, e tantissime aziende si trovano in mano progetti elegantissimi sulla carta e infattibili nella sostanza.",[43,1210,1212],{"id":1211},"il-confronto-utile-per-chi-deve-commissionare","Il confronto utile per chi deve commissionare",[25,1214,1215],{},"Chi arriva a un colloquio con un documento generato dall'AI ha bisogno di una cosa nuova, anche se sembra vecchia: qualcuno che quel documento lo sappia leggere e dire dove si romperà in produzione. Qualcuno che sappia distinguere l'idea fattibile con questo budget da quella che richiede dieci volte tanto o che semplicemente non può esistere in quella forma.",[25,1217,1218,1219,1222],{},"Il confronto economico utile è diverso da quello che l'AI suggerisce implicitamente. Il costo di un software custom non si paragona al costo di un software pronto: si paragona al costo del lavoro tecnico senior necessario per costruirlo. Mesi di qualcuno che ha visto cosa succede quando un box diventa codice, quando una freccia diventa un'integrazione, quando un nome di tecnologia diventa un mese di debug. ",[146,1220,1221],{"href":460},"Partire dal budget reale, non dall'ambizione del documento, rende la conversazione utile",": si decide cosa costruire prima, cosa rimandare, cosa non fare.",[25,1224,1225,1226,1229],{},"Chi commissiona software oggi dovrebbe diffidare del primo che risponde \"partiamo subito\" al documento AI. È il segnale che sta leggendo quel documento con lo stesso sguardo con cui l'AI l'ha scritto. Chi vale davvero fa domande fastidiose sul processo, sui dati veri, sulle eccezioni, sui volumi. Propone fasi e trade-off espliciti invece di una versione \"completa\". ",[146,1227,1228],{"href":429},"Fa emergere lo scope prima che esploda"," a metà progetto. Presenta numeri che sembrano alti confrontati alle promesse dell'AI, e sono solo realistici.",[43,1231,1233],{"id":1232},"il-gap-lavora-a-favore-di-chi-sa-costruire","Il gap lavora a favore di chi sa costruire",[25,1235,1236],{},"La parte interessante è che l'asimmetria di oggi lavora a favore di chi costruisce davvero. Più l'AI rende facile produrre documenti impressionanti, più sottostime cresceranno, più progetti partiranno con premesse sbagliate, più chi riesce a portarli a casa diventerà raro.",[25,1238,1239],{},"Il valore, come succede a ogni salto di astrazione, si sposta un piano più giù — sul muratore, non sull'architetto. Sul mestiere che nessuno vede finché non c'è più.",{"title":212,"searchDepth":213,"depth":213,"links":1241},[1242,1243,1244,1245,1246,1247],{"id":1160,"depth":213,"text":1161},{"id":1170,"depth":213,"text":1171},{"id":1180,"depth":213,"text":1181},{"id":1193,"depth":213,"text":1194},{"id":1211,"depth":213,"text":1212},{"id":1232,"depth":213,"text":1233},"2026-04-28","Farsi progettare un software dall'AI oggi costa cinque minuti. Perché il costo di sviluppo non è sceso con la stessa proporzione del costo di disegnarne l'architettura.","/images/blog/ai-progetta-software-costo-reale-sviluppo.jpg",{},"/blog/2026-04-28-ai-progetta-software-costo-reale-sviluppo",{"title":1149,"description":1249},"AI che progetta software: quanto costa davvero svilupparlo","ai-progetta-software-costo-reale-sviluppo","blog/2026-04-28-ai-progetta-software-costo-reale-sviluppo",[234,6,1258,1259,1260,1261,1262],"budget","preventivi","chatgpt","scope-creep","software-custom","mY036ZKkGvlx6OtGElHue_WsUut7WgYIkPc9Nqm1W00",{"id":1265,"title":1266,"body":1267,"category":13,"date":1416,"description":1417,"extension":225,"image":1418,"meta":1419,"navigation":3,"path":1420,"published":3,"seo":1421,"seoTitle":1422,"slug":1423,"stem":1424,"tags":1425,"updated":240,"__hash__":1428},"blog/blog/2026-04-23-troppi-ruoli-una-persona-rischio.md","Troppi ruoli su una persona: il rischio organizzativo nascosto",{"type":22,"value":1268,"toc":1407},[1269,1272,1278,1282,1285,1291,1294,1298,1305,1308,1324,1327,1331,1334,1337,1340,1351,1354,1358,1361,1364,1367,1371,1374,1377,1380,1382,1388,1394,1398,1401,1404],[25,1270,1271],{},"Nelle aziende che sviluppano software c’è una situazione molto comune che viene spesso scambiata per un punto di forza: una persona sola tiene insieme tutto. Parla con lo stakeholder, decide cosa costruire, tiene il piano, guida le scelte tecniche, mette mano al codice quando serve. Se c’è un problema, lo risolve. Se serve decidere, decide.",[25,1273,1274,1275,1277],{},"Dall’esterno sembra una fortuna.",[351,1276],{},"\nDall’interno, è una fragilità.",[43,1279,1281],{"id":1280},"non-è-un-problema-di-talento","Non è un problema di talento",[25,1283,1284],{},"La lettura più comoda è: “è una persona molto brava”. Quella meno comoda è: l’azienda non ha costruito le funzioni di cui ha bisogno e le ha scaricate tutte su chi riesce a reggerle. Quasi sempre è la seconda.",[25,1286,1287,1288],{},"C’è un modo semplice per capirlo: se quella persona sparisce per una settimana, cosa succede? Non se qualcuno la chiama — quello succede sempre. La domanda è: ",[29,1289,1290],{},"le decisioni vanno avanti o si fermano?",[25,1292,1293],{},"Se si fermano, non hai una risorsa preziosa. Hai un collo di bottiglia.",[43,1295,1297],{"id":1296},"il-problema-non-è-il-carico-di-lavoro","Il problema non è il carico di lavoro",[25,1299,1300,1301,116],{},"Chi vive questa situazione spesso regge. Lavora tanto, si organizza, trova il tempo. Il problema è il tipo di attenzione richiesta, più che il numero di ore. Pensare al prodotto richiede un certo tipo di testa, gestire il progetto un altro, prendere decisioni architetturali un altro ancora, scrivere codice richiede concentrazione profonda. Non sono attività che convivono bene nella stessa giornata, e ogni volta che cambi contesto paghi un costo: non in tempo, ma in qualità. È lo stesso problema delle interruzioni: ",[146,1302,1304],{"href":1303},"/blog/ogni-interruzione-costa-23-minuti","ogni cambio di contesto costa più di quanto pensi",[25,1306,1307],{},"Quando tutto passa da una persona, succede questo:",[1309,1310,1311,1315,1318,1321],"ul",{},[1312,1313,1314],"li",{},"il codice si scrive di corsa",[1312,1316,1317],{},"le decisioni si prendono a metà",[1312,1319,1320],{},"il prodotto si capisce superficialmente",[1312,1322,1323],{},"la visione di lungo periodo sparisce",[25,1325,1326],{},"Non perché la persona non sia capace, ma perché sta facendo cinque lavori insieme.",[43,1328,1330],{"id":1329},"il-tentativo-che-peggiora-le-cose","Il tentativo che peggiora le cose",[25,1332,1333],{},"A un certo punto l’azienda se ne accorge, e prova a “scaricare un po’ di lavoro”: arriva qualcuno a fare project management, oppure qualcuno sul prodotto. Sulla carta, il problema è risolto. Nella pratica, no.",[25,1335,1336],{},"Le riunioni si fanno, i report girano, i task sono tracciati. Ma le decisioni continuano a passare dalla stessa persona di prima, perché chi è entrato non ha mandato reale: gestisce la superficie, non la sostanza.",[25,1338,1339],{},"Risultato:",[1309,1341,1342,1345,1348],{},[1312,1343,1344],{},"la persona centrale continua a decidere tutto",[1312,1346,1347],{},"in più deve aggiornare qualcun altro",[1312,1349,1350],{},"chi è entrato capisce di non contare davvero e si adatta o se ne va",[25,1352,1353],{},"È peggio di prima. Hai aggiunto overhead senza togliere il collo di bottiglia.",[43,1355,1357],{"id":1356},"delegare-davvero-è-scomodo","Delegare davvero è scomodo",[25,1359,1360],{},"Uscire da questa situazione è difficile per un motivo semplice: richiede fare cose contro-intuitive.",[25,1362,1363],{},"La prima è smettere di delegare quello che pesa di più e iniziare da quello che è più visibile. Molti partono dal codice, ed è un errore: il codice è ciò che ti tiene agganciato alla realtà. Le prime cose da lasciare sono le funzioni di coordinamento: gestione progetto, comunicazione, parte operativa del prodotto.",[25,1365,1366],{},"La seconda è accettare che chi prende in carico una funzione la farà diversamente. È qui che la maggior parte delle deleghe fallisce: se continui a correggere ogni decisione, non hai delegato, hai solo creato un passaggio in più. La delega inizia quando qualcuno prende una decisione che tu non avresti preso — ma è comunque sensata — e tu la lasci passare.",[43,1368,1370],{"id":1369},"il-punto-vero-cosa-tieni-e-cosa-molli","Il punto vero: cosa tieni e cosa molli",[25,1372,1373],{},"Non devi distribuire tutto. Devi scegliere cosa tenere. Per chi ha costruito un prodotto tecnico, la cosa più difficile da delegare è quasi sempre la guida tecnica sul core. È normale.",[25,1375,1376],{},"Tienila.",[25,1378,1379],{},"Ma tutto il resto — progetto, coordinamento, parte di prodotto — deve uscire. Altrimenti non stai proteggendo il sistema: stai solo rallentando il punto in cui smetterà di reggere.",[43,1381,887],{"id":886},[25,1383,1384,1385],{},"C’è un modo semplice per capire se hai davvero risolto il problema: per una settimana, sparisci. Non completamente — non è quello il punto. La domanda è: ",[29,1386,1387],{},"quali decisioni verrebbero rimandate al tuo ritorno?",[25,1389,1390,1391,1393],{},"Se la risposta è “quasi tutte”, sei esattamente dove eri prima. Se sono poche, stai migliorando. Se tutto va avanti tranne quello che hai deciso consapevolmente di tenere, allora l’organizzazione sta funzionando. È il ",[146,1392,585],{"href":584}," applicato alle decisioni, non solo al codice.",[43,1395,1397],{"id":1396},"il-punto-scomodo","Il punto scomodo",[25,1399,1400],{},"Se stai guidando un’azienda e hai una persona che copre tre o quattro ruoli, non sei fortunato. Sei esposto.",[25,1402,1403],{},"Finché quella persona regge, sembra tutto sotto controllo. Poi succede qualcosa di normale — ferie, stanchezza, cambio lavoro — e lì scopri che non avevi costruito un sistema: avevi costruito una dipendenza.",[25,1405,1406],{},"Il costo per sistemarlo è reale: assunzioni, affiancamento, un periodo in cui le cose rallentano. Il costo di non farlo arriva tutto insieme, e quando arriva non hai margine per gestirlo.",{"title":212,"searchDepth":213,"depth":213,"links":1408},[1409,1410,1411,1412,1413,1414,1415],{"id":1280,"depth":213,"text":1281},{"id":1296,"depth":213,"text":1297},{"id":1329,"depth":213,"text":1330},{"id":1356,"depth":213,"text":1357},{"id":1369,"depth":213,"text":1370},{"id":886,"depth":213,"text":887},{"id":1396,"depth":213,"text":1397},"2026-04-23","Se una persona sola tiene insieme tecnica, progetto e prodotto, l'organizzazione accumula un rischio che non si vede finché non esplode.","/images/blog/troppi-ruoli-una-persona-rischio.jpg",{},"/blog/2026-04-23-troppi-ruoli-una-persona-rischio",{"title":1266,"description":1417},"Troppi ruoli su una persona sola: il rischio nascosto","troppi-ruoli-una-persona-rischio","blog/2026-04-23-troppi-ruoli-una-persona-rischio",[669,670,1036,674,1426,1037,1427],"burnout","ruoli","CmlSLXqSh8HZW2B1aHBu1T9turx2H7asgaUU47sY-Vs",{"id":1430,"title":1431,"body":1432,"category":13,"date":1616,"description":1617,"extension":225,"image":1618,"meta":1619,"navigation":3,"path":1620,"published":3,"seo":1621,"seoTitle":1622,"slug":1623,"stem":1624,"tags":1625,"updated":240,"__hash__":1629},"blog/blog/2026-04-21-outsourcing-software-low-cost.md","Outsourcing software in India: perché finisce quasi sempre male",{"type":22,"value":1433,"toc":1605},[1434,1439,1442,1448,1451,1455,1462,1469,1473,1476,1479,1483,1486,1489,1495,1499,1502,1508,1518,1521,1525,1528,1531,1539,1543,1546,1550,1553,1559,1562,1565,1579,1583,1590,1594,1597,1602],[25,1435,1436],{},[29,1437,1438],{},"\"Abbiamo trovato un team in India che fa lo stesso lavoro a un terzo del costo.\"",[25,1440,1441],{},"L'outsourcing software low-cost — con l'India in testa, ma non solo — è una tentazione ricorrente: negli ultimi vent'anni, questa frase ha dato il via a centinaia di progetti. Molti sono partiti con entusiasmo. Molti, dopo un anno, si sono ritrovati con codice che \"funziona\" ma che nessuno riesce più a toccare senza rompere qualcosa.",[25,1443,1444,1445,116],{},"È un problema di ",[29,1446,1447],{},"modello organizzativo",[25,1449,1450],{},"Il modello delle software farm low-cost è costruito per produrre tanto codice, in poco tempo, al costo più basso possibile. Funziona bene quando il problema è scrivere task. Funziona molto meno quando il problema è rappresentare fedelmente il tuo business, far evolvere il software nel tempo e mantenerlo sano per anni.",[43,1452,1454],{"id":1453},"come-funziona-davvero-il-modello","Come funziona davvero il modello",[25,1456,1457,1458,1461],{},"Lo schema è quasi sempre lo stesso. L'azienda vuole ridurre i costi di sviluppo, si affida a una software farm con molti sviluppatori, la comunicazione passa attraverso uno o due project manager, il team tecnico è numeroso, junior e intercambiabile, e l'incentivo principale diventa ",[29,1459,1460],{},"chiudere ticket velocemente",", non capire il problema a fondo.",[25,1463,1464,1465,1468],{},"Questo modello ha senso industriale. È pensato per scalare. Ma ha un effetto collaterale enorme: il codice prodotto è ",[29,1466,1467],{},"scollegato dal contesto reale del tuo business",". E quando il codice è scollegato dal contesto, diventa fragile.",[43,1470,1472],{"id":1471},"il-vero-ostacolo-è-la-comunicazione","Il vero ostacolo è la comunicazione",[25,1474,1475],{},"Quando lavori con un team a migliaia di chilometri di distanza, con poche ore di sovrapposizione e una comunicazione mediata da documenti e task, succede una cosa prevedibile: le sfumature si perdono. Le conversazioni veloci diventano thread di email, i chiarimenti immediati diventano messaggi che ricevono risposta il giorno dopo, i requisiti vengono interpretati alla lettera e non nel loro intento. Nessuna malafede: è la conseguenza naturale del contesto.",[25,1477,1478],{},"Nel software, però, un requisito frainteso non produce una piccola differenza. Produce un comportamento completamente diverso da quello che ti aspettavi.",[43,1480,1482],{"id":1481},"il-fuso-orario-impedisce-la-collaborazione-vera","Il fuso orario impedisce la collaborazione vera",[25,1484,1485],{},"Quando il tuo team lavora mentre tu dormi, e tu lavori mentre loro dormono, la collaborazione diventa asincrona forzata.",[25,1487,1488],{},"Scompaiono le sessioni di analisi fatte bene, le discussioni architetturali spontanee e i chiarimenti rapidi sulle decisioni ambigue. Resta uno scambio di documenti e ticket. Il software, però, nasce bene dal confronto continuo, non da una catena di passaggi intermedi.",[25,1490,1491,1492,116],{},"Questo non rallenta solo il progetto. Peggio: ",[29,1493,1494],{},"impedisce al team di capire davvero cosa sta costruendo",[43,1496,1498],{"id":1497},"il-vero-problema-nessuno-possiede-il-codice","Il vero problema: nessuno possiede il codice",[25,1500,1501],{},"Nelle software farm low-cost, il turnover è spesso alto. Le persone cambiano progetto, cliente, azienda. Dopo sei mesi, chi ha scritto quel modulo potrebbe non esserci più. Dopo un anno, può capitare che nessuno del team originale sia ancora sul progetto.",[25,1503,1504,1505,1507],{},"Il codice resta. La conoscenza no. È il problema del ",[146,1506,585],{"href":584}," portato all'estremo.",[25,1509,1510,1511,1517],{},"È una versione amplificata del problema descritto in ",[146,1512,1514],{"href":1513},"/blog/aggiungere-sviluppatori-progetto",[971,1515,1516],{},"The Mythical Man-Month",": aggiungere persone non crea comprensione, crea frammentazione.",[25,1519,1520],{},"Quando quel software passa in mano a un nuovo team — interno o esterno — sembra scritto da qualcuno che non conosceva il tuo business. Perché, di fatto, è così.",[43,1522,1524],{"id":1523},"perché-allinizio-sembra-funzionare","Perché all'inizio sembra funzionare",[25,1526,1527],{},"Nei primi mesi tutto fila liscio: le feature arrivano, i ticket si chiudono, il costo è contenuto. Sembra una scelta brillante.",[25,1529,1530],{},"Il problema emerge dopo, quando devi fare modifiche non previste, il business cambia oppure serve aggiungere una logica nuova che interagisce con quelle esistenti. È lì che scopri che il codice è una somma di task chiusi, non un sistema pensato per evolvere. E ogni modifica diventa un rischio.",[25,1532,1533,1534],{},"È il momento in cui inizi a dire:\n",[146,1535,1536],{"href":1092},[29,1537,1538],{},"\"Ogni volta che tocchiamo qualcosa, si rompe qualcos'altro.\"",[43,1540,1542],{"id":1541},"un-problema-di-incentivi-non-di-geografia","Un problema di incentivi, non di geografia",[25,1544,1545],{},"Il modello non è esclusivo dell'India: esiste ovunque il lavoro venga organizzato con tanti sviluppatori intercambiabili, poca ownership, comunicazione filtrata e focus sulla velocità più che sulla comprensione — dall'Europa dell'est al Sud-est asiatico. Il risultato tende a essere sempre lo stesso: codice che fa quello che c'è scritto nel ticket, ma non quello che serve davvero al business.",[43,1547,1549],{"id":1548},"perché-oggi-questo-modello-ha-ancora-meno-senso","Perché oggi questo modello ha ancora meno senso",[25,1551,1552],{},"Per vent'anni, il vantaggio competitivo delle software farm low-cost era semplice:",[1554,1555,1556],"blockquote",{},[25,1557,1558],{},"tanto codice a basso prezzo.",[25,1560,1561],{},"Anche accettando inefficienze e fragilità architetturale, il conto tornava. Perché il collo di bottiglia era sempre lo stesso: servivano tante ore uomo per scrivere codice.",[25,1563,1564],{},"Oggi questo presupposto sta saltando: strumenti come Claude Code o Codex producono codice in minuti, senza fuso orario, senza incomprensioni linguistiche e a un costo marginale quasi nullo.",[25,1566,1567,1568,1571,1572,1578],{},"Il valore si è spostato: da ",[29,1569,1570],{},"chi scrive il codice al prezzo più basso"," a ",[146,1573,1575],{"href":1574},"/blog/ai-impatto-business-software",[29,1576,1577],{},"chi sa decidere cosa scrivere, come strutturarlo e come farlo evolvere",". Ed è esattamente la parte che il modello low-cost non copre.",[43,1580,1582],{"id":1581},"il-paradosso-umano","Il paradosso umano",[25,1584,1585,1586,1589],{},"C'è un paradosso che vale la pena riconoscere. Per anni questo modello ha funzionato perché il mercato chiedeva quantità di codice, e moltissimi sviluppatori hanno lavorato esattamente per soddisfare quella richiesta. Oggi la richiesta è cambiata — da \"scrivi questo ticket\" a \"capisci questo sistema\" — e la cosa ",[29,1587,1588],{},"per cui vengono pagati"," sta perdendo valore molto velocemente.",[43,1591,1593],{"id":1592},"la-lezione-per-chi-commissiona-software","La lezione per chi commissiona software",[25,1595,1596],{},"Alla base di questo modello c'è un'idea pericolosa:",[1554,1598,1599],{},[25,1600,1601],{},"che il software sia un problema di manodopera.",[25,1603,1604],{},"Finché sembrava vera, l'outsourcing low-cost in India aveva senso economico. Oggi si vede chiaramente che il valore non era lì. Il software riguarda comprensione del business, decisioni architetturali, comunicazione continua e responsabilità sul sistema nel tempo: cose che non si possono spacchettare in ticket da mandare dall'altra parte del mondo, e oggi non si possono nemmeno delegare a un'AI.",{"title":212,"searchDepth":213,"depth":213,"links":1606},[1607,1608,1609,1610,1611,1612,1613,1614,1615],{"id":1453,"depth":213,"text":1454},{"id":1471,"depth":213,"text":1472},{"id":1481,"depth":213,"text":1482},{"id":1497,"depth":213,"text":1498},{"id":1523,"depth":213,"text":1524},{"id":1541,"depth":213,"text":1542},{"id":1548,"depth":213,"text":1549},{"id":1581,"depth":213,"text":1582},{"id":1592,"depth":213,"text":1593},"2026-04-21","Outsourcing software in India a un terzo del costo: il modello produce codice scollegato dal business, con incentivi sbagliati. E con l'AI ha ancora meno senso.","/images/blog/outsourcing-software-low-cost.jpg",{},"/blog/2026-04-21-outsourcing-software-low-cost",{"title":1431,"description":1617},"Outsourcing software India: rischi e costi nascosti","outsourcing-software-low-cost","blog/2026-04-21-outsourcing-software-low-cost",[1626,386,1627,1628,234],"outsourcing","rischi-software","qualita","AEWykOP8KGCSfFP_ZVMsctJkUIzP64BE-2BzD5c4QtU",{"id":1631,"title":1632,"body":1633,"category":13,"date":1775,"description":1776,"extension":225,"image":1777,"meta":1778,"navigation":3,"path":1779,"published":3,"seo":1780,"seoTitle":1781,"slug":1782,"stem":1783,"tags":1784,"updated":240,"__hash__":1790},"blog/blog/2026-04-02-budget-software-go-to-market.md","Hai speso tutto il budget nel prodotto. E nessuno sa che esiste",{"type":22,"value":1634,"toc":1761},[1635,1641,1644,1648,1651,1654,1657,1661,1667,1670,1678,1682,1685,1690,1696,1704,1708,1715,1719,1726,1730,1733,1737,1740,1744,1747,1750,1754],[25,1636,1637,1640],{},[29,1638,1639],{},"Il prodotto è pronto. Funziona, è curato, è stato testato. Mesi di sviluppo, budget importante investito."," Poi arriva il momento del lancio e ci si rende conto che non esiste un vero piano per farlo conoscere. Concentrare tutto il budget nello sviluppo software e trascurare il go-to-market, cioè tutto ciò che serve per portare il prodotto davanti alle persone giuste, è un errore comune: il risultato è un prodotto valido che non genera utenti, perché nessuno sa che esiste.",[25,1642,1643],{},"È un errore molto comune per chi ha un background tecnico: concentrare quasi tutto il budget sullo sviluppo e considerare il go-to-market come qualcosa da affrontare “dopo”. Il problema è che, quando arriva il “dopo”, spesso le risorse sono finite.",[43,1645,1647],{"id":1646},"il-prodotto-non-si-vende-da-solo","Il prodotto non si vende da solo",[25,1649,1650],{},"C’è un’idea diffusa nella cultura tech: se il prodotto è buono, prima o poi i clienti arrivano. Nella pratica succede raramente.",[25,1652,1653],{},"Un prodotto compete per attenzione in un mercato saturo. Le persone non stanno aspettando che tu lanci qualcosa: stanno già usando alternative, magari peggiori, ma che conoscono. Farsi trovare, spiegare il valore, portare traffico qualificato richiede tempo, competenze e budget.",[25,1655,1656],{},"Se tutto il budget è stato assorbito dallo sviluppo, questa fase diventa improvvisata. Ed è qui che molti progetti si fermano.",[43,1658,1660],{"id":1659},"la-regola-controintuitiva","La regola controintuitiva",[25,1662,1663,1664,116],{},"Se non hai ancora clienti, ",[29,1665,1666],{},"il budget per far conoscere il prodotto è strategicamente più importante del budget per aggiungere nuove feature",[25,1668,1669],{},"Un prodotto con poche funzionalità ma con un piano di acquisizione utenti può iniziare a generare feedback e ricavi. Quei ricavi finanziano l’evoluzione del prodotto.",[25,1671,1672,1673,1677],{},"Un prodotto ricco di funzionalità ma senza utenti genera solo ",[146,1674,1676],{"href":1675},"/blog/costi-manutenzione-software","costi di manutenzione"," e nessun apprendimento dal mercato.",[43,1679,1681],{"id":1680},"come-ragionare-sulla-divisione-del-budget","Come ragionare sulla divisione del budget",[25,1683,1684],{},"Non esiste una formula universale, ma questo schema funziona in molti contesti digitali.",[1686,1687,1689],"h3",{"id":1688},"quando-non-hai-ancora-clienti","Quando non hai ancora clienti",[25,1691,1692,1693,116],{},"Indicativamente: ",[29,1694,1695],{},"40% prodotto, 60% go-to-market e validazione",[25,1697,1698,1699,1703],{},"In questa fase l’obiettivo è dimostrare che qualcuno è disposto a usare (o pagare) ciò che stai costruendo, anche con poche feature. Il prodotto deve essere ",[146,1700,1702],{"href":1701},"/blog/quando-lanciare-un-prodotto","piccolo ma solido",". Il resto del budget serve a raggiungere le persone giuste e capire se il problema che vuoi risolvere è reale.",[1686,1705,1707],{"id":1706},"quando-hai-già-clienti-interessati","Quando hai già clienti interessati",[25,1709,1710,1711,1714],{},"Puoi spostarti verso ",[29,1712,1713],{},"60% prodotto, 40% go-to-market",". Hai già un segnale di domanda, quindi ha senso investire di più nel soddisfarla, continuando però a mantenere attenzione su comunicazione e acquisizione.",[1686,1716,1718],{"id":1717},"quando-hai-già-traction","Quando hai già traction",[25,1720,1721,1722,1725],{},"Un punto di partenza ragionevole è ",[29,1723,1724],{},"50/50",", poi la distribuzione si adatta in base ai dati. Qui traction significa che il prodotto ha già mostrato segnali concreti di risposta dal mercato: utenti, richieste, vendite, interesse reale. Se il traffico è poco ma chi arriva converte, conviene investire di più nel marketing; se il traffico è alto ma pochi convertono, significa che il lavoro da fare è soprattutto sul prodotto.",[43,1727,1729],{"id":1728},"il-segnale-che-stai-sbagliando-allocazione","Il segnale che stai sbagliando allocazione",[25,1731,1732],{},"Ci sono alcuni segnali ricorrenti: hai molte feature ma pochi utenti attivi, nessuno nel team si occupa in modo strutturato di acquisizione e comunicazione, il lancio è stato un post sui social e poco altro, oppure stai pensando di aggiungere nuove funzionalità prima ancora di aver capito perché le persone non usano quelle che già ci sono. In questi casi il problema riguarda quasi sempre visibilità e comprensione del mercato, molto prima di una feature mancante.",[43,1734,1736],{"id":1735},"validare-prima-di-costruire","Validare prima di costruire",[25,1738,1739],{},"Spesso si può fare molto prima ancora di scrivere codice. Una landing page chiara con una proposta di valore e un piccolo budget in advertising permette già di capire se il messaggio genera interesse. Una lista d’attesa raccoglie email e dà un primo segnale di domanda. Una pre-vendita o anche solo una demo ben condotta ti dice qualcosa di ancora più importante: se qualcuno è disposto a pagare o a impegnarsi prima che il prodotto sia completo. Tutte queste attività costano molto meno dello sviluppo e riducono il rischio di costruire qualcosa che il mercato non sta cercando.",[43,1741,1743],{"id":1742},"il-bias-di-chi-viene-dal-tech","Il bias di chi viene dal tech",[25,1745,1746],{},"Per chi viene dallo sviluppo, investire nel prodotto è naturale: è la zona di comfort. Ogni nuova feature è un risultato tangibile. Il marketing invece è incerto, meno misurabile nel breve periodo e quindi spesso rimandato.",[25,1748,1749],{},"Ma una feature senza utenti non genera valore. Un esperimento di acquisizione, anche se non funziona, genera dati utili per decidere meglio cosa costruire.",[43,1751,1753],{"id":1752},"una-scelta-strategica-non-operativa","Una scelta strategica, non operativa",[25,1755,1756,1757,1760],{},"Ogni euro speso in sviluppo è un euro non speso in acquisizione: è a tutti gli effetti una decisione di business. ",[146,1758,1759],{"href":1574},"L’AI sta riducendo il costo di sviluppo",", e questo rende ancora più evidente un punto: costruire è sempre meno il collo di bottiglia, raggiungere le persone giuste lo è sempre di più. Un prodotto valido che nessuno conosce resta un progetto ben fatto, ma isolato dal mercato.",{"title":212,"searchDepth":213,"depth":213,"links":1762},[1763,1764,1765,1771,1772,1773,1774],{"id":1646,"depth":213,"text":1647},{"id":1659,"depth":213,"text":1660},{"id":1680,"depth":213,"text":1681,"children":1766},[1767,1769,1770],{"id":1688,"depth":1768,"text":1689},3,{"id":1706,"depth":1768,"text":1707},{"id":1717,"depth":1768,"text":1718},{"id":1728,"depth":213,"text":1729},{"id":1735,"depth":213,"text":1736},{"id":1742,"depth":213,"text":1743},{"id":1752,"depth":213,"text":1753},"2026-04-02","Un prodotto ottimo che nessuno conosce resta isolato dal mercato. Come distribuire il budget tra sviluppo e go-to-market a seconda della fase del prodotto.","/images/blog/budget-software-go-to-market.jpg",{},"/blog/2026-04-02-budget-software-go-to-market",{"title":1632,"description":1776},"Budget sviluppo software vs go-to-market: come distribuirlo","budget-software-go-to-market","blog/2026-04-02-budget-software-go-to-market",[1785,1786,1787,1788,1789],"budget-startup","go-to-market","lancio-prodotto","validazione-mercato","pianificazione","JJkXzGwl1y64IBMDLH3xXPjQsVlNUjmv1K6Pk_KeO9U",{"id":1792,"title":1793,"body":1794,"category":13,"date":1941,"description":1942,"extension":225,"image":1943,"meta":1944,"navigation":3,"path":1945,"published":3,"seo":1946,"seoTitle":1947,"slug":1948,"stem":1949,"tags":1950,"updated":240,"__hash__":1954},"blog/blog/2026-03-31-quando-lanciare-un-prodotto.md","Quando lanciare un prodotto: meglio piccolo e funzionante che perfetto",{"type":22,"value":1795,"toc":1931},[1796,1802,1806,1816,1822,1829,1832,1836,1839,1842,1846,1849,1852,1855,1858,1862,1870,1874,1884,1891,1898,1902,1905,1909,1912,1918,1922,1925,1928],[25,1797,1798,1801],{},[29,1799,1800],{},"Capita spesso di vedere team che costruiscono per mesi un prodotto \"completo\", aggiungendo funzionalità una dopo l'altra, prima di mostrarlo a utenti reali."," Lanciare un MVP, cioè una prima versione piccola ma già usabile, prima di avere tutto pronto sembra rischioso, ma è l'opposto: il vero rischio è scoprire troppo tardi che il mercato voleva altro. Poi arriva il lancio e la realtà è brutale: alcune cose vengono ignorate, e le parti più usate non sono quelle su cui era stato investito di più. Il problema è costruire troppo a lungo senza verificare se il problema è davvero quello giusto, per le persone giuste.",[43,1803,1805],{"id":1804},"la-perfezione-è-il-nemico-del-lancio","La perfezione è il nemico del lancio",[25,1807,1808,1809,1812,1813,116],{},"C’è una differenza fondamentale tra un prodotto ",[29,1810,1811],{},"incompleto"," e un prodotto ",[29,1814,1815],{},"difettoso",[25,1817,1818,1819,116],{},"Un prodotto difettoso è lento, instabile, perde dati, ha bug nei flussi principali. Questo non va bene, indipendentemente dalla fase. E infatti ",[146,1820,1821],{"href":288},"un MVP non è una scusa per rilasciare software rotto",[25,1823,1824,1825,1828],{},"Un prodotto incompleto fa poche cose, ma le fa ",[29,1826,1827],{},"bene",". Mancano feature, manca personalizzazione, manca “comodità”. Ma il nucleo del valore è usabile, affidabile e comprensibile.",[25,1830,1831],{},"Molti team confondono le due cose: temono di essere giudicati per ciò che manca e finiscono per rimandare il lancio. Il rischio vero però è un altro: scoprire troppo tardi di aver costruito qualcosa che non corrisponde a un bisogno reale.",[43,1833,1835],{"id":1834},"il-feedback-è-utile-solo-se-arriva-presto","Il feedback è utile solo se arriva presto",[25,1837,1838],{},"Interviste, benchmark e analisi competitor aiutano. Ma non sostituiscono ciò che succede quando un utente reale prova il prodotto nel suo contesto.",[25,1840,1841],{},"Quando lanci presto, purché il nucleo abbia qualità, scopri cose che raramente emergono in fase di pianificazione. Ti accorgi che la funzionalità considerata “secondaria” è quella che genera davvero valore, che un passaggio del flusso è confuso e blocca la conversione, che l’utente descrive il problema in modo diverso da come lo avevi modellato e che la priorità reale non era aggiungere feature ma semplificare il percorso. Sono scoperte che cambiano la roadmap, e più arrivano presto meno lavoro rischi di buttare via.",[43,1843,1845],{"id":1844},"il-ciclo-lancia-misura-impara-migliora","Il ciclo: lancia, misura, impara, migliora",[25,1847,1848],{},"È un modo pratico di ridurre il rischio e di sostituire le ipotesi con segnali reali. La prima mossa è lanciare la versione minima che porta valore: “minima” non vuol dire “tirata via”, vuol dire identificare il nucleo del valore. Se stai costruendo un tool di prenotazione, il nucleo è che un utente possa prenotare e tu riceva la prenotazione in modo affidabile; reportistica avanzata, automazioni e personalizzazioni possono arrivare dopo.",[25,1850,1851],{},"Subito dopo devi mettere utenti veri davanti al prodotto. Meglio pochi utenti reali e coinvolti, che pagano o avrebbero un motivo concreto per usarlo, che cento curiosi. Il feedback di chi non ha nulla in gioco tende a essere rumoroso.",[25,1853,1854],{},"Poi conviene misurare cosa fanno, non solo cosa dicono. Le richieste del tipo “ci serve la feature X” spesso sono una soluzione proposta dall’utente, non il problema. Le metriche comportamentali dicono molto di più: dove si blocca il flusso, dove abbandonano, quali schermate usano davvero, quali passaggi richiedono supporto.",[25,1856,1857],{},"Infine si migliora in base a evidenze. Ogni iterazione dovrebbe rispondere a qualcosa che hai osservato, che sia un dato o un feedback ripetuto, e non a un’ipotesi non verificata o a un confronto estetico con il competitor.",[43,1859,1861],{"id":1860},"il-costo-del-costruiamo-tutto-e-poi-vediamo","Il costo del “costruiamo tutto e poi vediamo”",[25,1863,1864,1865,1869],{},"Un prodotto costruito per mesi senza feedback tende a produrre due costi tipici. Il primo è l’accumulo di feature inutilizzate, che però vanno mantenute, testate, supportate e spiegate: un classico caso di ",[146,1866,1868],{"href":1867},"/blog/budget-software-go-to-market","budget speso tutto nel prodotto"," senza vera validazione. Il secondo è un’architettura, insieme a una UX, modellate su ipotesi che diventano difficili da cambiare quando finalmente arriva la realtà. Il risultato è spesso una roadmap già pesante al day one, con molte parti in movimento, troppe dipendenze e poca capacità di adattamento.",[43,1871,1873],{"id":1872},"ma-il-mio-settore-vuole-un-prodotto-completo","“Ma il mio settore vuole un prodotto completo”",[25,1875,1876,1877,1880,1881,1883],{},"È un’obiezione legittima. La risposta è che dipende da ",[971,1878,1879],{},"come"," definisci “completo” e da ",[971,1882,1879],{}," gestisci le aspettative.",[25,1885,1886,1887,1890],{},"Puoi lanciare una ",[29,1888,1889],{},"versione 1"," che fa poche cose essenziali molto bene, e comunicare in modo trasparente cosa è incluso e cosa arriverà dopo. La trasparenza, in molti contesti B2B, aumenta la fiducia perché segnala che stai costruendo con metodo e ascolto, non “a intuito”.",[25,1892,1893,1894,1897],{},"Il punto è lanciare qualcosa di ",[29,1895,1896],{},"limitato ma affidabile",", con la qualità concentrata sui flussi principali.",[43,1899,1901],{"id":1900},"euristiche-pratiche-quando-sei-pronto-a-lanciare","Euristiche pratiche: quando sei pronto a lanciare",[25,1903,1904],{},"Se vuoi una regola operativa, guarda alcuni elementi minimi. Il flusso principale deve funzionare end-to-end, senza workaround e senza interventi manuali. Devi avere strumenti minimi di osservabilità, come error tracking, log e almeno una metrica di uso o attivazione. Devi sapere qual è la domanda a cui vuoi rispondere con il lancio, avere un canale di feedback e un modo ordinato per raccogliere richieste, e infine un piano semplice per iterare con una cadenza, delle priorità e qualcuno che decida. Se mancano questi punti, c’è ancora preparazione da fare.",[43,1906,1908],{"id":1907},"le-feature-che-non-sviluppi-sono-un-vantaggio","Le feature che non sviluppi sono un vantaggio",[25,1910,1911],{},"Ogni feature che non costruisci basandoti su ipotesi è codice che non devi mantenere e che non può rompersi. È complessità evitata.",[25,1913,1914,1917],{},[146,1915,1916],{"href":312},"Le stime sono spesso imprecise"," proprio perché il futuro cambia. Il ciclo iterativo non elimina l’incertezza: la rende gestibile, trasformando una scommessa grande in una serie di scommesse piccole.",[43,1919,1921],{"id":1920},"il-prodotto-si-definisce-fuori-dal-tuo-ufficio","Il prodotto si definisce fuori dal tuo ufficio",[25,1923,1924],{},"È normale avere un’idea precisa di come “dovrebbe” essere, ma finché non lo metti nelle mani di utenti reali stai indovinando.",[25,1926,1927],{},"Lancia piccolo. Lancia bene. Ascolta. Migliora. Ripeti.",[25,1929,1930],{},"È meno “epico” di un grande lancio dopo mesi di lavoro nascosto, ma riduce drasticamente il rischio di costruire la cosa sbagliata e ti evita di scoprire troppo tardi che stai andando nella direzione sbagliata.",{"title":212,"searchDepth":213,"depth":213,"links":1932},[1933,1934,1935,1936,1937,1938,1939,1940],{"id":1804,"depth":213,"text":1805},{"id":1834,"depth":213,"text":1835},{"id":1844,"depth":213,"text":1845},{"id":1860,"depth":213,"text":1861},{"id":1872,"depth":213,"text":1873},{"id":1900,"depth":213,"text":1901},{"id":1907,"depth":213,"text":1908},{"id":1920,"depth":213,"text":1921},"2026-03-31","Aspettare che il prodotto sia completo aumenta il rischio di costruire la cosa sbagliata. Come lanciare piccolo ma solido, raccogliere feedback e iterare.","/images/blog/quando-lanciare-un-prodotto.jpg",{},"/blog/2026-03-31-quando-lanciare-un-prodotto",{"title":1793,"description":1942},"Quando lanciare un prodotto: perché il lancio presto riduce il rischio","quando-lanciare-un-prodotto","blog/2026-03-31-quando-lanciare-un-prodotto",[1787,1951,1788,1952,1953],"mvp","feedback-utenti","iterazioni","5BVlCMJYeJqQlQ3Rhju5O6ZeKPdwaZWVv5Q3BRB2km4",{"id":1956,"title":1957,"body":1958,"category":13,"date":2069,"description":2070,"extension":225,"image":2071,"meta":2072,"navigation":3,"path":2073,"published":3,"seo":2074,"seoTitle":2075,"slug":2076,"stem":2077,"tags":2078,"updated":240,"__hash__":2083},"blog/blog/2026-03-26-come-assumere-sviluppatori-bravi.md","Come assumere sviluppatori bravi: perché non rispondono al tuo annuncio",{"type":22,"value":1959,"toc":2056},[1960,1966,1970,1973,1976,1980,1984,1992,1996,2003,2007,2010,2014,2017,2021,2024,2028,2031,2039,2043,2046,2049,2053],[25,1961,1962,1965],{},[29,1963,1964],{},"\"Non si trovano sviluppatori.\""," È una frase che si sente spesso. In realtà assumere sviluppatori è possibile: quelli bravi esistono, lavorano e cambiano lavoro. Molto semplicemente scelgono di andare altrove, e il motivo sta quasi sempre nella tua offerta più che nel mercato.",[43,1967,1969],{"id":1968},"il-mercato-è-competitivo-non-impossibile","Il mercato è competitivo, non impossibile",[25,1971,1972],{},"È vero: la domanda di sviluppatori supera l’offerta da anni. Ma competitivo non significa impossibile. Significa che non puoi pubblicare un annuncio generico e aspettare che arrivino curriculum qualificati.",[25,1974,1975],{},"Le aziende che assumono bene non hanno segreti particolari. Hanno offerte chiare, processi sensati e condizioni di lavoro che uno sviluppatore competente considera ragionevoli. Se una posizione resta aperta per mesi, è un segnale che qualcosa nell’offerta non funziona.",[43,1977,1979],{"id":1978},"cosa-tende-ad-allontanare-gli-sviluppatori","Cosa tende ad allontanare gli sviluppatori",[1686,1981,1983],{"id":1982},"stack-tecnologico-trascurato","Stack tecnologico trascurato",[25,1985,1986,1987,1991],{},"Uno sviluppatore competente vuole lavorare con strumenti mantenuti e con un futuro. Non serve inseguire ogni moda — farlo porta ad altri problemi, come nel caso del ",[146,1988,1990],{"href":1989},"/blog/quale-framework-javascript-scegliere","resume-driven development"," — ma c’è una differenza evidente tra uno stack stabile e moderno e uno stack lasciato indietro negli anni. Uno stack trascurato comunica che la tecnologia non è una priorità, e questo, per uno sviluppatore, è un segnale molto forte.",[1686,1993,1995],{"id":1994},"nessuna-flessibilità-presenza-obbligatoria","Nessuna flessibilità, presenza obbligatoria",[25,1997,1998,1999,2002],{},"Chiedere presenza fissa in ufficio cinque giorni su cinque è oggi un filtro che esclude molti candidati validi, per una ragione concreta: il lavoro di sviluppo richiede concentrazione profonda, e l’ufficio open space è spesso l’opposto. Ogni interruzione ha un costo cognitivo elevato, come spiegato parlando di ",[146,2000,2001],{"href":1303},"quanto costano le interruzioni",", e la richiesta di lavorare in remoto, almeno in parte, è spesso una richiesta di poter lavorare meglio.",[1686,2004,2006],{"id":2005},"processi-di-selezione-poco-realistici","Processi di selezione poco realistici",[25,2008,2009],{},"Cinque round di colloqui, test tecnici lunghi, esercizi su problemi lontani dal lavoro reale: questo tipo di processo tende a selezionare chi ha più tempo libero, non chi è più competente. Uno sviluppatore senior con un lavoro stabile spesso non partecipa a questi processi, e l’azienda non si accorge nemmeno di aver perso candidati di valore.",[1686,2011,2013],{"id":2012},"nessun-percorso-di-crescita","Nessun percorso di crescita",[25,2015,2016],{},"“Qui facciamo tutti un po’ di tutto” può sembrare positivo, ma spesso significa mancanza di specializzazione, mentoring e prospettive di crescita. Gli sviluppatori più bravi cercano contesti in cui possano migliorare nel tempo, non restare fermi allo stesso livello per anni.",[1686,2018,2020],{"id":2019},"cultura-poco-sostenibile","Cultura poco sostenibile",[25,2022,2023],{},"Frasi come “siamo una famiglia” o aspettative implicite di disponibilità continua vengono percepite come segnali di confini poco chiari tra lavoro e vita privata. Per molti sviluppatori questo è un motivo sufficiente per non candidarsi.",[43,2025,2027],{"id":2026},"cosa-attrae-gli-sviluppatori-competenti","Cosa attrae gli sviluppatori competenti",[25,2029,2030],{},"Spesso non è qualcosa di costoso. Gli sviluppatori bravi cercano problemi interessanti da risolvere, sistemi da progettare e lavori con un impatto concreto: se il tuo prodotto ha queste caratteristiche, vale la pena comunicarlo chiaramente. Cercano anche autonomia e tempo per lavorare bene, e un ambiente che protegge la concentrazione, limita le riunioni inutili e riduce le interruzioni è spesso più attrattivo di uno stipendio leggermente più alto.",[25,2032,2033,2034,2038],{},"Contano molto anche le pratiche tecniche. Non serve lo stack più trendy; serve uno stack mantenuto, con versionamento serio, code review, cioè revisione del codice da parte di altri sviluppatori, pipeline di deploy automatizzate e un minimo di ",[146,2035,2037],{"href":2036},"/blog/test-coverage-cosa-misura","test automatici",". Infine c’è la trasparenza: range di stipendio, stack tecnologico, modalità di lavoro e composizione del team. Quando queste informazioni mancano dall’annuncio, molti candidati preferiscono non perdere tempo.",[43,2040,2042],{"id":2041},"cambiamenti-pratici-che-non-costano-nulla","Cambiamenti pratici che non costano nulla",[25,2044,2045],{},"Il primo cambiamento utile è riscrivere l’annuncio, sostituendo le frasi generiche con informazioni concrete: tecnologie usate, modalità di lavoro, range retributivo, tipo di prodotto, dimensione del team. Subito dopo conviene semplificare il processo di selezione: due step sono spesso sufficienti, con un colloquio tecnico conversazionale e un confronto con il team. Se ci sono test, devono essere brevi, realistici e rispettosi del tempo del candidato.",[25,2047,2048],{},"Anche il modo in cui chiudi i colloqui conta. Un rifiuto tempestivo e cortese è sempre meglio del silenzio, soprattutto in un mondo come quello tech dove il passaparola è molto veloce. E naturalmente pesa la flessibilità reale: già due o tre giorni a settimana da remoto, orari flessibili e meno interruzioni cambiano radicalmente la percezione dell’azienda.",[43,2050,2052],{"id":2051},"va-oltre-il-budget","Va oltre il budget",[25,2054,2055],{},"Stipendi competitivi aiutano, ma non sono l’unico fattore. Molte aziende che faticano ad assumere non hanno un problema di soldi: hanno un problema di proposta complessiva — ambiente, processi e cultura del lavoro. Prima di concludere che “il mercato è vuoto”, può essere utile guardare la propria offerta con gli occhi di chi dovrebbe sceglierla.",{"title":212,"searchDepth":213,"depth":213,"links":2057},[2058,2059,2066,2067,2068],{"id":1968,"depth":213,"text":1969},{"id":1978,"depth":213,"text":1979,"children":2060},[2061,2062,2063,2064,2065],{"id":1982,"depth":1768,"text":1983},{"id":1994,"depth":1768,"text":1995},{"id":2005,"depth":1768,"text":2006},{"id":2012,"depth":1768,"text":2013},{"id":2019,"depth":1768,"text":2020},{"id":2026,"depth":213,"text":2027},{"id":2041,"depth":213,"text":2042},{"id":2051,"depth":213,"text":2052},"2026-03-26","Assumere sviluppatori bravi è possibile anche in un mercato competitivo. Il problema spesso è nell'offerta: stack, flessibilità, processo di selezione.","/images/blog/come-assumere-sviluppatori-bravi.jpg",{},"/blog/2026-03-26-come-assumere-sviluppatori-bravi",{"title":1957,"description":2070},"Come assumere sviluppatori: perché non trovi i candidati giusti","come-assumere-sviluppatori-bravi","blog/2026-03-26-come-assumere-sviluppatori-bravi",[2079,2080,2081,2082,673],"assumere-sviluppatori","hiring","attrarre-talenti","processi-selezione","RBH-OY2CSlIeDkDhEjNfvyGN4VweH3E0nrv8BSfRuIY",{"id":2085,"title":2086,"body":2087,"category":13,"date":2237,"description":2238,"extension":225,"image":2239,"meta":2240,"navigation":3,"path":2241,"published":3,"seo":2242,"seoTitle":2243,"slug":2244,"stem":2245,"tags":2246,"updated":240,"__hash__":2251},"blog/blog/2026-03-24-team-tecnico-business-due-lingue.md","Comunicazione tra team tecnico e business: come ridurre le incomprensioni",{"type":22,"value":2088,"toc":2218},[2089,2095,2098,2102,2105,2109,2112,2116,2119,2123,2126,2130,2136,2140,2143,2146,2150,2162,2166,2169,2173,2176,2180,2183,2187,2190,2194,2197,2201,2204,2208,2211,2215],[25,2090,2091,2094],{},[29,2092,2093],{},"\"Basta aggiungere un bottone.\""," Cinque parole che per chi le pronuncia significano una piccola modifica, e per chi deve realizzarla significano giorni di lavoro. La comunicazione tra team tecnico e business è una delle sfide più sottovalutate nello sviluppo software.",[25,2096,2097],{},"Questa scena si ripete continuamente. Il business chiede qualcosa che sembra semplice. Il team tecnico sa che non lo è. Ma tra i due c’è un muro fatto di modelli mentali diversi, che nessuno ha davvero interesse a rendere visibile. E il costo di quel muro si misura in sprint buttati, rework e frustrazione da entrambe le parti.",[43,2099,2101],{"id":2100},"le-incomprensioni-tipiche","Le incomprensioni tipiche",[25,2103,2104],{},"Ci sono frasi che generano sempre lo stesso cortocircuito.",[1686,2106,2108],{"id":2107},"è-una-cosa-semplice","“È una cosa semplice”",[25,2110,2111],{},"Per il business significa: il comportamento è chiaro. Per lo sviluppatore significa: non è chiaro cosa comporta a livello di sistema. Dietro a quel “bottone” ci sono validazioni, permessi, gestione errori, casi limite. Ma spiegare tutto questo richiede tempo, e spesso chi ascolta perde interesse.",[1686,2113,2115],{"id":2114},"è-urgente","“È urgente”",[25,2117,2118],{},"Quando tutto è urgente, le priorità perdono significato. Ogni urgenza sposta qualcos’altro, interrompe il lavoro in corso e genera context switch continui. Il risultato è che alla fine della giornata non si è concluso nulla, pur avendo lavorato tutto il giorno.",[1686,2120,2122],{"id":2121},"lo-facciamo-e-poi-miglioriamo","“Lo facciamo e poi miglioriamo”",[25,2124,2125],{},"Per il business è velocità. Per lo sviluppatore è l’inizio di un debito tecnico che probabilmente non verrà mai ripagato. Entrambi hanno una logica corretta, ma stanno parlando di due effetti diversi nel tempo.",[1686,2127,2129],{"id":2128},"quanto-ci-vuole","“Quanto ci vuole?”",[25,2131,2132,2133,116],{},"Il business vuole pianificare. Lo sviluppatore sa che ci sono troppe variabili sconosciute. Ma un numero viene comunque dato, diventa una promessa implicita, e quando non viene rispettato nasce sfiducia. È la dinamica tipica delle ",[146,2134,2135],{"href":312},"stime che non tornano",[43,2137,2139],{"id":2138},"perché-il-gap-esiste","Perché il gap esiste",[25,2141,2142],{},"Il gap nasce dai modelli mentali, più che dalle competenze. Chi lavora sul business pensa in termini di risultati, tempi e valore economico, e il software è un mezzo; chi sviluppa pensa in termini di sistemi, complessità e manutenibilità, e il software è il centro del lavoro. Entrambi gli approcci hanno senso, ma senza un ponte tra loro producono attrito costante.",[25,2144,2145],{},"In più, c’è un’asimmetria informativa profonda: il business non vede il costo tecnico delle decisioni e il team tecnico non vede il valore economico delle richieste. Le priorità finiscono così per diventare un confronto tra percezioni, non una decisione davvero informata.",[43,2147,2149],{"id":2148},"quanto-costa-davvero","Quanto costa davvero",[25,2151,2152,2153,2156,2157,2161],{},"Queste incomprensioni hanno effetti molto concreti. Si sprecano sprint interi su feature sviluppate a partire da requisiti capiti male, cresce uno ",[146,2154,2155],{"href":429},"scope creep"," silenzioso fatto di dettagli aggiunti a voce e mai pianificati, il rework continuo trasforma il ciclo “fai, mostra, rifai” nella normalità e, alla lunga, arrivano frustrazione e turnover. Le persone migliori si stancano di lavorare in un contesto dove il lavoro viene spesso rifatto, e ",[146,2158,2160],{"href":2159},"/blog/come-assumere-sviluppatori-bravi","trovarle è già un problema",". Una parte significativa del tempo di sviluppo viene assorbita non dalla complessità tecnica, ma dalle incomprensioni.",[43,2163,2165],{"id":2164},"come-costruire-un-linguaggio-comune","Come costruire un linguaggio comune",[25,2167,2168],{},"Non servono grandi teorie. Servono pratiche semplici e ripetute.",[1686,2170,2172],{"id":2171},"mostrare-invece-di-descrivere","Mostrare invece di descrivere",[25,2174,2175],{},"Un prototipo cliccabile chiarisce più di qualsiasi documento. Mostrare presto riduce drasticamente il rischio di fraintendimenti.",[1686,2177,2179],{"id":2178},"coinvolgere-uno-sviluppatore-nelle-riunioni-chiave","Coinvolgere uno sviluppatore nelle riunioni chiave",[25,2181,2182],{},"Quando il PM è l’unico ponte tra cliente e team tecnico, il messaggio si distorce. La presenza di uno sviluppatore senior nelle riunioni importanti evita settimane di lavoro sbagliato.",[1686,2184,2186],{"id":2185},"definire-un-vocabolario-condiviso","Definire un vocabolario condiviso",[25,2188,2189],{},"Termini come “deploy”, “staging”, “pronto”, “completo” devono avere un significato chiaro e condiviso. Molti malintesi nascono proprio da parole usate con significati diversi.",[1686,2191,2193],{"id":2192},"rendere-visibili-i-trade-off","Rendere visibili i trade-off",[25,2195,2196],{},"A ogni richiesta, il team tecnico dovrebbe spiegare non solo il tempo stimato, ma anche le conseguenze: cosa viene spostato, che debito tecnico si crea, che rischi si introducono. Dare al business elementi per decidere in modo consapevole.",[1686,2198,2200],{"id":2199},"il-ruolo-del-product-owner-come-traduttore","Il ruolo del product owner come traduttore",[25,2202,2203],{},"Un buon product owner, cioè la figura che tiene insieme obiettivi di business e lavoro del team, capisce entrambi i mondi e traduce continuamente tra i due. È una delle figure con il maggiore impatto sulla qualità dei progetti, proprio perché evita che il significato si perda nel passaggio.",[1686,2205,2207],{"id":2206},"retrospettive-orientate-alle-incomprensioni","Retrospettive orientate alle incomprensioni",[25,2209,2210],{},"Vale la pena analizzare a fine sprint dove ci si è fraintesi, non solo cosa è andato storto tecnicamente. Molto spesso il problema nasce nel modo in cui ci si è parlati, prima ancora che nel codice.",[43,2212,2214],{"id":2213},"è-un-problema-di-comunicazione","È un problema di comunicazione",[25,2216,2217],{},"Molti problemi attribuiti alla complessità del software nascono in realtà da una comunicazione inefficace tra chi decide e chi realizza. Il codice più costoso è quello che risolve il problema sbagliato perché nessuno si è fermato a verificare di aver capito davvero la domanda.",{"title":212,"searchDepth":213,"depth":213,"links":2219},[2220,2226,2227,2228,2236],{"id":2100,"depth":213,"text":2101,"children":2221},[2222,2223,2224,2225],{"id":2107,"depth":1768,"text":2108},{"id":2114,"depth":1768,"text":2115},{"id":2121,"depth":1768,"text":2122},{"id":2128,"depth":1768,"text":2129},{"id":2138,"depth":213,"text":2139},{"id":2148,"depth":213,"text":2149},{"id":2164,"depth":213,"text":2165,"children":2229},[2230,2231,2232,2233,2234,2235],{"id":2171,"depth":1768,"text":2172},{"id":2178,"depth":1768,"text":2179},{"id":2185,"depth":1768,"text":2186},{"id":2192,"depth":1768,"text":2193},{"id":2199,"depth":1768,"text":2200},{"id":2206,"depth":1768,"text":2207},{"id":2213,"depth":213,"text":2214},"2026-03-24","La comunicazione tra team tecnico e business è piena di equivoci che costano sprint interi. Le frasi ricorrenti e come costruire un linguaggio comune.","/images/blog/team-tecnico-business-due-lingue.jpg",{},"/blog/2026-03-24-team-tecnico-business-due-lingue",{"title":2086,"description":2238},"Comunicazione team tecnico e business: come migliorarla","team-tecnico-business-due-lingue","blog/2026-03-24-team-tecnico-business-due-lingue",[2247,2248,2249,2250,670],"comunicazione","product-management","team","produttività","Kvo8EhiXrd4P9KH8VFps3tboZGtGF6BZaKrXkoUBvIk",{"id":2253,"title":2254,"body":2255,"category":13,"date":2417,"description":2418,"extension":225,"image":2419,"meta":2420,"navigation":3,"path":2421,"published":3,"seo":2422,"seoTitle":2423,"slug":2424,"stem":2425,"tags":2426,"updated":240,"__hash__":2430},"blog/blog/2026-03-19-agenzia-abbandona-progetto-software.md","Agenzia che abbandona il progetto: come proteggersi e ripartire",{"type":22,"value":2256,"toc":2395},[2257,2263,2267,2270,2274,2277,2281,2287,2291,2294,2298,2301,2305,2308,2312,2315,2319,2322,2326,2329,2333,2336,2340,2346,2350,2353,2357,2364,2368,2371,2375,2378,2382,2385,2389,2392],[25,2258,2259,2262],{},[29,2260,2261],{},"Ricevere una mail dal fornitore che dice \"non riusciamo più a seguire il progetto\" è meno raro di quanto si pensi."," Quando un'agenzia abbandona un progetto software, il problema va ben oltre il ritardo: ti ritrovi con codice che non conosci, processi che non controlli e un prodotto che dipende da conoscenze non più disponibili. Il vendor lock-in, cioè la dipendenza da un fornitore che rende difficile cambiare strada, tocca persone, organizzazione e controllo, ben oltre la sola tecnologia.",[43,2264,2266],{"id":2265},"perché-succede","Perché succede",[25,2268,2269],{},"Nella maggior parte dei casi ci sono dinamiche molto concrete, senza cattiva fede.",[1686,2271,2273],{"id":2272},"le-priorità-dellagenzia-cambiano","Le priorità dell’agenzia cambiano",[25,2275,2276],{},"Arrivano clienti più grandi o più urgenti. Il tuo progetto scivola in fondo alla lista. Le consegne rallentano, l’attenzione cala, finché diventa evidente che non riescono più a seguirti come prima.",[1686,2278,2280],{"id":2279},"le-persone-chiave-se-ne-vanno","Le persone chiave se ne vanno",[25,2282,2283,2284,2286],{},"Lo sviluppatore che conosceva il progetto cambia lavoro. Chi lo sostituisce non ha lo stesso contesto. È lo stesso problema del ",[146,2285,585],{"href":584},", ma fuori dalla tua azienda.",[1686,2288,2290],{"id":2289},"le-tensioni-economiche-aumentano","Le tensioni economiche aumentano",[25,2292,2293],{},"Il budget iniziale si rivela insufficiente, le trattative diventano difficili, la collaborazione si logora. A un certo punto, continuare non conviene più a una delle parti.",[43,2295,2297],{"id":2296},"il-danno-vero-non-è-il-ritardo","Il danno vero non è il ritardo",[25,2299,2300],{},"Il ritardo è solo l’effetto visibile. Il problema più grande è che spesso non esiste documentazione utile, il codice segue convenzioni interne all’agenzia, il processo di deploy è noto solo a loro, l’infrastruttura è configurata in modo opaco e le dipendenze non sono tracciate chiaramente. In pratica, perdi la conoscenza operativa del tuo stesso prodotto.",[43,2302,2304],{"id":2303},"come-proteggersi-prima-che-succeda","Come proteggersi prima che succeda",[25,2306,2307],{},"Alcune regole, se stabilite dall’inizio, riducono drasticamente il rischio.",[1686,2309,2311],{"id":2310},"il-repository-deve-essere-tuo","Il repository deve essere tuo",[25,2313,2314],{},"Il codice deve stare su un repository di tua proprietà: l’agenzia ha accesso, ma tu sei il proprietario. Se il rapporto finisce, il codice resta a te senza discussioni.",[1686,2316,2318],{"id":2317},"la-cicd-deve-essere-trasparente","La CI/CD deve essere trasparente",[25,2320,2321],{},"Il processo di deploy deve essere automatizzato, documentato e comprensibile: non può dipendere da una procedura manuale che solo loro conoscono.",[1686,2323,2325],{"id":2324},"documentazione-minima-ma-continua","Documentazione minima ma continua",[25,2327,2328],{},"Ci sono almeno tre cose che devono restare sempre aggiornate: come avviare il progetto in locale, come funziona il deploy e quali sono state le principali decisioni architetturali. Se questa documentazione viene rimandata “alla fine”, di solito non verrà mai fatta.",[1686,2330,2332],{"id":2331},"sessioni-periodiche-di-allineamento","Sessioni periodiche di allineamento",[25,2334,2335],{},"Una volta al mese qualcuno della tua azienda dovrebbe capire cosa è cambiato, come è evoluto il progetto e quali sono i punti critici. Questo riduce la dipendenza totale dal fornitore.",[1686,2337,2339],{"id":2338},"tecnologie-standard-non-framework-proprietari","Tecnologie standard, non framework proprietari",[25,2341,2342,2343,116],{},"Soluzioni troppo personalizzate rendono molto difficile il passaggio a un altro fornitore. La velocità iniziale può trasformarsi in un ",[146,2344,2345],{"href":1675},"costo di manutenzione molto alto nel tempo",[43,2347,2349],{"id":2348},"cosa-fare-quando-è-già-successo","Cosa fare quando è già successo",[25,2351,2352],{},"Se ti trovi già in questa situazione, l’ordine delle azioni conta.",[1686,2354,2356],{"id":2355},"evita-la-tentazione-di-riscrivere-tutto","Evita la tentazione di riscrivere tutto",[25,2358,2359,2360,2363],{},"L’istinto è buttare via tutto. Spesso è un errore, come spiegato parlando del ",[146,2361,2362],{"href":1100},"perché riscrivere da zero è rischioso",". Il codice esistente contiene mesi di lavoro e casi limite già risolti.",[1686,2365,2367],{"id":2366},"fai-un-audit-tecnico-indipendente","Fai un audit tecnico indipendente",[25,2369,2370],{},"Un developer senior esterno può analizzare il codice in pochi giorni e darti una mappa chiara: cosa è recuperabile, cosa è rischioso, cosa va sistemato subito.",[1686,2372,2374],{"id":2373},"metti-in-sicurezza-linfrastruttura","Metti in sicurezza l’infrastruttura",[25,2376,2377],{},"Verifica e prendi controllo di dominio, hosting, database, certificati e accessi ai servizi esterni. Questa è la priorità assoluta, perché senza questi elementi il progetto resta esposto indipendentemente da quanto il codice sia recuperabile.",[1686,2379,2381],{"id":2380},"valuta-con-calma-il-passo-successivo","Valuta con calma il passo successivo",[25,2383,2384],{},"Solo dopo aver capito la situazione reale puoi decidere se cambiare fornitore, internalizzare o fare una soluzione mista. Ma questa volta con regole più chiare.",[43,2386,2388],{"id":2387},"la-lezione-da-portare-a-casa","La lezione da portare a casa",[25,2390,2391],{},"La dipendenza da un fornitore è un rischio di business, non tecnico.",[25,2393,2394],{},"Ogni mese in cui il tuo progetto vive su repository che non controlli, con processi che non conosci e decisioni che non sono documentate, stai accumulando un debito di autonomia. E quando arriva il momento di pagarlo, il costo è molto più alto di quanto immagini.",{"title":212,"searchDepth":213,"depth":213,"links":2396},[2397,2402,2403,2410,2416],{"id":2265,"depth":213,"text":2266,"children":2398},[2399,2400,2401],{"id":2272,"depth":1768,"text":2273},{"id":2279,"depth":1768,"text":2280},{"id":2289,"depth":1768,"text":2290},{"id":2296,"depth":213,"text":2297},{"id":2303,"depth":213,"text":2304,"children":2404},[2405,2406,2407,2408,2409],{"id":2310,"depth":1768,"text":2311},{"id":2317,"depth":1768,"text":2318},{"id":2324,"depth":1768,"text":2325},{"id":2331,"depth":1768,"text":2332},{"id":2338,"depth":1768,"text":2339},{"id":2348,"depth":213,"text":2349,"children":2411},[2412,2413,2414,2415],{"id":2355,"depth":1768,"text":2356},{"id":2366,"depth":1768,"text":2367},{"id":2373,"depth":1768,"text":2374},{"id":2380,"depth":1768,"text":2381},{"id":2387,"depth":213,"text":2388},"2026-03-19","Quando un fornitore software si ferma a metà progetto, il danno va oltre il ritardo: è la perdita di controllo. Come proteggersi prima e cosa fare quando succede.","/images/blog/agenzia-abbandona-progetto-software.jpg",{},"/blog/2026-03-19-agenzia-abbandona-progetto-software",{"title":2254,"description":2418},"Agenzia abbandona progetto software: come proteggersi e ripartire","agenzia-abbandona-progetto-software","blog/2026-03-19-agenzia-abbandona-progetto-software",[2427,2428,2429,1627,671],"cambiare-fornitore","vendor-lock-in","continuita-progetto","AGGxkYZ823cjUdfJxnqa76qEfYMuavsOpOjizaLf0QU",{"id":2432,"title":2433,"body":2434,"category":13,"date":2542,"description":2543,"extension":225,"image":2544,"meta":2545,"navigation":3,"path":2546,"published":3,"seo":2547,"seoTitle":2548,"slug":2549,"stem":2550,"tags":2551,"updated":240,"__hash__":2556},"blog/blog/2026-03-17-software-fragile-regressioni.md","Software fragile: ogni modifica rompe qualcos'altro. Come uscirne",{"type":22,"value":2435,"toc":2531},[2436,2442,2446,2449,2456,2459,2461,2464,2468,2475,2479,2482,2486,2489,2493,2504,2508,2511,2518,2521,2525,2528],[25,2437,2438,2441],{},[29,2439,2440],{},"Il tuo team evita di deployare il venerdì. E spesso anche il giovedì."," Ogni rilascio, cioè ogni pubblicazione di una nuova versione del software, è preceduto da test manuali, mail di avvertimento e qualcuno che resta collegato \"per sicurezza\". È il segnale di un software fragile, dove ogni modifica rischia di causare una regressione. E quella fragilità ha un costo che stai pagando ogni giorno.",[43,2443,2445],{"id":2444},"i-segnali-del-software-fragile","I segnali del software fragile",[25,2447,2448],{},"Si riconoscono anche senza essere tecnici. Correggi un bug nel carrello e si rompe la fatturazione. Aggiungi un campo al form di registrazione e smette di funzionare il reset password. Alcune parti del codice vengono evitate perché “funzionano, meglio non toccarle”.",[25,2450,2451,2452,2455],{},"Questi sono ",[29,2453,2454],{},"bug di regressione",": modifiche in un punto che causano rotture in punti apparentemente non collegati.",[25,2457,2458],{},"I segnali concreti sono abbastanza chiari: deploy che richiedono ore di test manuali prima di andare in produzione, moduli che nessuno vuole modificare, bug segnalati su funzionalità che non sono state toccate, hotfix che generano altri hotfix e tempi molto lunghi anche per modifiche che in teoria sembrano semplici. Se riconosci diversi di questi sintomi, il sistema sta diventando fragile.",[43,2460,2266],{"id":2265},[25,2462,2463],{},"Il software raramente nasce fragile. Lo diventa nel tempo.",[1686,2465,2467],{"id":2466},"pochi-test-automatici-sui-flussi-critici","Pochi test automatici sui flussi critici",[25,2469,2470,2471,2474],{},"Senza test automatici, ogni modifica diventa un azzardo: nessuno sa con certezza cosa si romperà finché qualcuno non se ne accorge in produzione. Come ho scritto parlando di ",[146,2472,2473],{"href":2036},"test coverage",", non serve testare tutto, ma serve testare i percorsi che contano davvero per il business.",[1686,2476,2478],{"id":2477},"alto-accoppiamento-tra-le-parti-del-sistema","Alto accoppiamento tra le parti del sistema",[25,2480,2481],{},"Quando ogni modulo dipende da molti altri, toccare un punto significa rischiare di avere effetti collaterali altrove. Questo succede quando il codice cresce senza una separazione chiara delle responsabilità.",[1686,2483,2485],{"id":2484},"debito-tecnico-accumulato","Debito tecnico accumulato",[25,2487,2488],{},"Le scorciatoie ripetute nel tempo rendono il sistema sempre più difficile da modificare. Il debito tecnico non si vede nei report, ma si manifesta in lentezza, bug e timore di intervenire.",[43,2490,2492],{"id":2491},"il-costo-per-il-business","Il costo per il business",[25,2494,2495,2496,2499,2500,2503],{},"La fragilità ha un impatto economico molto concreto. Se ogni deploy è rischioso, si rilascia meno spesso e le funzionalità arrivano ai clienti più lentamente. I bug che sfuggono in produzione costano fiducia, supporto e reputazione. Nel frattempo il team entra in un blocco psicologico: chi ha paura di modificare il codice smette di proporre miglioramenti, e le persone migliori tendono a cercare contesti meno stressanti. Quando ",[146,2497,2498],{"href":584},"perdi persone chiave",", la situazione peggiora ancora. Anche il costo delle modifiche cresce: un intervento che in un sistema sano richiederebbe due giorni, in un sistema fragile può richiederne dieci. A questo punto spesso nasce la tentazione di ",[146,2501,2502],{"href":1100},"riscrivere tutto da zero",": raramente è la scelta migliore.",[43,2505,2507],{"id":2506},"come-migliorare-senza-fermare-lo-sviluppo","Come migliorare senza fermare lo sviluppo",[25,2509,2510],{},"Non serve bloccare il progetto per mesi: conviene intervenire in modo graduale e continuo, partendo dai flussi critici — registrazione, login, pagamento, operazioni core. Anche pochi test ben scritti su questi percorsi riducono drasticamente le regressioni. Poi si lavora un modulo alla volta: ogni volta che si interviene su un pezzo di codice, lo si lascia un po’ più ordinato e indipendente di come lo si è trovato. È un miglioramento progressivo, non un refactoring massivo.",[25,2512,2513,2514,2517],{},"Ha molto valore anche automatizzare la pipeline di rilascio. Build automatiche, test automatici e un ambiente di staging affidabile riducono il rischio e trasformano il deploy in un’operazione ordinaria. Anche ",[146,2515,2516],{"href":148},"l’AI può aiutare",", ma solo se le fondamenta sono abbastanza sane da permetterlo.",[25,2519,2520],{},"Infine conviene misurare la fragilità con pochi indicatori chiari: numero di bug di regressione al mese, tempo medio tra commit e deploy, numero di rollback, cioè ritorni rapidi alla versione precedente, dopo un rilascio. Se questi numeri migliorano, la fragilità sta davvero diminuendo.",[43,2522,2524],{"id":2523},"la-regola-pratica","La regola pratica",[25,2526,2527],{},"Se il tuo team ha paura di deployare, il problema è nel sistema.",[25,2529,2530],{},"E il sistema tende a peggiorare nel tempo se non si interviene. Basta iniziare: qualche test mirato, una pipeline più solida, una conversazione chiara sulle parti più rischiose del codice. Un sistema sano permette di rilasciare spesso, con serenità; quando questo non succede, è un segnale che vale la pena ascoltare.",{"title":212,"searchDepth":213,"depth":213,"links":2532},[2533,2534,2539,2540,2541],{"id":2444,"depth":213,"text":2445},{"id":2265,"depth":213,"text":2266,"children":2535},[2536,2537,2538],{"id":2466,"depth":1768,"text":2467},{"id":2477,"depth":1768,"text":2478},{"id":2484,"depth":1768,"text":2485},{"id":2491,"depth":213,"text":2492},{"id":2506,"depth":213,"text":2507},{"id":2523,"depth":213,"text":2524},"2026-03-17","Software dove ogni modifica rompe qualcosa: il team evita di deployare e lo sviluppo rallenta. Perché succede e come ridurre gradualmente la fragilità senza bloccare il progetto.","/images/blog/software-fragile-regressioni.jpg",{},"/blog/2026-03-17-software-fragile-regressioni",{"title":2433,"description":2543},"Software fragile: perché ogni modifica rompe qualcosa","software-fragile-regressioni","blog/2026-03-17-software-fragile-regressioni",[2552,2553,2554,1145,2555],"software-fragile","regressioni","deploy","manutenzione","vUbjyjc1V1RERmkE5DFXN8S6zHu_BSEPjFAxVbqUIIY",{"id":2558,"title":2559,"body":2560,"category":13,"date":2664,"description":2665,"extension":225,"image":2666,"meta":2667,"navigation":3,"path":2668,"published":3,"seo":2669,"seoTitle":2670,"slug":2671,"stem":2672,"tags":2673,"updated":240,"__hash__":2676},"blog/blog/2026-03-12-costi-manutenzione-software.md","Costi di manutenzione software: quanto mettere a budget ogni anno",{"type":22,"value":2561,"toc":2656},[2562,2568,2572,2575,2583,2590,2593,2597,2600,2603,2607,2610,2613,2617,2623,2627,2630,2633,2640,2643,2647,2650],[25,2563,2564,2567],{},[29,2565,2566],{},"Il giorno in cui il software va in produzione, inizia una fase diversa di costi."," I costi di manutenzione software sono spesso sottovalutati: la maggior parte dei business plan prevede una voce \"sviluppo\" con un importo e una data di fine, come se dopo quella data il problema economico fosse risolto. In realtà i costi si trasformano, e spesso, nel tempo, quello che spendi dopo il lancio supera quello che hai speso per costruire. Se non lo sai prima di iniziare, ti ritrovi con un prodotto che funziona ma che non hai previsto di mantenere.",[43,2569,2571],{"id":2570},"perché-il-software-non-è-mai-davvero-finito","Perché il software non è mai davvero “finito”",[25,2573,2574],{},"Un edificio, una volta costruito, sta in piedi da solo. Il software no. Vive in un ecosistema che cambia continuamente, e se non cambia insieme a quell’ecosistema, inizia a degradarsi.",[25,2576,2577,2578,2582],{},"Gli aggiornamenti di sicurezza sono il primo fattore da considerare. Framework, linguaggi, sistemi operativi e database ricevono patch continue; ignorarle significa accumulare vulnerabilità nel tempo. Come ho scritto parlando di ",[146,2579,2581],{"href":2580},"/blog/sicurezza-backend-produzione","sicurezza nel backend",", un sistema non aggiornato diventa progressivamente più esposto.",[25,2584,2585,2586,116],{},"Poi ci sono dipendenze e librerie. Il tuo codice si appoggia a decine di componenti esterni: alcuni si evolvono, altri vengono deprecati, altri ancora vengono abbandonati. Quando una dipendenza cambia o smette di essere supportata, qualcuno deve intervenire. Ed è qui che emerge il ",[146,2587,2589],{"href":2588},"/blog/dipendenze-open-source-costo-nascosto","costo nascosto delle dipendenze open source",[25,2591,2592],{},"Lo stesso vale per l’infrastruttura. Certificati che scadono, database che crescono, costi cloud che cambiano, monitoraggio da mantenere attivo: nulla resta fermo da solo. Infine arrivano i bug e i comportamenti inattesi, che emergono con l’uso reale, con utenti veri, volumi veri e casi d’uso che nessuno aveva previsto in fase di sviluppo.",[43,2594,2596],{"id":2595},"il-numero-che-spesso-sorprende-la-maggior-parte-del-costo-è-dopo","Il numero che spesso sorprende: la maggior parte del costo è dopo",[25,2598,2599],{},"In molti studi sul ciclo di vita del software, si osserva che la parte più consistente del costo totale non è nello sviluppo iniziale ma negli anni successivi, tra manutenzione, aggiornamenti e adeguamenti.",[25,2601,2602],{},"Tradotto in pratica: un software che è costato 100.000 euro per essere sviluppato può richiedere, nei cinque anni successivi, un investimento simile o superiore solo per rimanere sicuro, compatibile e funzionante — solo per mantenere ciò che esiste, senza aggiungere nulla di nuovo. Se nel business plan la voce “software” è considerata una spesa una tantum, quel piano è incompleto.",[43,2604,2606],{"id":2605},"il-paragone-con-gli-asset-fisici","Il paragone con gli asset fisici",[25,2608,2609],{},"Quando compri un immobile, prevedi manutenzione, rifacimenti, adeguamenti. Con il software spesso questo non succede perché è invisibile: non vedi il degrado finché qualcosa non smette di funzionare.",[25,2611,2612],{},"La differenza è che un immobile si degrada lentamente. Un software può rompersi all’improvviso: un aggiornamento del browser, una vulnerabilità, un’API esterna che cambia comportamento.",[43,2614,2616],{"id":2615},"il-costo-di-non-mantenere","Il costo di non mantenere",[25,2618,2619,2620,2622],{},"Ignorare la manutenzione non elimina il costo: lo rimanda, moltiplicandolo. Il debito tecnico cresce con il tempo e, dopo anni senza aggiornamenti, un upgrade diventa complesso e rischioso. A volte si arriva alla tentazione di ",[146,2621,2502],{"href":1100},", che raramente è la scelta più economica. Intanto le vulnerabilità restano aperte, i problemi di compatibilità aumentano, e il giorno in cui qualcosa si rompe l’intervento d’emergenza costa molto più di una manutenzione costante.",[43,2624,2626],{"id":2625},"come-pianificare-in-modo-realistico","Come pianificare in modo realistico",[25,2628,2629],{},"Prevedere un budget annuo di manutenzione è il primo passo. Una regola pratica diffusa è considerare ogni anno una cifra nell’ordine del 15–20% del costo iniziale di sviluppo. Non è un numero esatto, ma è un riferimento utile per evitare sorprese.",[25,2631,2632],{},"Aiuta molto anche distinguere manutenzione da evoluzione. Bug fix, sicurezza, aggiornamenti e compatibilità appartengono alla prima categoria; nuove funzionalità appartengono alla seconda. Mescolare le due voci porta quasi sempre a piani confusi, perché finisci per trattare come “novità” anche il semplice costo di tenere in piedi ciò che già esiste.",[25,2634,2635,2636,2639],{},"Dove possibile conviene automatizzare. Test automatici, deploy automatici e monitoraggio riducono il costo delle attività ripetitive nel tempo. Anche l’",[146,2637,2638],{"href":148},"uso dell’AI nello sviluppo"," può velocizzare una parte della manutenzione ordinaria, ma solo se il progetto ha fondamenta abbastanza sane da permetterlo.",[25,2641,2642],{},"Conta anche la scelta delle tecnologie. Framework maturi e con cicli di rilascio prevedibili tendono a costare meno nel tempo rispetto a tecnologie emergenti con un futuro incerto. Infine, ogni piattaforma ha il suo ciclo di vita: pianificare gli aggiornamenti importanti con anticipo riduce drasticamente il rischio e il costo degli interventi urgenti.",[43,2644,2646],{"id":2645},"il-cambio-di-mentalità","Il cambio di mentalità",[25,2648,2649],{},"Il software funziona più come un servizio continuo che come un acquisto una tantum. Puoi ottimizzare i costi con scelte architetturali corrette e buone pratiche, ma non puoi eliminarli: ignorarli è il modo più rapido per trasformare un investimento in un problema.",[25,2651,2652,2653],{},"Vale la pena chiedersi: ",[29,2654,2655],{},"stiamo spendendo abbastanza per proteggere l’investimento che abbiamo già fatto?",{"title":212,"searchDepth":213,"depth":213,"links":2657},[2658,2659,2660,2661,2662,2663],{"id":2570,"depth":213,"text":2571},{"id":2595,"depth":213,"text":2596},{"id":2605,"depth":213,"text":2606},{"id":2615,"depth":213,"text":2616},{"id":2625,"depth":213,"text":2626},{"id":2645,"depth":213,"text":2646},"2026-03-12","Il software non è un acquisto una tantum. Sicurezza, aggiornamenti, bug e compatibilità costano. Come quantificare il budget annuale di manutenzione e perché 15-20% è realistico.","/images/blog/costi-manutenzione-software.jpg",{},"/blog/2026-03-12-costi-manutenzione-software",{"title":2559,"description":2665},"Costi manutenzione software: il budget annuale (15-20%)","costi-manutenzione-software","blog/2026-03-12-costi-manutenzione-software",[2674,2555,1258,1789,2675],"costi","gestione-software","mHVD_vp2ujqkCsdSgPBz2MIf7mxtYJm_411jHPIDuFA",{"id":2678,"title":2679,"body":2680,"category":13,"date":2828,"description":2829,"extension":225,"image":2830,"meta":2831,"navigation":3,"path":2832,"published":3,"seo":2833,"seoTitle":2834,"slug":2835,"stem":2836,"tags":2837,"updated":240,"__hash__":2841},"blog/blog/2026-03-10-scope-creep-progetti-agile.md","Scope creep nei progetti agile: come riconoscerlo e contenerlo",{"type":22,"value":2681,"toc":2813},[2682,2688,2691,2695,2698,2707,2710,2713,2717,2720,2724,2730,2737,2741,2744,2748,2751,2755,2759,2762,2766,2769,2773,2779,2782,2786,2789,2793,2800,2804,2807,2810],[25,2683,2684,2687],{},[29,2685,2686],{},"\"Tanto siamo agili, possiamo cambiare.\""," Ripetuta sprint dopo sprint, questa frase spesso nasconde lo scope creep in un progetto software: la difficoltà di prendere decisioni e mantenerle nel tempo.",[25,2689,2690],{},"Il problema è farlo ogni due settimane senza rendersi conto del costo reale. Ogni cambio di priorità ha un prezzo che si paga in lavoro buttato, stime che perdono di senso e team che smette di credere nel processo.",[43,2692,2694],{"id":2693},"cosè-davvero-lo-scope-creep","Cos'è davvero lo scope creep",[25,2696,2697],{},"Lo scope creep è l'espansione progressiva dei requisiti di un progetto, cioè il continuo allargarsi delle richieste mentre il lavoro è già in corso. Non arriva tutto insieme. Arriva a piccole dosi:",[25,2699,2700,2701,2703,2704,2706],{},"\"aggiungiamo anche questo campo\",",[351,2702],{},"\n\"già che ci siamo integriamo anche questo sistema\",",[351,2705],{},"\n\"il cliente ha chiesto una cosa in più, dovrebbe essere veloce\".",[25,2708,2709],{},"Ogni richiesta singola sembra ragionevole. Ma la somma di molte richieste ragionevoli trasforma un progetto da tre mesi in uno da otto. E spesso nessuno riesce a spiegare dove sia finito il tempo.",[25,2711,2712],{},"La forma più insidiosa di scope creep è quella che si traveste da agilità. Agile significa poter cambiare direzione quando serve. Non significa cambiare idea continuamente senza una valutazione dell’impatto.",[43,2714,2716],{"id":2715},"pivot-o-indecisione-la-differenza-è-misurabile","Pivot o indecisione? La differenza è misurabile",[25,2718,2719],{},"Un cambio di direzione sano nasce da dati o feedback reali, viene comunicato con trasparenza al team e include una valutazione esplicita di tempi e costi. Quando invece tutto parte da opinioni non validate, viene presentato come “piccolo aggiustamento” e nessuno misura l’impatto sul lavoro già fatto, si sta semplicemente navigando a vista. E navigare a vista con un team di sviluppo è molto costoso.",[43,2721,2723],{"id":2722},"il-costo-reale-del-rework","Il costo reale del rework",[25,2725,2726,2727,116],{},"Cambiare priorità a metà sprint non significa perdere solo il lavoro non completato. Significa ritrovarsi con codice già scritto che viene congelato o rimosso, tempo pagato che non produce valore, stime che perdono credibilità e sviluppatori costretti a continui cambi di contesto, ognuno dei quali ",[146,2728,2729],{"href":1303},"costa circa 23 minuti di recupero",[25,2731,2732,2733,2736],{},"Un team di quattro sviluppatori che butta via anche solo il 25-30% del lavoro di ogni sprint sta bruciando, di fatto, l’equivalente di uno sviluppatore a tempo pieno all’anno. E quando ",[146,2734,2735],{"href":312},"le stime non funzionano",", la pianificazione diventa impossibile.",[43,2738,2740],{"id":2739},"leffetto-sul-team-che-poi-diventa-un-costo","L’effetto sul team (che poi diventa un costo)",[25,2742,2743],{},"Quando il lavoro viene sistematicamente cambiato o abbandonato, le persone smettono di investire energia. Per realismo: perché impegnarsi al massimo su qualcosa che potrebbe essere scartato tra due settimane? Il risultato è un team che lavora in modo difensivo, propone meno soluzioni e si limita a eseguire, e nel tempo i profili migliori tendono a cercare contesti più stabili.",[43,2745,2747],{"id":2746},"dire-no-è-parte-del-lavoro","Dire \"no\" è parte del lavoro",[25,2749,2750],{},"Il ruolo del Product Owner è filtrare le richieste e stabilire cosa ha senso fare adesso: ogni sì è un impegno di risorse, e le risorse sono limitate. Un buon Product Owner filtra, prioritizza e spiega perché qualcosa non entra nello sprint corrente. Questo richiede una visione chiara del prodotto; senza visione, si finisce per inseguire l’ultima richiesta arrivata.",[43,2752,2754],{"id":2753},"regole-pratiche-per-contenere-lo-scope-creep","Regole pratiche per contenere lo scope creep",[1686,2756,2758],{"id":2757},"definisci-il-risultato-dello-sprint-non-solo-i-task","Definisci il risultato dello sprint, non solo i task",[25,2760,2761],{},"Alla fine dello sprint deve essere chiaro cosa può fare l’utente in più rispetto a prima. Questo rende più evidente cosa è fuori perimetro.",[1686,2763,2765],{"id":2764},"usa-un-backlog-separato-per-le-nuove-richieste","Usa un backlog separato per le nuove richieste",[25,2767,2768],{},"Le idee che arrivano durante lo sprint si raccolgono, ma non si discutono fino alla pianificazione successiva.",[1686,2770,2772],{"id":2771},"rendi-visibile-il-costo-del-cambio","Rendi visibile il costo del cambio",[25,2774,2775,2776,2778],{},"Quando qualcuno propone di cambiare priorità, la risposta non dovrebbe essere un sì o un no immediato. Dovrebbe essere questa:",[351,2777],{},"\n\"Possiamo farlo, ma significa fermare X e spostare la consegna di Y.\"",[25,2780,2781],{},"Quando il costo è visibile, le decisioni migliorano.",[1686,2783,2785],{"id":2784},"tratta-lo-sprint-come-un-impegno","Tratta lo sprint come un impegno",[25,2787,2788],{},"Per la durata dello sprint, il team lavora su quanto concordato. Questa stabilità è ciò che rende il lavoro prevedibile.",[1686,2790,2792],{"id":2791},"valida-prima-di-costruire","Valida prima di costruire",[25,2794,2795,2796,2799],{},"Molti cambi nascono da ipotesi non verificate. Un ",[146,2797,2798],{"href":288},"MVP ben definito"," riduce drasticamente la necessità di cambiare continuamente direzione.",[43,2801,2803],{"id":2802},"lagilità-vera-richiede-disciplina","L’agilità vera richiede disciplina",[25,2805,2806],{},"Il paradosso dell’agile è che richiede più disciplina, non meno. La possibilità di cambiare direzione funziona solo se si ha il metodo per farlo con consapevolezza.",[25,2808,2809],{},"Se le priorità cambiano ogni sprint e nessuno riesce a spiegare perché, il problema sta nell’assenza di una visione chiara e di regole che proteggano il lavoro del team, più che nel framework agile.",[25,2811,2812],{},"L’agilità vera consiste nel fare le cose giuste nel momento giusto, con la piena consapevolezza di ciò che si sta sacrificando.",{"title":212,"searchDepth":213,"depth":213,"links":2814},[2815,2816,2817,2818,2819,2820,2827],{"id":2693,"depth":213,"text":2694},{"id":2715,"depth":213,"text":2716},{"id":2722,"depth":213,"text":2723},{"id":2739,"depth":213,"text":2740},{"id":2746,"depth":213,"text":2747},{"id":2753,"depth":213,"text":2754,"children":2821},[2822,2823,2824,2825,2826],{"id":2757,"depth":1768,"text":2758},{"id":2764,"depth":1768,"text":2765},{"id":2771,"depth":1768,"text":2772},{"id":2784,"depth":1768,"text":2785},{"id":2791,"depth":1768,"text":2792},{"id":2802,"depth":213,"text":2803},"2026-03-10","Lo scope creep mascherato da agilità è tra le cause principali di progetti software fuori budget. Come riconoscerlo e quanto costa cambiare priorità.","/images/blog/scope-creep-progetti-agile.jpg",{},"/blog/2026-03-10-scope-creep-progetti-agile",{"title":2679,"description":2829},"Scope creep agile: come riconoscerlo e contenerlo","scope-creep-progetti-agile","blog/2026-03-10-scope-creep-progetti-agile",[2838,2839,2840,1261,2674],"gestione-progetto","agile","product-ownership","wyh9LWFWTWHLprKoJ3YTth91vYGyB2CFAojwQSmEBjY",{"id":2843,"title":2844,"body":2845,"category":13,"date":3028,"description":3029,"extension":225,"image":3030,"meta":3031,"navigation":3,"path":3032,"published":3,"seo":3033,"seoTitle":3034,"slug":3035,"stem":3036,"tags":3037,"updated":240,"__hash__":3039},"blog/blog/2026-03-05-preventivo-software-partire-dal-budget.md","Preventivo software: perché conviene partire dal budget",{"type":22,"value":2846,"toc":3008},[2847,2853,2860,2864,2868,2871,2879,2886,2890,2893,2896,2900,2906,2910,2913,2917,2924,2927,2931,2934,2937,2941,2947,2954,2958,2965,2969,2973,2976,2980,2983,2987,2990,2994,3001,3005],[25,2848,2849,2852],{},[29,2850,2851],{},"\"Quanto costa fare un'app per gestire i miei ordini?\""," Chiedere un preventivo software senza contesto porta quasi sempre a una semplificazione forzata: il costo dipende da decisioni che emergono davvero solo quando si analizzano processi, eccezioni, integrazioni e vincoli.",[25,2854,2855,2856,2859],{},"Se invece mi dici ",[29,2857,2858],{},"quanto hai da investire",", la conversazione diventa più utile: possiamo decidere insieme cosa costruire prima, cosa rimandare, quali trade-off accetti e come ridurre il rischio di sorprese. È un modo più realistico di lavorare sul software.",[43,2861,2863],{"id":2862},"perché-un-preventivo-al-buio-è-fragile","Perché un preventivo “al buio” è fragile",[1686,2865,2867],{"id":2866},"cosa-stai-comprando-spesso-non-è-ancora-chiaro","Cosa stai comprando spesso non è ancora chiaro",[25,2869,2870],{},"Tu hai in testa un problema da risolvere. Tra problema e soluzione, però, ci sono molte scelte: permessi, eccezioni, integrazioni, flussi alternativi, requisiti non esplicitati.",[25,2872,2873,2874,2878],{},"“Gestione ordini” può voler dire cose molto diverse: un listino semplice o logiche di pricing piene di eccezioni, come succede quando ",[146,2875,2877],{"href":2876},"/blog/digitalizzare-processi-aziendali","il software finisce per codificare il caos","; un'integrazione con la contabilità oppure un semplice export manuale; un portale clienti o una gestione tutta interna; una reportistica essenziale oppure analisi più avanzate.",[25,2880,2881,2882,2885],{},"Ogni risposta sposta costi e tempi, e molte risposte emergono durante l’analisi, non prima. È lo stesso motivo per cui ",[146,2883,2884],{"href":312},"le stime nel software sono spesso imprecise",": è un'esplorazione guidata, più che una somma di pezzi indipendenti.",[1686,2887,2889],{"id":2888},"il-preventivo-fisso-incentiva-comportamenti-difensivi","Il preventivo fisso incentiva comportamenti difensivi",[25,2891,2892],{},"Quando il contratto è “scope fisso, prezzo fisso”, entrambe le parti iniziano a difendersi. Il fornitore aggiunge margine “di sicurezza” oppure sottostima e prova a recuperare dopo con le change request; il cliente, dal canto suo, cerca di infilare tutto possibile perché \"tanto era incluso\".",[25,2894,2895],{},"Non sempre succede, ma succede abbastanza spesso da rendere questo modello rischioso nei progetti dove i requisiti non sono già cristallizzati.",[43,2897,2899],{"id":2898},"perché-parlare-di-budget-migliora-la-qualità-delle-decisioni","Perché parlare di budget migliora la qualità delle decisioni",[25,2901,2902,2903,116],{},"Quando dici “ho 30.000 euro”, smettiamo di discutere di un software ideale e iniziamo a discutere di un software ",[29,2904,2905],{},"realistico",[1686,2907,2909],{"id":2908},"_1-le-priorità-diventano-visibili","1) Le priorità diventano visibili",[25,2911,2912],{},"Con un vincolo chiaro, possiamo separare ciò che è indispensabile da ciò che migliora il prodotto e da ciò che sarebbe solo comodo avere. In altre parole, emerge subito il nucleo senza cui il problema non si risolve, quello che conviene rimandare e quello che può aspettare senza danni. Senza un vincolo, tutto tende a diventare “must”; con un vincolo, il prodotto prende focus.",[1686,2914,2916],{"id":2915},"_2-posso-proporti-lapproccio-adatto-alla-fascia","2) Posso proporti l’approccio adatto alla fascia",[25,2918,2919,2920,2923],{},"Un progetto da 10K e uno da 40K possono risolvere lo stesso problema, ma con strumenti diversi e con compromessi diversi. Come ho spiegato nell’articolo su ",[146,2921,2922],{"href":1203},"quanto costa un software custom",", sono “prodotti” differenti.",[25,2925,2926],{},"Se non so il budget, rischio di proporti una soluzione troppo rigida, che poi esplode quando chiedi personalizzazioni, oppure una soluzione sovradimensionata, che ti fa spendere senza ottenere un valore proporzionato.",[1686,2928,2930],{"id":2929},"_3-possiamo-essere-espliciti-sui-limiti-ed-evitare-sorprese","3) Possiamo essere espliciti sui limiti (ed evitare sorprese)",[25,2932,2933],{},"Esempio di conversazione utile:\n“Con 15K facciamo versione 1 con queste 3 funzionalità core, solide e usabili. La reportistica avanzata e il portale clienti sono fase 2, stimata 10–15K.”",[25,2935,2936],{},"Questo è più onesto di un “ti costa X” senza chiarire cosa resta fuori.",[43,2938,2940],{"id":2939},"se-ti-dico-il-budget-lo-userai-tutto","“Se ti dico il budget, lo userai tutto”",[25,2942,2943,2944],{},"Obiezione legittima. E infatti serve una regola chiara: ",[29,2945,2946],{},"il budget non deve diventare il prezzo. Deve diventare il vincolo.",[25,2948,2949,2950,2953],{},"In pratica, prima definiamo un ",[971,2951,2952],{},"obiettivo minimo misurabile",", cioè cosa deve fare la v1 per poter essere considerata un successo. Poi costruiamo una roadmap di opzioni, distinguendo chiaramente cosa aggiungere se resta budget e cosa rimandare se il margine si restringe. Infine rendiamo trasparente ciò che stiamo acquistando davvero: sviluppo, test, deploy e documentazione minima. Nel software, “cose da fare” ce ne sono sempre più del budget disponibile, e il punto è spendere sulle cose con più ritorno.",[43,2955,2957],{"id":2956},"tre-regole-operative-per-farla-funzionare-davvero","Tre regole operative per farla funzionare davvero",[25,2959,2960,2961,2964],{},"La prima regola è definire un minimo non negoziabile: se il prodotto non riesce a fare il core flow, cioè il flusso principale che genera valore, costruire il resto non ha senso. La seconda è congelare lo scope, cioè il perimetro delle cose da fare, per blocchi brevi di due o tre settimane: consegni, misuri e solo dopo decidi cosa entra nel blocco successivo, in modo coerente con l’approccio ",[146,2962,2963],{"href":1701},"lancia, ascolta, migliora",". La terza è includere nel “minimo” anche continuità e controllo: repository tuo, accessi tuoi, deploy ripetibile, istruzioni di avvio in locale. Senza queste basi, stai solo comprando velocità oggi e fragilità domani.",[43,2966,2968],{"id":2967},"come-funziona-in-pratica","Come funziona in pratica",[1686,2970,2972],{"id":2971},"fase-1-problema-vincolo","Fase 1: problema + vincolo",[25,2974,2975],{},"“Questo è il problema, questo è il budget.” Una call focalizzata su flussi reali, eccezioni, integrazioni, utenti.",[1686,2977,2979],{"id":2978},"fase-2-piano-non-lista-infinita","Fase 2: piano, non lista infinita",[25,2981,2982],{},"Una proposta seria esplicita cosa include la v1, cosa resta fuori, quali trade-off vengono accettati, quali sono tempi e milestone e cosa serve da te in termini di dati, accessi e decisioni. La differenza la fa proprio questa chiarezza.",[1686,2984,2986],{"id":2985},"fase-3-iterazioni-brevi","Fase 3: iterazioni brevi",[25,2988,2989],{},"Ogni 2–3 settimane qualcosa di funzionante. Le priorità si aggiustano con costi visibili, non a fine progetto.",[1686,2991,2993],{"id":2992},"fase-4-il-budget-finisce-il-prodotto-resta-in-piedi","Fase 4: il budget finisce, il prodotto resta in piedi",[25,2995,2996,2997,3000],{},"Obiettivo: arrivare a fine budget con un prodotto ",[29,2998,2999],{},"utilizzabile",", non con “tante cose a metà”.",[43,3002,3004],{"id":3003},"il-budget-da-limite-a-strumento-di-focus","Il budget: da limite a strumento di focus",[25,3006,3007],{},"La maggior parte dei progetti che vanno bene non ha un budget infinito. Ha un budget chiaro, obiettivi misurabili, priorità stabili per blocchi brevi e scelte esplicite su cosa rimandare. Questo riduce sprechi, rework e conflitti, e rende molto più probabile arrivare a qualcosa che funziona davvero per il business.",{"title":212,"searchDepth":213,"depth":213,"links":3009},[3010,3014,3019,3020,3021,3027],{"id":2862,"depth":213,"text":2863,"children":3011},[3012,3013],{"id":2866,"depth":1768,"text":2867},{"id":2888,"depth":1768,"text":2889},{"id":2898,"depth":213,"text":2899,"children":3015},[3016,3017,3018],{"id":2908,"depth":1768,"text":2909},{"id":2915,"depth":1768,"text":2916},{"id":2929,"depth":1768,"text":2930},{"id":2939,"depth":213,"text":2940},{"id":2956,"depth":213,"text":2957},{"id":2967,"depth":213,"text":2968,"children":3022},[3023,3024,3025,3026],{"id":2971,"depth":1768,"text":2972},{"id":2978,"depth":1768,"text":2979},{"id":2985,"depth":1768,"text":2986},{"id":2992,"depth":1768,"text":2993},{"id":3003,"depth":213,"text":3004},"2026-03-05","Chiedere un preventivo software senza contesto porta a stime fragili. Partire dal budget rende la conversazione più utile: cosa costruire prima, cosa rimandare, come evitare le sorprese.","/images/blog/preventivo-software-partire-dal-budget.jpg",{},"/blog/2026-03-05-preventivo-software-partire-dal-budget",{"title":2844,"description":3029},"Preventivo software: partire dal budget per un progetto realistico","preventivo-software-partire-dal-budget","blog/2026-03-05-preventivo-software-partire-dal-budget",[1259,1258,3038,1789,386],"come-fare-preventivo","e6k0VCeDhvBLkguT9GfC2Qd89IpTKTJy9yFsRZRdMSI",{"id":3041,"title":3042,"body":3043,"category":13,"date":3173,"description":3174,"extension":225,"image":3175,"meta":3176,"navigation":3,"path":3177,"published":3,"seo":3178,"seoTitle":3179,"slug":3180,"stem":3181,"tags":3182,"updated":240,"__hash__":3184},"blog/blog/2026-03-03-bus-factor-developer-indispensabile.md","Se il tuo miglior developer se ne va domani, il prodotto sopravvive?",{"type":22,"value":3044,"toc":3159},[3045,3051,3055,3058,3061,3064,3070,3074,3077,3080,3086,3090,3093,3097,3104,3108,3111,3115,3118,3122,3128,3132,3135,3139,3142,3146,3149,3153,3156],[25,3046,3047,3050],{},[29,3048,3049],{},"Hai quel developer che sa tutto. Conosce ogni angolo del codice, ogni workaround, ogni decisione presa anni fa e mai documentata. Tutti lo cercano, tutti dipendono da lui."," All'inizio può sembrare un vantaggio, ma in realtà espone l'azienda a uno dei rischi organizzativi più seri. Il bus factor nello sviluppo software misura proprio questo: quanto il tuo prodotto dipende da una sola persona.",[43,3052,3054],{"id":3053},"cosè-il-bus-factor-e-perché-è-un-problema-aziendale","Cos'è il bus factor e perché è un problema aziendale",[25,3056,3057],{},"Il bus factor indica quante persone nel team, se non fossero più disponibili domani, metterebbero seriamente in difficoltà il progetto. In pratica misura quanto il sapere critico è concentrato su poche teste.",[25,3059,3060],{},"Se la risposta è “una”, il bus factor è 1.",[25,3062,3063],{},"Non serve immaginare scenari estremi. Basta una lettera di dimissioni, un burnout, un’offerta migliore. Quando il bus factor è molto basso, la conoscenza critica del prodotto vive nella testa di poche persone — a volte una sola.",[25,3065,3066,3067,116],{},"È una metrica di ",[29,3068,3069],{},"rischio operativo",[43,3071,3073],{"id":3072},"il-costo-reale-che-raramente-si-considera","Il costo reale che raramente si considera",[25,3075,3076],{},"Quando il developer chiave se ne va, sostituirlo è solo l'inizio del problema. La prima conseguenza è lo stop operativo: nessuno sa esattamente come funziona il deploy, perché quel job gira alle 3 di notte o dove si trovano certe configurazioni, quindi il team rallenta o si blocca.",[25,3078,3079],{},"Subito dopo arriva il reverse engineering del proprio prodotto. Il nuovo sviluppatore deve capire un sistema complesso senza contesto, e ho visto team impiegare mesi solo per tornare al livello di comprensione che avevano prima.",[25,3081,3082,3083,3085],{},"Da lì nasce spesso anche la tentazione di ",[146,3084,2502],{"href":1100},", che quasi sempre si rivela un errore costoso. Intanto si deformano anche le dinamiche interne: ogni decisione passa sempre dalla stessa persona, non per cattiva volontà, ma perché l'organizzazione l'ha resa il punto obbligato di ogni passaggio importante.",[43,3087,3089],{"id":3088},"i-segnali-che-il-problema-è-già-presente","I segnali che il problema è già presente",[25,3091,3092],{},"Puoi capirlo senza analisi complesse. Se quando qualcosa si rompe in produzione viene sempre cercata la stessa persona, se durante le sue ferie il team rallenta visibilmente, se esistono parti del sistema che nessun altro ha mai toccato e se le code review sono poco incisive perché solo uno \"capisce davvero\", allora il problema è già presente. Lo stesso vale quando le decisioni architetturali passano quasi sempre da una sola testa. Se ti riconosci in più di uno di questi segnali, probabilmente il bus factor è molto basso: è un effetto di come è organizzato il lavoro.",[43,3094,3096],{"id":3095},"come-alzare-il-bus-factor-senza-ingrandire-il-team","Come alzare il bus factor senza ingrandire il team",[25,3098,3099,3100,3103],{},"Serve distribuire la conoscenza: ",[146,3101,3102],{"href":1513},"aggiungere sviluppatori"," cambia poco se il sapere resta concentrato.",[1686,3105,3107],{"id":3106},"pair-programming-mirato","Pair programming mirato",[25,3109,3110],{},"Le parti critiche del sistema devono essere lavorate da almeno due persone. È il modo più rapido per trasferire la conoscenza tacita, quella che non finisce nei documenti e che spesso vale più di qualsiasi wiki.",[1686,3112,3114],{"id":3113},"code-review-fatte-davvero","Code review fatte davvero",[25,3116,3117],{},"La review serve ad assicurarsi che qualcun altro capisca cosa è stato fatto e perché. Se il reviewer non è in grado di spiegare la modifica, la review non ha ancora prodotto il suo effetto.",[1686,3119,3121],{"id":3120},"documentare-le-decisioni-non-il-codice","Documentare le decisioni, non il codice",[25,3123,3124,3125,3127],{},"La documentazione utile non commenta ogni riga di codice. Registra soprattutto ",[29,3126,692],{}," sono state prese certe decisioni. Gli ADR, cioè brevi documenti che spiegano una decisione architetturale e le sue ragioni, funzionano bene proprio per questo.",[1686,3129,3131],{"id":3130},"rotazione-sulle-aree-sensibili","Rotazione sulle aree sensibili",[25,3133,3134],{},"Se un componente è sempre gestito dalla stessa persona, la prossima modifica dovrebbe farla qualcun altro con il suo supporto. All'inizio si procede più lentamente, ma nel tempo si costruisce una base molto più solida.",[1686,3136,3138],{"id":3137},"momenti-regolari-di-knowledge-sharing","Momenti regolari di knowledge sharing",[25,3140,3141],{},"Sessioni brevi e frequenti, con il codice aperto e il contesto raccontato a voce, aiutano a distribuire conoscenza in modo naturale. È il classico knowledge sharing, cioè la condivisione pratica di ciò che il team sa già. Non serve trasformarle in cerimonie: basta renderle regolari.",[43,3143,3145],{"id":3144},"il-vero-nodo-è-culturale","Il vero nodo è culturale",[25,3147,3148],{},"Molte aziende premiano chi risolve emergenze, non chi previene la dipendenza dalla singola persona. Il developer che sistema un bug di notte è visto come un eroe, quello che investe tempo nel condividere conoscenza sembra “meno produttivo”, e questo incentivo porta naturalmente a un bus factor basso. Se vuoi davvero ridurre il rischio, la condivisione di conoscenza deve diventare una priorità esplicita, non un’attività secondaria.",[43,3150,3152],{"id":3151},"è-questione-di-gestione-del-rischio","È questione di gestione del rischio",[25,3154,3155],{},"Gestire il bus factor significa trattare la conoscenza come un asset critico dell’azienda, esattamente come fai con i dati o con le infrastrutture.",[25,3157,3158],{},"Il miglior developer fa in modo che il team possa andare avanti anche senza di lui, più che accumulare conoscenza su di sé.",{"title":212,"searchDepth":213,"depth":213,"links":3160},[3161,3162,3163,3164,3171,3172],{"id":3053,"depth":213,"text":3054},{"id":3072,"depth":213,"text":3073},{"id":3088,"depth":213,"text":3089},{"id":3095,"depth":213,"text":3096,"children":3165},[3166,3167,3168,3169,3170],{"id":3106,"depth":1768,"text":3107},{"id":3113,"depth":1768,"text":3114},{"id":3120,"depth":1768,"text":3121},{"id":3130,"depth":1768,"text":3131},{"id":3137,"depth":1768,"text":3138},{"id":3144,"depth":213,"text":3145},{"id":3151,"depth":213,"text":3152},"2026-03-03","Bus factor: cosa misura, perché un bus factor vicino a 1 è un rischio serio, e come distribuire la conoscenza critica nel team senza rallentare lo sviluppo.","/images/blog/bus-factor-developer-indispensabile.jpg",{},"/blog/2026-03-03-bus-factor-developer-indispensabile",{"title":3042,"description":3174},"Bus factor nel team dev: cos'è e come ridurlo","bus-factor-developer-indispensabile","blog/2026-03-03-bus-factor-developer-indispensabile",[669,1035,3183,12,1037],"knowledge-sharing","GEPqfz_JiMojXP8A8oMRiIn2D2DguAqwp40wHrNCJXU",{"id":3186,"title":3187,"body":3188,"category":13,"date":3307,"description":3308,"extension":225,"image":3309,"meta":3310,"navigation":3,"path":3311,"published":3,"seo":3312,"seoTitle":3313,"slug":3314,"stem":3315,"tags":3316,"updated":240,"__hash__":3319},"blog/blog/2026-02-26-ogni-interruzione-costa-23-minuti.md","Ogni interruzione costa 23 minuti. Fai il conto a fine giornata",{"type":22,"value":3189,"toc":3299},[3190,3196,3199,3203,3225,3229,3239,3254,3258,3261,3265,3268,3271,3274,3278,3289,3293,3296],[25,3191,3192,3195],{},[29,3193,3194],{},"Call alle 10:30. Messaggio Slack alle 11:15. \"Scusa, una domanda veloce\" alle 11:45. Call di allineamento alle 14:00. Messaggio del cliente alle 15:20. Un'altra domanda alle 16:00."," Il costo delle interruzioni per gli sviluppatori è enorme, ma quasi mai misurato.",[25,3197,3198],{},"Il tuo sviluppatore ha avuto 8 ore di giornata lavorativa. Di quelle 8 ore, quante sono state davvero di lavoro concentrato e continuo? Questo non è un articolo sulla produttività personale: è un articolo sul costo economico delle interruzioni — un costo che non appare in nessun budget ma che spesso incide più di un’assunzione.",[43,3200,3202],{"id":3201},"la-ricerca-23-minuti-non-sono-unopinione","La ricerca: 23 minuti non sono un’opinione",[25,3204,3205,3206,3209,3210,3218,3219,3224],{},"Gloria Mark, ricercatrice all’Università della California Irvine, ha studiato per anni l’impatto delle interruzioni sul lavoro cognitivo complesso. Il risultato medio osservato: dopo un’interruzione servono ",[29,3207,3208],{},"circa 23 minuti"," per tornare al livello di concentrazione precedente (",[146,3211,3217],{"href":3212,"rel":3213,"target":3216},"https://ics.uci.edu/~gmark/CHI2005.pdf",[3214,3215],"nofollow","noopener","_blank","studio 2005",", ",[146,3220,3223],{"href":3221,"rel":3222,"target":3216},"https://ics.uci.edu/~gmark/chi08-mark.pdf",[3214,3215],"studio 2008","). Non perché serva tempo a “ripartire”, ma perché lo sviluppo software richiede di mantenere un modello mentale complesso: struttura del sistema, flusso del codice, dipendenze, stato del problema. Una notifica può interrompere questo equilibrio, e ricostruirlo richiede tempo.",[43,3226,3228],{"id":3227},"il-conto-economico-che-raramente-si-fa","Il conto economico che raramente si fa",[25,3230,3231,3232,3235,3236,116],{},"Una “domanda veloce” di 3 minuti non costa 3 minuti: costa circa ",[29,3233,3234],{},"26 minuti",", 3 di interruzione più 23 di recupero. Una call di 30 minuti non costa 30 minuti, ne costa più di 50. Con 5 interruzioni al giorno — un numero realistico in molti team — il costo supera facilmente le ",[29,3237,3238],{},"2 ore",[25,3240,3241,3242,3245,3246,3249,3250,3253],{},"In una settimana sono circa ",[29,3243,3244],{},"10 ore",". In un mese, circa ",[29,3247,3248],{},"40 ore",": l’equivalente di una settimana di lavoro. In un team di 4 persone, è come perdere uno sviluppatore a tempo pieno, ogni mese, senza accorgersene. E ",[146,3251,3252],{"href":1513},"aggiungere persone non risolve il problema"," se il modo di lavorare resta lo stesso.",[43,3255,3257],{"id":3256},"perché-le-interruzioni-a-metà-mattina-sono-le-peggiori","Perché le interruzioni a metà mattina sono le peggiori",[25,3259,3260],{},"Molti sviluppatori iniziano a essere davvero produttivi solo dopo i primi 30–45 minuti della giornata, quando hanno ricostruito il contesto del lavoro lasciato il giorno prima. Interrompere questo momento con una call o una richiesta urgente spezza proprio la fase di massima produttività: non si perde solo il tempo della riunione, ma l’intera finestra di lavoro che la precedeva e quella che serve per rientrare nel flusso.",[43,3262,3264],{"id":3263},"tre-regole-operative-che-cambiano-tutto","Tre regole operative che cambiano tutto",[25,3266,3267],{},"La prima regola è creare finestre di comunicazione. Call e riunioni andrebbero raggruppate in momenti precisi della giornata, come l’inizio, la fine della mattina, l’inizio del pomeriggio o la chiusura della giornata. Il punto è evitare il centro dei blocchi di lavoro. Se devi interrompere il flusso, fallo quando il flusso non è ancora iniziato o sta per finire.",[25,3269,3270],{},"La seconda regola è proteggere blocchi di lavoro veri, da due o tre ore consecutive senza interruzioni reali. Niente call, niente “domande veloci”, niente richieste sincrone. La differenza tra tre ore continue e tre ore spezzettate è enorme: spesso coincide con la differenza tra completare una feature o limitarsi ad avviarla.",[25,3272,3273],{},"La terza regola è usare la comunicazione asincrona come impostazione predefinita. La maggior parte delle richieste può aspettare qualche ora. Come urgenti andrebbero trattati solo i blocchi operativi reali o gli incidenti veri. Se puoi aspettare senza fermare il lavoro altrui, scrivi un messaggio e lascia che lo sviluppatore risponda quando esce dal flusso.",[43,3275,3277],{"id":3276},"segnali-che-il-tuo-team-è-troppo-interrotto","Segnali che il tuo team è troppo interrotto",[25,3279,3280,3281,3284,3285,3288],{},"I segnali sono abbastanza chiari: il lavoro vero si sposta la sera o nel weekend, ",[146,3282,3283],{"href":312},"le stime sembrano sempre sforare",", tutti appaiono occupati tutto il giorno ma le feature avanzano poco, e gli sviluppatori migliori iniziano a mostrare frustrazione o burnout, proprio mentre ",[146,3286,3287],{"href":2159},"trovarli è già abbastanza difficile",". In questi casi il problema raramente è la capacità del team; molto più spesso è il tempo reale di concentrazione che gli viene lasciato.",[43,3290,3292],{"id":3291},"proteggi-il-deep-work-come-proteggi-il-budget","Proteggi il deep work come proteggi il budget",[25,3294,3295],{},"Il tempo di concentrazione del team tecnico è una risorsa limitata e preziosa. Qui il concetto utile è il deep work, cioè il lavoro profondo e continuativo senza interruzioni: ogni riunione evitabile, ogni richiesta non urgente, ogni notifica superflua erode quella risorsa.",[25,3297,3298],{},"Le aziende che consegnano più velocemente non hanno necessariamente team più grandi o più talentuosi. Hanno team che riescono a lavorare in modo concentrato per più ore al giorno. La differenza tra 2 ore di lavoro profondo e 5 ore di lavoro profondo al giorno cambia radicalmente la velocità di avanzamento di un progetto.",{"title":212,"searchDepth":213,"depth":213,"links":3300},[3301,3302,3303,3304,3305,3306],{"id":3201,"depth":213,"text":3202},{"id":3227,"depth":213,"text":3228},{"id":3256,"depth":213,"text":3257},{"id":3263,"depth":213,"text":3264},{"id":3276,"depth":213,"text":3277},{"id":3291,"depth":213,"text":3292},"2026-02-26","Il costo delle interruzioni per gli sviluppatori è enorme: 23 minuti di concentrazione persa ogni volta. Con 5 al giorno perdi 2 ore. Ecco come ridurle.","/images/blog/ogni-interruzione-costa-23-minuti.jpg",{},"/blog/2026-02-26-ogni-interruzione-costa-23-minuti",{"title":3187,"description":3308},"Costo interruzioni sviluppatori: 23 minuti persi ogni volta","ogni-interruzione-costa-23-minuti","blog/2026-02-26-ogni-interruzione-costa-23-minuti",[669,3317,840,3318,238],"produttivita","startup","aUL4NbPr-ABo29AJ1-iM8L0TgVy8STO78iE32sDGtBg",{"id":3321,"title":3322,"body":3323,"category":13,"date":3432,"description":3433,"extension":225,"image":3434,"meta":3435,"navigation":3,"path":3436,"published":3,"seo":3437,"seoTitle":3438,"slug":3439,"stem":3440,"tags":3441,"updated":240,"__hash__":3442},"blog/blog/2026-02-17-aggiungere-sviluppatori-progetto.md","Aggiungere sviluppatori a un progetto in ritardo: perché rallenta",{"type":22,"value":3324,"toc":3420},[3325,3330,3336,3340,3343,3346,3350,3354,3357,3361,3364,3368,3374,3378,3381,3385,3392,3396,3399,3406,3410,3417],[25,3326,3327],{},[29,3328,3329],{},"Il progetto è in ritardo. La deadline si avvicina. Il cliente preme. La reazione istintiva è spesso la stessa: aggiungere sviluppatori al progetto. Sembra logica elementare — più persone, più velocità. Nel software, però, l'effetto è spesso diverso da quello atteso.",[25,3331,3332,3333,3335],{},"Frederick Brooks lo descrisse già nel 1975 in ",[971,3334,1516],{},", un testo ancora molto citato nell'ingegneria del software. A distanza di decenni, il problema che descriveva è ancora attuale.",[43,3337,3339],{"id":3338},"il-mito-del-mese-uomo","Il mito del mese-uomo",[25,3341,3342],{},"Il ragionamento sembra semplice: se uno sviluppatore completa un progetto in 12 mesi, dodici sviluppatori lo completeranno in un mese.",[25,3344,3345],{},"Questa logica funziona quando le attività sono completamente indipendenti e non richiedono coordinamento. Nel software, questa condizione è rara. Il codice ha dipendenze, i moduli si intrecciano e le decisioni di uno sviluppatore influenzano il lavoro degli altri. Ogni persona aggiunta al team deve comprendere il contesto, coordinarsi con gli altri e allinearsi alle scelte fatte in precedenza.",[43,3347,3349],{"id":3348},"perché-aggiungere-persone-può-rallentare","Perché aggiungere persone può rallentare",[1686,3351,3353],{"id":3352},"la-comunicazione-cresce-rapidamente","La comunicazione cresce rapidamente",[25,3355,3356],{},"Se hai 3 sviluppatori, i canali di comunicazione sono pochi. Con 6 aumentano in modo significativo. Con 10 o più, il tempo speso in allineamenti e coordinamento diventa una parte rilevante della giornata. Ogni persona aggiunta non porta solo capacità produttiva, ma aumenta la necessità di sincronizzazione: riunioni, messaggi, code review, chiarimenti.",[1686,3358,3360],{"id":3359},"lonboarding-ha-un-costo","L'onboarding ha un costo",[25,3362,3363],{},"Uno sviluppatore nuovo non è produttivo dal primo giorno. Deve comprendere il codebase, cioè l’insieme del codice e delle convenzioni del progetto, l'architettura e le motivazioni dietro molte scelte. Questo richiede tempo sia a lui sia al team esistente, e nelle prime settimane il contributo netto può essere molto limitato.",[1686,3365,3367],{"id":3366},"la-conoscenza-implicita-non-si-trasferisce-facilmente","La conoscenza implicita non si trasferisce facilmente",[25,3369,3370,3371,3373],{},"In molti progetti, una parte importante delle decisioni non è documentata, ma vive nell'esperienza del team. È il classico problema del ",[146,3372,585],{"href":584},": se chi sa come funziona il sistema non è disponibile, i nuovi non hanno modo di colmare il gap velocemente.",[43,3375,3377],{"id":3376},"uno-scenario-tipico","Uno scenario tipico",[25,3379,3380],{},"Un team di 4 sviluppatori lavora a un prodotto. Il cliente chiede di anticipare la consegna e il team viene ampliato a 10 persone. Nelle prime settimane, i membri più esperti dedicano molto tempo all'onboarding. Successivamente, aumentano le necessità di coordinamento, le code review si allungano e il flusso di lavoro diventa più complesso. Il beneficio in termini di velocità può arrivare solo dopo mesi, quando ormai il vantaggio temporale inizialmente cercato si è ridotto.",[43,3382,3384],{"id":3383},"le-cause-reali-dei-ritardi","Le cause reali dei ritardi",[25,3386,3387,3388,3391],{},"Quando un progetto è in ritardo, raramente la causa è semplicemente il numero di persone. Più spesso entrano in gioco requisiti che cambiano nel tempo, ",[146,3389,3390],{"href":312},"stime iniziali poco realistiche",", debito tecnico che rallenta lo sviluppo e colli di bottiglia architetturali. Aggiungere persone non risolve direttamente nessuno di questi problemi.",[43,3393,3395],{"id":3394},"cosa-fare-invece","Cosa fare invece",[25,3397,3398],{},"Se la deadline non si può spostare, spesso è più efficace ridurre lo scope e rivedere il perimetro delle funzionalità davvero necessarie al rilascio. In parallelo conviene chiedere al team cosa sta rallentando il lavoro, perché molto spesso emergono ostacoli più semplici da rimuovere di quanto sembri: pipeline lente, ambienti instabili, code review bloccate.",[25,3400,3401,3402,3405],{},"Conta anche ridurre le interruzioni. ",[146,3403,3404],{"href":1303},"Meeting frequenti, cambi di priorità e richieste urgenti"," abbassano in modo significativo la produttività del team. Se poi è davvero necessario ampliare il gruppo, è meglio farlo in modo mirato, su attività ben isolate e con competenze specifiche, così da limitare l’impatto sul resto del progetto.",[43,3407,3409],{"id":3408},"la-lezione-di-brooks-oggi","La lezione di Brooks, oggi",[25,3411,3412,3413,3416],{},"La frase di Brooks — ",[971,3414,3415],{},"\"Adding manpower to a late software project makes it later\""," — resta valida come principio generale. In molti casi, un team piccolo, ben coordinato e con poche interruzioni riesce a mantenere una velocità più costante rispetto a un team numeroso che passa gran parte del tempo a coordinarsi.",[25,3418,3419],{},"La domanda utile, quando un progetto è in ritardo, non è \"quante persone servono in più?\", ma \"cosa sta rallentando il team attuale?\".",{"title":212,"searchDepth":213,"depth":213,"links":3421},[3422,3423,3428,3429,3430,3431],{"id":3338,"depth":213,"text":3339},{"id":3348,"depth":213,"text":3349,"children":3424},[3425,3426,3427],{"id":3352,"depth":1768,"text":3353},{"id":3359,"depth":1768,"text":3360},{"id":3366,"depth":1768,"text":3367},{"id":3376,"depth":213,"text":3377},{"id":3383,"depth":213,"text":3384},{"id":3394,"depth":213,"text":3395},{"id":3408,"depth":213,"text":3409},"2026-02-17","Aggiungere sviluppatori a un progetto in ritardo spesso lo rallenta. La Legge di Brooks e cosa fare invece per rispettare le deadline.","/images/blog/aggiungere-sviluppatori-progetto.jpg",{},"/blog/2026-02-17-aggiungere-sviluppatori-progetto",{"title":3322,"description":3433},"Aggiungere sviluppatori al progetto: perché rallenta","aggiungere-sviluppatori-progetto","blog/2026-02-17-aggiungere-sviluppatori-progetto",[669,840,3318,3317,6],"Z-9VeNX_hG0364kVimA9mCuO8olyPzQPdW42RCr3kys",{"id":3444,"title":3445,"body":3446,"category":13,"date":3554,"description":3555,"extension":225,"image":3556,"meta":3557,"navigation":3,"path":3558,"published":3,"seo":3559,"seoTitle":3560,"slug":3561,"stem":3562,"tags":3563,"updated":240,"__hash__":3568},"blog/blog/2026-02-12-ai-impatto-business-software.md","AI nello sviluppo software: cosa cambia per chi guida un'azienda",{"type":22,"value":3447,"toc":3545},[3448,3453,3457,3460,3463,3467,3478,3485,3489,3492,3495,3501,3505,3508,3511,3515,3522,3525,3528,3532,3535,3538,3542],[25,3449,3450],{},[29,3451,3452],{},"L'AI nello sviluppo software sta portando un cambiamento nel modo in cui si lavora e si prendono decisioni, ben oltre un semplice aggiornamento degli strumenti. Se guidi un'azienda o un prodotto digitale, questo riguarda direttamente budget, tempi e competitività.",[43,3454,3456],{"id":3455},"il-software-non-costa-più-quello-che-pensi","Il software non costa più quello che pensi",[25,3458,3459],{},"Fino a poco tempo fa, sviluppare un'applicazione web custom significava settimane di analisi, sprint di sviluppo, code review, bug fixing. Anche un progetto relativamente semplice poteva richiedere mesi e budget significativi. Oggi questo scenario sta cambiando rapidamente.",[25,3461,3462],{},"Gli strumenti basati su intelligenza artificiale stanno riducendo in modo sensibile i tempi di sviluppo. Attività che prima richiedevano ore o giorni oggi possono essere accelerate in modo consistente. Il risultato è codice funzionante, testabile e integrabile in un progetto reale — ben oltre il semplice prototipo.",[43,3464,3466],{"id":3465},"ma-allora-il-software-costerà-meno","Ma allora il software costerà meno?",[25,3468,3469,3470,3473,3474,3477],{},"In parte sì, ma la questione è più articolata. Il costo dell'",[29,3471,3472],{},"esecuzione"," — scrivere codice, implementare una API, cioè un punto di accesso con cui un sistema parla con un altro, costruire un'interfaccia — si sta riducendo. Gli ",[146,3475,3476],{"href":148},"strumenti AI sono un forte moltiplicatore di produttività"," per chi sa integrarli nel proprio flusso di lavoro.",[25,3479,3480,3481,3484],{},"Il costo della ",[29,3482,3483],{},"decisione"," — capire cosa costruire, per chi, con quale architettura, con quali vincoli — non si è ridotto. In alcuni casi, è diventato ancora più rilevante. Quando costruire diventa più semplice, scegliere cosa costruire diventa il vero elemento differenziante. Se la costruzione diventa più veloce, il valore si sposta verso la progettazione e la visione.",[43,3486,3488],{"id":3487},"la-trappola-del-tanto-costa-poco","La trappola del \"tanto costa poco\"",[25,3490,3491],{},"Qui c'è un rischio concreto per chi gestisce un'azienda. Se il software sembra costare meno e svilupparsi più velocemente, la tentazione è pensare: \"Bene, allora facciamolo fare al più economico\". È una scorciatoia che può diventare costosa nel medio periodo.",[25,3493,3494],{},"Un progetto sviluppato rapidamente con l'AI ma senza una visione architetturale solida rischia di funzionare oggi e diventare difficile da mantenere domani. L'AI è molto efficace nell'implementare, ma non conosce il tuo business, i tuoi vincoli organizzativi e il contesto in cui quel software dovrà evolvere nel tempo.",[25,3496,3497,3498,3500],{},"I problemi emergono spesso dopo alcuni mesi, quando il sistema deve crescere, integrarsi con altri strumenti, o adattarsi a requisiti che cambiano. E a quel punto, la tentazione di ",[146,3499,2502],{"href":1100}," diventa fortissima.",[43,3502,3504],{"id":3503},"il-vero-cambio-di-paradigma-dal-codice-al-prodotto","Il vero cambio di paradigma: dal codice al prodotto",[25,3506,3507],{},"Se sviluppare software diventa più economico e veloce, si apre un'opportunità significativa per chi ha idee e capacità di visione. Problemi che prima non aveva senso risolvere con il software — perché il rapporto costo-beneficio non era favorevole — ora diventano affrontabili.",[25,3509,3510],{},"Processi gestiti manualmente, nicchie di mercato troppo piccole per giustificare un investimento importante, idee rimaste in sospeso per motivi di budget: oggi questi scenari possono essere rivisti.",[43,3512,3514],{"id":3513},"cosa-cambia-per-chi-decide","Cosa cambia per chi decide",[25,3516,3517,3518,3521],{},"Per chi guida l'azienda, il software smette di essere solo un centro di costo e diventa un elemento strategico molto più accessibile. Il costo di sperimentare si è ridotto: testare un'idea, validare un mercato, lanciare un ",[146,3519,3520],{"href":288},"MVP"," oggi richiede meno tempo e meno risorse rispetto a pochi anni fa.",[25,3523,3524],{},"Per chi guida il prodotto, invece, aumenta il peso delle priorità e dei requisiti. In un contesto in cui il codice si scrive più in fretta, la vera leva sta nel decidere cosa scrivere e perché. È lì che si crea o si distrugge valore.",[25,3526,3527],{},"Se infine stai valutando un fornitore di sviluppo software, conviene andare oltre il costo orario e la velocità di consegna. La domanda più importante è se quel team capisce il tuo business, sa farti le domande giuste e possiede una visione che va oltre la singola funzionalità.",[43,3529,3531],{"id":3530},"una-nuova-fase-della-digitalizzazione","Una nuova fase della digitalizzazione",[25,3533,3534],{},"La trasformazione digitale non è finita. Anzi, l'adozione di strumenti AI nello sviluppo software sta rendendo possibile affrontare progetti che prima non erano sostenibili economicamente.",[25,3536,3537],{},"Nei prossimi anni vedremo molte più soluzioni digitali verticali, strumenti su misura e automazioni in contesti dove oggi si lavora ancora in modo manuale. Non perché la tecnologia non esistesse, ma perché ora il costo di realizzazione è più allineato al valore generato.",[43,3539,3541],{"id":3540},"il-momento-è-questo","Il momento è questo",[25,3543,3544],{},"L'AI non sostituisce la capacità di progettare bene un sistema. Rende più veloce la parte esecutiva, ma aumenta l'importanza delle scelte iniziali. La differenza continua a farla la qualità delle decisioni, non la quantità di codice scritto.",{"title":212,"searchDepth":213,"depth":213,"links":3546},[3547,3548,3549,3550,3551,3552,3553],{"id":3455,"depth":213,"text":3456},{"id":3465,"depth":213,"text":3466},{"id":3487,"depth":213,"text":3488},{"id":3503,"depth":213,"text":3504},{"id":3513,"depth":213,"text":3514},{"id":3530,"depth":213,"text":3531},{"id":3540,"depth":213,"text":3541},"2026-02-12","L'AI riduce il costo di sviluppo software, ma aumenta il peso delle decisioni. Cosa cambia per chi guida un'azienda: budget, scelta dei fornitori, priorità.","/images/blog/ai-impatto-business-software.jpg",{},"/blog/2026-02-12-ai-impatto-business-software",{"title":3445,"description":3555},"AI nello sviluppo software: cosa cambia per il business","ai-impatto-business-software","blog/2026-02-12-ai-impatto-business-software",[3564,3565,3566,386,3567],"ai-business","costi-sviluppo","decisioni-tecniche","strategia-digitale","uCAn9iJfNhT_pmal5zEanMEYeKutLrR-ycAR2mQdOfk",{"id":3570,"title":3571,"body":3572,"category":13,"date":3754,"description":3755,"extension":225,"image":3756,"meta":3757,"navigation":3,"path":3758,"published":3,"seo":3759,"seoTitle":3760,"slug":3761,"stem":3762,"tags":3763,"updated":240,"__hash__":3765},"blog/blog/2026-02-03-cos-e-un-mvp-software.md","Cos'è un MVP software: significato, esempi e come farlo bene",{"type":22,"value":3573,"toc":3742},[3574,3579,3582,3586,3600,3607,3618,3622,3630,3633,3636,3639,3643,3647,3650,3653,3657,3660,3667,3671,3678,3685,3689,3692,3695,3703,3706,3710,3717,3722,3725,3729,3736,3739],[25,3575,3576],{},[29,3577,3578],{},"\"È solo un MVP.\" Questa frase è diventata, in molti casi, una giustificazione per rilasciare software con qualità discutibile. Pagine che caricano in 8 secondi? MVP. Bug nei flussi principali? MVP. Interfaccia che confonde gli utenti? MVP. Come se aggiungere \"minimum viable\" davanti a \"product\" rendesse accettabile un prodotto che non funziona.",[25,3580,3581],{},"Il concetto di MVP software, cioè la versione più piccola di un prodotto che abbia comunque senso usare, è stato uno dei contributi più importanti alla cultura startup. Ed è anche uno dei più fraintesi. Fraintenderlo non è solo un errore teorico — è un errore che brucia soldi, utenti, e credibilità.",[43,3583,3585],{"id":3584},"cosa-significa-davvero-mvp","Cosa significa davvero MVP",[25,3587,3588,3589,3592,3593,3596,3597,116],{},"Eric Ries, che ha reso popolare il termine, lo definisce come il prodotto con il ",[29,3590,3591],{},"minimo set di feature"," che permette di raccogliere il ",[29,3594,3595],{},"massimo di apprendimento validato"," con il ",[29,3598,3599],{},"minimo sforzo",[25,3601,3602,3603,3606],{},"La parola chiave è ",[29,3604,3605],{},"viable",". Non minimum. Viable. Il prodotto deve funzionare. Deve risolvere un problema reale per un utente reale. Deve farlo in modo affidabile.",[25,3608,3609,3610,3613,3614,3617],{},"\"Minimum\" si riferisce allo ",[29,3611,3612],{},"scope",", non alla ",[29,3615,3616],{},"qualità",". Fai poche cose, ma falle bene. Un'app che fa una sola cosa perfettamente è un MVP. Un'app che fa dieci cose tutte male difficilmente può essere considerata un MVP: è più simile a un prototipo portato in produzione troppo presto.",[43,3619,3621],{"id":3620},"come-si-riconosce-un-falso-mvp","Come si riconosce un falso MVP",[25,3623,3624,3625,3629],{},"Un falso MVP di solito si riconosce subito. È lento: se la tua web app ci mette più di tre secondi a caricare, stai testando la pazienza degli utenti più che l’idea. Per chi la usa non esiste la distinzione tra “è lento perché è un MVP” ed “è lento perché è fatto male”. Esiste solo la lentezza, e quindi l’abbandono. Per questo le performance fanno parte del “viable”: una ",[146,3626,3628],{"href":3627},"/blog/web-app-lenta-problema-database","web app lenta"," difficilmente può esserlo davvero.",[25,3631,3632],{},"Un falso MVP ha anche bug nei flussi principali. Se il tuo tool di prenotazione fallisce una volta su cinque, non stai validando il valore della tua idea, ma solo la tolleranza degli utenti agli errori. Le feature secondarie possono mancare, ma quelle presenti devono funzionare.",[25,3634,3635],{},"Spesso poi nessuno capisce cosa fa. Se gli utenti arrivano e in dieci secondi non capiscono a cosa serve e come si usa, il problema è l’esperienza confusa. Un MVP con una sola funzionalità chiara vale più di un prodotto pieno di parti incomprensibili.",[25,3637,3638],{},"Infine c’è la formula “lo miglioriamo dopo”, che di solito è solo il nome elegante di un debito tecnico che non verrà mai ripagato. Dopo arriverà sempre qualcos’altro. Se non hai il tempo di farlo bene adesso, difficilmente lo troverai in seguito.",[43,3640,3642],{"id":3641},"il-costo-reale-di-un-mvp-di-bassa-qualità","Il costo reale di un MVP di bassa qualità",[1686,3644,3646],{"id":3645},"bruci-i-primi-utenti","Bruci i primi utenti",[25,3648,3649],{},"I primi utenti sono i più preziosi. Sono quelli che ti hanno dato fiducia prima che tu avessi credibilità. Sono quelli che ti danno feedback onesto. Sono quelli che, se soddisfatti, diventano evangelisti del tuo prodotto.",[25,3651,3652],{},"Se il tuo MVP li accoglie con bug, lentezza e confusione, non torneranno. E non ti diranno perché — spariranno silenziosamente. Peggio: diranno ad altri di non provare il tuo prodotto. Il passaparola negativo tende a diffondersi più velocemente di quello positivo.",[1686,3654,3656],{"id":3655},"i-dati-che-raccogli-non-valgono-nulla","I dati che raccogli non valgono nulla",[25,3658,3659],{},"Lo scopo dell'MVP è imparare. Ma cosa impari da un prodotto che non funziona? Se gli utenti abbandonano perché la pagina è lenta, non hai validato che l'idea non funziona — hai validato che un prodotto rotto non piace a nessuno.",[25,3661,3662,3663,3666],{},"Per raccogliere dati validi, il prodotto deve funzionare abbastanza bene da far sì che le decisioni degli utenti riflettano ",[29,3664,3665],{},"il valore della tua idea",", non la qualità dell'implementazione.",[1686,3668,3670],{"id":3669},"accumuli-debito-dal-giorno-zero","Accumuli debito dal giorno zero",[25,3672,3673,3674,3677],{},"Un MVP scritto in fretta e senza struttura diventa la base su cui costruisci tutto il resto. Ogni feature successiva si appoggia su fondamenta fragili. ",[146,3675,3676],{"href":148},"Il debito tecnico si accumula"," prima ancora di aver validato l'idea.",[25,3679,3680,3681,3684],{},"Se l'idea funziona, ti trovi a dover ",[146,3682,3683],{"href":1100},"riscrivere"," tutto dopo sei mesi. Se non funziona, hai sprecato lo stesso tempo che avresti sprecato facendolo bene — perché spesso la differenza di tempo tra un MVP fatto bene e uno fatto male è molto più legata allo scope che alla qualità del codice.",[43,3686,3688],{"id":3687},"come-fare-un-mvp-vero","Come fare un MVP vero",[25,3690,3691],{},"La regola di base è tagliare feature, non qualità. Siediti con il team, fai la lista di tutto ciò che il prodotto “dovrebbe” avere e poi elimina quasi tutto. Tieni solo quello che serve a rispondere alla domanda più importante per il business in quel momento. Se la domanda è “gli utenti pagheranno per prenotare lezioni online?”, allora bastano registrazione, pagamento e prenotazione. Chat, recensioni, programma fedeltà, analytics e notifiche possono aspettare.",[25,3693,3694],{},"Prima ancora di scrivere codice, però, conviene definire cosa vuoi imparare. Una frase semplice del tipo “Con questo MVP vogliamo capire se…” basta a guidare tutte le scelte di scope. Ogni feature proposta andrebbe giudicata in base a quella domanda.",[25,3696,3697,3698,3702],{},"Ci sono poi fondamenta che non conviene tagliare: performance, sicurezza, affidabilità dei flussi principali e una struttura del codice che permetta di evolvere senza ricominciare da capo. Non serve un’architettura enterprise, ma serve un ",[146,3699,3701],{"href":3700},"/blog/monolite-vs-microservizi","monolite ben strutturato",", con codice pulito, test sui flussi critici e un database che risponda in tempi ragionevoli.",[25,3704,3705],{},"Infine, un MVP ha bisogno di un limite temporale. Datti un timebox chiaro: per esempio quattro settimane, al termine delle quali si rilascia quello che si è riusciti a completare bene. Se in quel tempo non sei riuscito a costruire abbastanza per validare l’idea, probabilmente l’idea stessa è troppo complessa per un MVP.",[43,3707,3709],{"id":3708},"la-differenza-tra-un-mvp-e-un-prototipo","La differenza tra un MVP e un prototipo",[25,3711,3712,3713,3716],{},"Un ",[29,3714,3715],{},"prototipo"," è un esperimento interno. Serve a esplorare un'idea, capire la fattibilità tecnica e mostrare qualcosa agli stakeholder. Può essere brutto, fragile, incompleto. Non va in produzione.",[25,3718,3712,3719,3721],{},[29,3720,3520],{}," va in produzione, viene usato da persone reali e le loro decisioni influenzano il futuro del tuo business. Per questo deve funzionare.",[25,3723,3724],{},"Se quello che hai in produzione è un prototipo che hai chiamato MVP per giustificarne la qualità, sii onesto con te stesso. O lo trasformi in un prodotto viable, o lo chiami quello che è.",[43,3726,3728],{"id":3727},"minimum-viable-non-è-minimum-effort","Minimum viable non è minimum effort",[25,3730,3731,3732,3735],{},"Lo scope minimo non implica lo sforzo minimo. Implica lo sforzo ",[29,3733,3734],{},"focalizzato",". Tutta l'energia del team concentrata su poche cose fatte bene, invece di tante cose fatte male.",[25,3737,3738],{},"I migliori MVP che ho visto facevano una sola cosa. Ma la facevano in modo impeccabile: veloce, affidabile, chiaro. Gli utenti non si chiedevano “cos’altro dovrebbe fare”, ma “dove firmo per pagare”.",[25,3740,3741],{},"Quello è un MVP. Tutto il resto rischia di essere una scorciatoia che nel medio periodo si paga.",{"title":212,"searchDepth":213,"depth":213,"links":3743},[3744,3745,3746,3751,3752,3753],{"id":3584,"depth":213,"text":3585},{"id":3620,"depth":213,"text":3621},{"id":3641,"depth":213,"text":3642,"children":3747},[3748,3749,3750],{"id":3645,"depth":1768,"text":3646},{"id":3655,"depth":1768,"text":3656},{"id":3669,"depth":1768,"text":3670},{"id":3687,"depth":213,"text":3688},{"id":3708,"depth":213,"text":3709},{"id":3727,"depth":213,"text":3728},"2026-02-03","Cos'è un MVP software e come svilupparlo senza bruciare i primi utenti: significato reale di 'minimum viable product', esempi, principi di qualità e trappole.","/images/blog/cos-e-un-mvp-software.jpg",{},"/blog/2026-02-03-cos-e-un-mvp-software",{"title":3571,"description":3755},"MVP software: cos'è, significato, esempi pratici","cos-e-un-mvp-software","blog/2026-02-03-cos-e-un-mvp-software",[1951,3318,1787,3764,1145],"validazione-idea","vu6EFw8f9GsZwI5IrJFvDUy2U0uVBD8iX6bdttQbl5g",{"id":3767,"title":3768,"body":3769,"category":13,"date":3930,"description":3931,"extension":225,"image":3932,"meta":3933,"navigation":3,"path":3934,"published":3,"seo":3935,"seoTitle":3936,"slug":3937,"stem":3938,"tags":3939,"updated":240,"__hash__":3943},"blog/blog/2026-01-29-stime-sviluppo-sbagliate-perche.md","Stime di sviluppo software: perché sbagliano e come migliorare",{"type":22,"value":3770,"toc":3914},[3771,3777,3780,3784,3788,3795,3798,3802,3809,3812,3816,3819,3823,3827,3834,3841,3845,3852,3856,3859,3863,3870,3874,3877,3880,3887,3893,3897,3904,3908,3911],[25,3772,3773,3776],{},[29,3774,3775],{},"\"Quanto ci vuole?\" è la domanda più frequente che chi gestisce un prodotto fa al team di sviluppo."," Ed è anche la domanda a cui il team fatica a rispondere in modo davvero onesto, perché la risposta più corretta molto spesso sarebbe: \"dipende da ciò che scopriremo mentre lo facciamo\".",[25,3778,3779],{},"Le stime sviluppo software sono spesso imprecise. Non per caso — ma per motivi strutturali. E non perché il team è incompetente, pigro, o disonesto. Sono imprecise per motivi intrinseci al modo in cui funziona lo sviluppo software. Capire perché cambia completamente il modo in cui dovresti pianificare.",[43,3781,3783],{"id":3782},"perché-le-stime-funzionano-peggio-di-quanto-ci-aspettiamo","Perché le stime funzionano peggio di quanto ci aspettiamo",[1686,3785,3787],{"id":3786},"lo-sviluppo-software-è-ricerca-non-costruzione","Lo sviluppo software è ricerca, non costruzione",[25,3789,3790,3791,3794],{},"Quando costruisci una casa, sai quanti mattoni servono. Hai fatto case simili prima. I materiali hanno specifiche note. Le incognite sono poche e gestibili. Lo sviluppo software non funziona così. Ogni feature è diversa dalla precedente. Le incognite emergono ",[29,3792,3793],{},"durante"," lo sviluppo, non prima. L'integrazione con quel servizio esterno sembrava semplice nella documentazione ma ha tre casi limite non documentati. Il framework gestisce quel pattern in modo diverso da quello che il team si aspettava. Il requisito \"semplice\" nascondeva una complessità che nessuno poteva prevedere finché non ci si è messo le mani.",[25,3796,3797],{},"Chiedere una stima precisa per alcune attività di sviluppo software è più simile a un’attività di ricerca che a un lavoro ripetitivo. Può darti un'ipotesi ragionevole, ma le incognite sono l'essenza del lavoro.",[1686,3799,3801],{"id":3800},"leffetto-dellottimismo-strutturale","L'effetto dell'ottimismo strutturale",[25,3803,3804,3805,3808],{},"Gli sviluppatori, quando stimano, pensano allo ",[29,3806,3807],{},"scenario migliore",". Il percorso senza ostacoli. Il codice che funziona al primo tentativo. L'integrazione che va liscia. I test che passano subito. È come funziona il cervello umano con le stime, indipendentemente dall'onestà di chi stima. Si chiama planning fallacy, cioè la tendenza a sottostimare sistematicamente il tempo necessario, anche quando abbiamo già vissuto casi simili che hanno richiesto più tempo.",[25,3810,3811],{},"Il risultato: le stime del team sono quasi sempre il lower bound, non la media. Il tempo reale sarà tra 1.5x e 3x la stima, con una distribuzione asimmetrica verso l'alto. Raramente un task finisce in metà del tempo stimato, mentre è molto più comune che richieda molto più tempo del previsto, a volte anche il triplo.",[1686,3813,3815],{"id":3814},"i-requisiti-cambiano-quasi-sempre","I requisiti cambiano (quasi sempre)",[25,3817,3818],{},"Anche se la stima fosse perfetta al momento in cui viene fatta — e non lo è — i requisiti cambiano durante lo sviluppo. Il PM vede un prototipo e vuole una modifica. Chi guida l'azienda parla con un cliente e cambia priorità. Il designer nota un problema di UX e propone un'alternativa. Ogni cambio invalida la stima originale. E i cambi sono inevitabili: sono il segno che il team sta imparando man mano che il prodotto prende forma.",[43,3820,3822],{"id":3821},"cosa-fare-al-posto-delle-stime-tradizionali","Cosa fare al posto delle stime tradizionali",[1686,3824,3826],{"id":3825},"lavora-per-incrementi-piccoli","Lavora per incrementi piccoli",[25,3828,3829,3830,3833],{},"Invece di stimare un progetto di 3 mesi, chiediti: ",[29,3831,3832],{},"qual è la cosa più piccola che possiamo rilasciare in 1-2 settimane che ci dà informazioni utili?"," Non un prototipo incompleto. Una versione ridotta ma funzionante che un utente reale può usare. Poi, sulla base di quello che impari, pianifica il passo successivo.",[25,3835,3836,3837,3840],{},"Questo approccio non elimina l'incertezza. La rende ",[29,3838,3839],{},"gestibile",". Invece di una grande scommessa su una stima inevitabilmente incerta, fai piccole scommesse frequenti con feedback rapido.",[1686,3842,3844],{"id":3843},"usa-intervalli-non-numeri-singoli","Usa intervalli, non numeri singoli",[25,3846,3847,3848,3851],{},"Se proprio serve una stima, chiedi un intervallo: ",[29,3849,3850],{},"\"caso migliore, caso realistico, caso peggiore\"",". Il caso migliore è quello che il team ti dice spontaneamente. Il caso realistico è 2x. Il caso peggiore è 3-4x. Pianifica per il caso realistico, metti a budget il caso peggiore. Se va meglio del previsto, hai guadagnato tempo. Se va peggio, sei coperto.",[1686,3853,3855],{"id":3854},"misura-la-velocità-storica-non-le-stime-future","Misura la velocità storica, non le stime future",[25,3857,3858],{},"Dopo qualche mese di lavoro, il team avrà dati reali su quanto tempo richiedono diversi tipi di task. Usa quei dati. \"Task simili a questo in passato hanno richiesto tra 3 e 8 giorni\" è molto più affidabile di \"penso che ci vogliano 4 giorni\". Non è perfetto, ma è basato sulla realtà invece che sull'ottimismo.",[1686,3860,3862],{"id":3861},"separa-la-scoperta-dallesecuzione","Separa la scoperta dall'esecuzione",[25,3864,3865,3866,3869],{},"Per feature complesse o nuove, aggiungi una fase di ",[29,3867,3868],{},"spike",", cioè un breve blocco di esplorazione tecnica: un timebox di 2-3 giorni in cui il team esplora il problema, prototipa le parti rischiose e identifica le incognite. Solo dopo lo spike puoi chiedere una stima, e sarà enormemente più accurata perché le incognite principali sono già emerse.",[43,3871,3873],{"id":3872},"il-costo-delle-stime-sbagliate","Il costo delle stime sbagliate",[25,3875,3876],{},"Per chi gestisce budget e roadmap, le stime sbagliate hanno un costo molto concreto. Il primo è fatto di promesse non mantenute: dici al cliente che la feature sarà pronta in sei settimane, il team la consegna in quattordici e la credibilità che si brucia è quella dell’azienda intera.",[25,3878,3879],{},"Il secondo costo riguarda la pianificazione. Se ogni progetto sfora del 100 o 200 per cento, come pianifichi il trimestre, come allochi le risorse, come fai previsioni finanziarie? Stai costruendo piani sopra numeri che sai già essere troppo fragili.",[25,3881,3882,3883,3886],{},"Poi c’è la pressione sul team. Quando la stima viene trattata come una deadline, il gruppo taglia qualità per rispettarla: meno test, meno refactoring, più scorciatoie. Il ",[146,3884,3885],{"href":148},"debito tecnico si accumula",", e dopo sei mesi tutto procede ancora più lentamente.",[25,3888,3889,3890,116],{},"Infine arriva il feature bloat. Senza la disciplina degli incrementi piccoli, la tendenza è pianificare feature grandi e complete. Se qualcosa va storto, e succede spesso, hai investito mesi in qualcosa di inutilizzabile perché incompleto. È l’opposto dell’approccio ",[146,3891,3892],{"href":1701},"lancia prima, migliora dopo",[43,3894,3896],{"id":3895},"la-conversazione-che-dovresti-avere-col-tuo-team","La conversazione che dovresti avere col tuo team",[25,3898,3899,3900,3903],{},"Smetti di chiedere \"quanto ci vuole\" e inizia a chiedere qual è la versione più piccola di quella feature che ha davvero valore, perché costringe il team a pensare per incrementi e non per monoliti. Chiedi anche quali sono le incognite principali: se il team identifica i rischi prima di stimare, le stime migliorano. Ha senso domandare cosa si può mostrare già tra una settimana, così il focus resta sui progressi tangibili, e di cosa il team ha bisogno per andare più veloce. A volte la risposta non è “più tempo”, ma ",[146,3901,3902],{"href":1303},"meno interruzioni",", meno meeting e meno cambi di priorità.",[43,3905,3907],{"id":3906},"è-un-problema-di-aspettative","È un problema di aspettative",[25,3909,3910],{},"Le stime nel software difficilmente diventeranno precise come in altri ambiti. Tool migliori, processi più rigidi e sviluppatori più esperti aiutano fino a un certo punto: l'incertezza resta intrinseca a questo tipo di lavoro. Quello che può migliorare è come gestiamo quell'incertezza. Incrementi piccoli, feedback rapido, aspettative realistiche, e la volontà di adattarsi man mano che impariamo.",[25,3912,3913],{},"Le aziende che lo capiscono rilasciano più spesso, con meno sorprese, e con team più sereni. Quelle che continuano a chiedere stime precise e a trattarle come promesse finiscono molto spesso per creare aspettative che poi è difficile rispettare.",{"title":212,"searchDepth":213,"depth":213,"links":3915},[3916,3921,3927,3928,3929],{"id":3782,"depth":213,"text":3783,"children":3917},[3918,3919,3920],{"id":3786,"depth":1768,"text":3787},{"id":3800,"depth":1768,"text":3801},{"id":3814,"depth":1768,"text":3815},{"id":3821,"depth":213,"text":3822,"children":3922},[3923,3924,3925,3926],{"id":3825,"depth":1768,"text":3826},{"id":3843,"depth":1768,"text":3844},{"id":3854,"depth":1768,"text":3855},{"id":3861,"depth":1768,"text":3862},{"id":3872,"depth":213,"text":3873},{"id":3895,"depth":213,"text":3896},{"id":3906,"depth":213,"text":3907},"2026-01-29","Le stime di sviluppo software falliscono per motivi strutturali. Cosa chiedere al team al posto di 'quanto ci vuole' e come pianificare con meno sorprese.","/images/blog/stime-sviluppo-sbagliate-perche.jpg",{},"/blog/2026-01-29-stime-sviluppo-sbagliate-perche",{"title":3768,"description":3931},"Stime sviluppo software: perché sbagliano e cosa fare","stime-sviluppo-sbagliate-perche","blog/2026-01-29-stime-sviluppo-sbagliate-perche",[3940,1789,2838,3941,3942],"stime-sviluppo","planning-fallacy","budget-tempo","TjLPFaqrbJ9MMC5q29P1cSb09N3FTjHxwsyjtSG6joE",{"id":3945,"title":3946,"body":3947,"category":13,"date":4081,"description":4082,"extension":225,"image":4083,"meta":4084,"navigation":3,"path":4085,"published":3,"seo":4086,"seoTitle":4087,"slug":4088,"stem":4089,"tags":4090,"updated":240,"__hash__":4091},"blog/blog/2026-01-08-sviluppare-con-ai.md","Sviluppare con l'AI: come cambia il lavoro (e i rischi)",{"type":22,"value":3948,"toc":4070},[3949,3952,3959,3963,3966,3969,3972,3975,3978,3982,3986,3989,3992,3998,4002,4005,4008,4012,4015,4022,4026,4029,4037,4040,4044,4047,4050,4053,4060,4064,4067],[25,3950,3951],{},"Sviluppare con AI è il tema del momento, e negli ultimi due anni gira un'idea che affascina un sacco di gente: l'AI sta democratizzando la programmazione. In teoria, serve meno personale, si fa tutto più in fretta, si spende meno. Chi guida aziende e prodotti sta impostando assunzioni e strategie di crescita su questa promessa. Ma il punto è che questa storia non è completa. E quando basi le tue decisioni su una visione parziale, rischi di pagare caro.",[25,3953,3954,3955,3958],{},"Io uso Claude Code ogni giorno, Codex ogni tanto soprattutto per revisionare. Questi strumenti ti fanno andare ",[29,3956,3957],{},"più veloce"," nello sviluppo. Non lo rendono più facile. Sembra una sfumatura da poco, ma cambia tutto: da come strutturi il team a come pianifichi la roadmap, fino a dove metti i soldi.",[43,3960,3962],{"id":3961},"dove-lai-fa-davvero-la-differenza","Dove l’AI fa davvero la differenza",[25,3964,3965],{},"Partiamo dal concreto: dove l’AI è particolarmente efficace. Lo è nella prototipazione: un prototipo funzionante che prima richiedeva una settimana oggi puoi tirarlo su in un giorno, e per testare un’idea in fretta il vantaggio è evidente.",[25,3967,3968],{},"Funziona molto bene anche sul lavoro ripetitivo. Ogni progetto ha una quantità enorme di codice “noioso”: configurazioni, routine standard, integrazioni, boilerplate. L’AI riduce tutto questo da ore a minuti e libera più tempo per la logica di business.",[25,3970,3971],{},"Aiuta poi a orientarsi nei progetti esistenti. Un nuovo sviluppatore di solito impiega settimane solo per capire dove ha messo i piedi; l’AI può ridurre sensibilmente questo tempo, rendendo l’onboarding, cioè l’ingresso operativo nel progetto, e i passaggi di consegne meno pesanti.",[25,3973,3974],{},"Infine accelera il refactoring. Rinominare, riorganizzare e sistemare codice vecchio diventa più veloce, anche se qui serve sempre un controllo umano perché gli errori sottili restano possibili.",[25,3976,3977],{},"Tutto questo è concreto. Se il tuo team sa usare questi strumenti, la produttività sale — e lo vedi. Il vero problema nasce quando “più veloce” viene confuso con “più facile”.",[43,3979,3981],{"id":3980},"i-costi-nascosti-che-nessuno-ti-dice","I costi nascosti che nessuno ti dice",[1686,3983,3985],{"id":3984},"il-debito-tecnico-cresce-a-una-velocità-nuova","Il debito tecnico cresce a una velocità nuova",[25,3987,3988],{},"Il debito tecnico, cioè il costo futuro delle scorciatoie che prendi oggi, è quel conto che paghi domani per guadagnare velocità adesso. Tutti i progetti ce l’hanno, chi più chi meno. Ma con l’AI, la velocità con cui cresce non si era mai vista. Il motivo è semplice: scrivere codice con l’AI costa quasi zero in termini di tempo e fatica. E allora prendi quello che arriva: “Funziona? Dai, andiamo avanti.” Il codice che ti dà l’AI spesso fa quello che chiedi, sì, ma magari in modo poco efficiente, fragile, o con problemi di sicurezza che non si vedono subito.",[25,3990,3991],{},"Nel concreto, il debito tecnico lo senti quando tra sei mesi il team ti dice: “Per aggiungere questa feature ci vogliono tre mesi invece di tre settimane, perché prima dobbiamo rifare le fondamenta.” O quando un bug in produzione tiene tutti fermi per giorni, perché nessuno capisce più come funziona quel pezzo di codice.",[25,3993,3994,3997],{},[29,3995,3996],{},"Il debito tecnico che prima si accumulava lentamente, con l’AI può accumularsi molto più in fretta."," Più codice imperfetto, più problemi.",[1686,3999,4001],{"id":4000},"spesso-il-team-non-conosce-davvero-il-codice-che-finisce-in-produzione","Spesso il team non conosce davvero il codice che finisce in produzione",[25,4003,4004],{},"Qui c'è un problema che chi guida un team dovrebbe tenere bene a mente: quando uno sviluppatore usa l’AI per generare codice, quel pezzo finisce nel progetto, ma nessuno ci ha davvero ragionato sopra. Nessuno ha fatto scelte consapevoli, nessuno si è costruito un modello mentale di come funziona quel codice, riga per riga.",[25,4006,4007],{},"Poi, puntualmente, qualcosa si rompe. Nel software succede sempre. E invece di risolvere in fretta, ci si mette di più. Lo sviluppatore si trova a fare il detective su un pezzo di codice che, ufficialmente, è suo… ma che in realtà non ha mai davvero progettato. In pratica, le stime diventano un terno al lotto. Il bug che “dovrebbe portar via un’ora” si trasforma in un giorno intero. E ripeti questa storia, tutte le settimane, tutto l’anno.",[1686,4009,4011],{"id":4010},"le-decisioni-strategiche-restano-umane","Le decisioni strategiche restano umane",[25,4013,4014],{},"L'AI scrive codice, sì. Ma non decide quale codice serve. Che architettura regge il salto da 100 a 10.000 utenti? Quali compromessi sono accettabili per lanciare prima senza tagliarsi le gambe per il futuro? Come si struttura un sistema perché il team non si blocchi da solo quando lavora in parallelo?",[25,4016,4017,4018,4021],{},"Queste cose richiedono esperienza vera, conoscenza del contesto, una visione chiara sul prodotto. L’AI, queste cose, non le ha. Può darti una risposta generica, se gliela chiedi, ma le decisioni di architettura che separano un prodotto che scala da uno che va ",[146,4019,4020],{"href":1100},"riscritto da zero"," tra 18 mesi sono dettagliate, dipendono dal contesto e richiedono giudizio umano. Quando costruisci un prodotto software, le scelte più rischiose e costose non sono sul codice, ma sulla struttura. E qui l’AI non ti dà una mano. Almeno ancora non oggi.",[43,4023,4025],{"id":4024},"chi-ci-guadagna-davvero-con-lai-nello-sviluppo-software","Chi ci guadagna davvero con l'AI nello sviluppo software",[25,4027,4028],{},"Arriviamo al punto: chi gestisce team e fa assunzioni deve capirlo bene. Gli strumenti di AI aiutano di più chi ha meno bisogno di aiuto: gli sviluppatori senior. Quelli che costano di più. Il motivo è semplice. Chi ha esperienza sa fare la domanda giusta, perché l’output dell’AI dipende molto da come la interroghi; sa giudicare il codice che riceve e scartarlo se non va bene; sa dove inserirlo nel sistema e come adattarlo al resto del progetto; sa riconoscere problemi prima che diventino bug in produzione.",[25,4030,4031,4032,4036],{},"I junior spesso non hanno ancora sviluppato questi filtri. Prendono il codice generato, lo infilano nel progetto senza capirlo davvero, e costruiscono sopra fondamenta che non conoscono. Quando qualcosa si rompe, non hanno gli strumenti per venirne a capo. È il motivo per cui ",[146,4033,4035],{"href":4034},"/blog/design-pattern-oltre-il-linguaggio","i design pattern valgono più di qualsiasi linguaggio",": servono a riconoscere se la struttura proposta dall'AI ha senso oppure no.",[25,4038,4039],{},"L’AI moltiplica le capacità di chi già sa cosa fare. Non sostituisce la competenza. Questa cosa si riflette direttamente sulle scelte di hiring: un team di cinque senior con AI produce di più (e meglio) di dieci junior con gli stessi strumenti. E ti costa meno in manutenzione, alla lunga.",[43,4041,4043],{"id":4042},"cosa-cambia-davvero-per-chi-decide","Cosa cambia davvero per chi decide",[25,4045,4046],{},"Se guidi un team, gestisci un budget o una roadmap, il primo punto è non ridurre il team ma spostarne il lavoro. L'AI non elimina il bisogno di sviluppatori: cambia il tipo di attività su cui li vuoi concentrare. Il tempo risparmiato sulle task ripetitive va investito in revisione del codice, test e ragionamento architetturale, non in una corsa cieca ad aggiungere feature.",[25,4048,4049],{},"Conta anche puntare sulla competenza più che sulla quantità. Uno sviluppatore senior che sa guidare e valutare l’AI vale spesso più di tre junior che si fidano ciecamente di ciò che esce. Quello che sembra un risparmio all’inizio si trasforma facilmente in un costo pesante dopo pochi mesi.",[25,4051,4052],{},"Va poi considerata la revisione come parte del processo. Se il flusso è “genera con AI, poi deploy”, stai accumulando debito tecnico a una velocità pericolosa. Quel codice va letto, capito e validato da qualcuno che sappia davvero cosa sta guardando. Allo stesso modo non bisogna farsi ingannare dalle demo: con l'AI è facilissimo tirare fuori un prototipo brillante in un pomeriggio, ma tra “funziona nella demo” e “regge in produzione con mille utenti contemporanei” resta un abisso.",[25,4054,4055,4056,4059],{},"Infine bisogna monitorare il debito tecnico. Chiedi al team quanto tempo passa a sistemare problemi vecchi rispetto a costruire cose nuove. Se quella percentuale cresce mese dopo mese, la velocità iniziale si sta trasformando in zavorra. E attenzione a non ",[146,4057,4058],{"href":1513},"aggiungere persone"," pensando che questo risolva il problema, perché spesso lo aggrava.",[43,4061,4063],{"id":4062},"lai-amplifica-la-competenza-non-la-sostituisce","L'AI amplifica la competenza, non la sostituisce",[25,4065,4066],{},"L'AI non ha reso lo sviluppo software più facile. Ha velocizzato il lavoro meccanico, ma la parte che richiede giudizio, esperienza e visione è rimasta. Anzi, ora pesa ancora di più. Chi costruisce software non dovrebbe chiedersi “quanta gente posso tagliare grazie all'AI”, ma piuttosto \"come posso usare l'AI per far lavorare meglio le persone giuste\".",[25,4068,4069],{},"Le aziende che ci arrivano prima stanno giocando d’anticipo: lanciano prodotti migliori, più robusti, e ci arrivano prima degli altri. Chi invece pensa che “più veloce” voglia dire “più facile” finisce per costruire roba che fra un anno dovrà rifare da capo. E questa differenza, alla lunga, vale centinaia di migliaia di euro.",{"title":212,"searchDepth":213,"depth":213,"links":4071},[4072,4073,4078,4079,4080],{"id":3961,"depth":213,"text":3962},{"id":3980,"depth":213,"text":3981,"children":4074},[4075,4076,4077],{"id":3984,"depth":1768,"text":3985},{"id":4000,"depth":1768,"text":4001},{"id":4010,"depth":1768,"text":4011},{"id":4024,"depth":213,"text":4025},{"id":4042,"depth":213,"text":4043},{"id":4062,"depth":213,"text":4063},"2026-01-08","L'AI accelera lo sviluppo software ma aumenta il peso delle decisioni. Cosa cambia per chi gestisce team, budget e roadmap, e come evitare errori costosi.","/images/blog/sviluppare-con-ai.jpg",{},"/blog/2026-01-08-sviluppare-con-ai",{"title":3946,"description":4082},"Sviluppo software con AI: vantaggi e limiti reali","sviluppare-con-ai","blog/2026-01-08-sviluppare-con-ai",[234,238,669,3317,239,840,3318],"PcMDzV-HjK0dEIwWS7wDVqtTeCTpnAW6hFlSaXIHqeY",1779395073448]