38 commit, zero funzionalità: lo sprint che conta
38 commit in 10 giorni. Zero nuove funzionalità. Eppure, è probabilmente la settimana più importante dall'inizio del progetto.
Questo è il paradosso dello sviluppo di prodotti: le settimane che contano di più sono quelle in cui "non succede nulla" di visibile. Nessuna nuova funzionalità da annunciare, nessuno screenshot spettacolare. Solo codice che rende l'esistente migliore, più solido, più professionale. Nel mondo del build in public, questi sprint silenziosi non generano like. Ma fanno la differenza tra un'app che "funziona sul mio dispositivo" e un'app pronta per utenti reali.
Punti chiave
- 38 commit concentrati sulla stabilità, non sulle funzionalità, con un'agenda web passata da 1 a 4 viste per una parità completa mobile/desktop.
- Crashlytics (frontend) + Sentry (backend) distribuiti prima della produzione, in conformità con le raccomandazioni Firebase per il monitoraggio pre-lancio.
- L'IA vocale rileva i tuoi schemi di denominazione esistenti e li riproduce automaticamente per le nuove cartelle.
- Tracciamento UTM su tutti i link condivisi per un'attribuzione marketing affidabile fin dal primo giorno.
Perché uno sprint senza funzionalità è il più importante?
Secondo uno studio di Stripe (2018), gli sviluppatori trascorrono in media il 42% del loro tempo a gestire il debito tecnico e la manutenzione. Non è tempo perso: è tempo investito. Uno sprint "zero funzionalità" consiste nel fermarsi volontariamente dall'aggiungere novità per consolidare ciò che esiste già.
Concretamente, cosa significa questo per TAMSIV? 10 giorni per correggere micro-bug, levigare transizioni, allineare il web al mobile, aggiungere monitoraggio. Niente di appariscente. Ma alla fine di questi 10 giorni, la qualità percepita dell'app ha cambiato dimensione.
Ne avevo parlato nell'articolo sullo sprint finale zero funzionalità: il riflesso naturale di uno sviluppatore è aggiungere. Sempre aggiungere. Ci vuole una vera disciplina per dire "no, questa settimana consolidiamo". Questa è la filosofia che continuo ad applicare. Paga? I 12 tester alpha non hanno segnalato alcun crash in questo periodo. Zero. La prima volta dall'inizio del progetto.
Come l'agenda web è passata da 1 a 4 viste?
L'agenda della dashboard web aveva una sola vista: la settimana. Sufficiente per una demo, insufficiente per un uso quotidiano. Ho aggiunto tre viste aggiuntive (giorno, mese, anno) per raggiungere la parità con l'agenda mobile, che avevo dettagliato qui.
L'obiettivo tecnico è chiaro: che la transizione tra telefono e computer sia invisibile. Tu crei un'attività vocalmente sul tuo telefono al mattino, la ritrovi sul tuo schermo del computer a mezzogiorno con esattamente la stessa presentazione. Cliccare su un evento apre i suoi dettagli. Cliccare su un'attività, lo stesso.
Le pagine di dettaglio delle attività e dei memo sono state interamente ridisegnate per corrispondere all'esperienza mobile. Miniature di immagini, navigazione fluida, stessa struttura visiva. È un lavoro ingrato ma essenziale: ogni incoerenza tra mobile e web crea attrito cognitivo nell'utente. E l'attrito è il nemico numero 1 della retention.
Perché aggiungere Crashlytics e Sentry prima della produzione?
Quando la tua app è usata da te e da 12 tester, puoi permetterti di fare il debug tramite i log di Supabase e il "funziona sul mio dispositivo". Quando stai per passare alla produzione pubblica, non è più un'opzione. Secondo la documentazione di Firebase Crashlytics, le app che configurano il monitoraggio prima del lancio rilevano i crash critici 10 volte più velocemente di quelle che reagiscono dopo le prime lamentele degli utenti.
Ho implementato due sistemi complementari:
Firebase Crashlytics sul frontend React Native
Crashlytics cattura tre tipi di problemi sul mobile. Innanzitutto i crash (l'app che si chiude bruscamente), poi gli ANR, Application Not Responding, quei momenti in cui l'app si blocca per più di 5 secondi, e infine gli errori JavaScript non catturati. Per ogni incidente, si ottiene la stack trace completa, il modello del telefono, la versione di Android e ciò che l'utente stava facendo poco prima. Avevo già descritto la pipeline audio nell'articolo STT nativo vs Deepgram, è esattamente il tipo di catena complessa in cui un crash silenzioso può passare inosservato senza un monitoraggio dedicato.
Sentry sul backend Node.js/Express
Lato server, Sentry cattura gli errori API, i timeout WebSocket, le eccezioni non gestite. Ciò che fa la differenza sono i breadcrumbs: Sentry registra una cronologia degli eventi che hanno portato all'errore. Se una chiamata OpenRouter va in timeout dopo una chiamata Supabase lenta, vedi l'intera catena. Più il monitoraggio delle prestazioni che misura i tempi di risposta di ogni endpoint.
L'idea è semplice: quando si verifica un bug in produzione, lo sappiamo prima che l'utente se ne lamenti. Questa è la differenza tra "abbiamo un problema" e "abbiamo risolto il problema prima che tu te ne accorgessi".
Come l'IA rileva i tuoi schemi di denominazione?
Un solo commit, ma del tipo che cambia l'esperienza quotidiana. L'assistente vocale di TAMSIV ora analizza i nomi delle tue cartelle esistenti per rilevare schemi di denominazione ricorrenti e riprodurli automaticamente.
Prendiamo un esempio concreto. Hai tre cartelle: "Spesa Carrefour", "Spesa Leclerc", "Spesa Aldi". Dici all'IA "crea una cartella spesa per Lidl". Prima, avrebbe creato "Lidl" o "Spesa" e basta. Ora, rileva lo schema [Categoria] + [Nome del negozio] e crea automaticamente "Spesa Lidl".
Un altro esempio: le tue cartelle di progetto sono nominate "Progetto Alpha - Q1", "Progetto Beta - Q2". L'IA rileva il formato [Progetto] + [Nome] + [Trimestre]. Quando crei una nuova cartella di progetto, applica la stessa convenzione senza che tu debba specificarlo.
Questo è il tipo di dettaglio che nessun utente chiederà mai, ma che tutti notano quando è presente. Ne avevo parlato nell'articolo sulla personalizzazione vocale: l'IA non fa solo quello che le dici. Capisce come ti organizzi.
Quali ottimizzazioni CRO per la landing page?
Secondo Google Web Vitals, un LCP (Largest Contentful Paint) superiore a 2.5 secondi influisce direttamente sul tasso di rimbalzo. La landing page tamsiv.com ha ricevuto diverse ottimizzazioni mirate per rimanere al di sotto di questa soglia.
L'hero glow animato utilizzava un Canvas JavaScript che consumava troppa CPU, soprattutto su mobile. L'ho sostituito con puro CSS: stesso effetto visivo, zero impatto sulla batteria. Questo è tipicamente il tipo di debito tecnico invisibile che si corregge solo durante uno sprint zero feature.
Il sottotitolo dell'hero è stato riscritto per spiegare chiaramente cosa fa TAMSIV in una frase. Nel CRO, la chiarezza del messaggio sopra la linea di galleggiamento è il fattore numero 1 di conversione. Se il visitatore non capisce cosa fai in 3 secondi, se ne va.
Ho anche migliorato il layout dei prezzi: l'etichetta annuale è ora su una riga separata per una maggiore leggibilità. E lo scroll spy dell'header è stato corretto: lo stato attivo non si puliva correttamente scorrendo verso l'alto, un bug sottile ma fastidioso.
Come il tracciamento UTM migliora la strategia di marketing?
Sapere da dove provengono i tuoi visitatori è la base di ogni strategia di marketing. Senza tracciamento, pubblichi contenuti alla cieca. Con esso, sai esattamente quale post di LinkedIn, quale messaggio Discord, quale campagna genera traffico reale. Secondo la documentazione di Google Analytics, i parametri UTM sono lo standard per l'attribuzione delle campagne.
Ho implementato tre cose. Innanzitutto, parametri UTM su ogni link condiviso: source, medium, campaign, content. Poi, una cattura IP lato server per analytics più affidabili rispetto al JavaScript client-side, che è bloccato dagli adblocker. E infine, una dashboard amministrativa arricchita con selettore di periodo (7 giorni, 30 giorni, 90 giorni, tutto) e una configurazione sincronizzata tra mobile e web. Avevo gettato le basi di questa dashboard nell'articolo sulla dashboard amministrativa, ora è uno strumento completo.
Il risultato concreto? Nell'ultima sessione di marketing, ho potuto vedere che l'i18n in 6 lingue generava il 60% del traffico in entrata. Senza UTM, non avrei mai avuto questo dato.
versionCode 32: qual è il prossimo passo?
La build Android è alla sua 32esima versione. Più di 740 commit in totale. L'app è stata inviata al Play Store per la revisione di produzione. In attesa della convalida di Google, continuiamo a perfezionare ogni dettaglio.
38 commit, zero funzionalità, e un'app che è passata da "funziona" a "è pronta". Questo è esattamente il tipo di sprint che non fa rumore, ma che fa la differenza il giorno in cui arrivano gli utenti reali.
Domande frequenti
Cos'è uno sprint "zero funzionalità"?
È un periodo di sviluppo volontariamente dedicato alla stabilità, alle prestazioni e al debito tecnico, senza aggiungere nuove funzionalità. L'obiettivo è consolidare l'esistente prima di un traguardo importante, come un lancio in produzione.
Perché usare Crashlytics E Sentry insieme?
Crashlytics è specializzato nel monitoraggio mobile (crash, ANR, errori JS in React Native). Sentry copre il backend Node.js (errori API, WebSocket, prestazioni). I due combinati offrono una visibilità completa sull'intera catena, dal telefono al server.
Come funziona il rilevamento dei modelli di denominazione da parte dell'IA?
L'assistente vocale analizza i nomi delle cartelle esistenti per identificare convenzioni ricorrenti (prefisso comune, formato strutturato). Quando crei una nuova cartella, l'IA applica automaticamente lo stesso modello senza che tu debba specificarlo.
Cos'è il tracciamento UTM e perché è importante?
I parametri UTM (source, medium, campaign) vengono aggiunti agli URL condivisi per identificare precisamente da dove proviene ogni visitatore. Senza questo tracciamento, è impossibile sapere quale canale di marketing funziona davvero, secondo la documentazione di Google Analytics.
TAMSIV è disponibile sul Play Store?
L'app è attualmente in fase di test alpha chiuso con 12 tester. La sottomissione per la produzione pubblica è in corso di validazione da parte di Google. Nel frattempo, puoi scoprire il progetto su tamsiv.com.