La maggior parte degli sviluppatori affronta le app finanziarie come un problema puramente matematico: ridurre al minimo gli interessi a ogni costo.
In termini tecnici, questo è il metodo a valanga. Si ordina l’elenco dei debiti per tasso d’interesse decrescente e si destina il denaro in eccesso a quello in cima. Matematicamente è il percorso più efficiente.
Tuttavia, mentre sviluppavo TinyDebt, ho capito che il codice “matematicamente corretto” spesso fallisce il “test umano”. Questo mi ha portato a implementare il metodo a palla di neve, che ordina per importo del saldo, e l’implementazione tecnica mi ha insegnato molto sulla logica centrata sull’utente.
La logica: ordinare per avere successo
In un ambiente React Native local-first, gestire questi calcoli senza backend significa che la logica lato client deve essere veloce e affidabile. Ecco una versione semplificata della logica che ho usato per permettere agli utenti di passare da “Efficienza matematica” a “Slancio psicologico”.
type Debt = {
id: string;
name: string;
balance: number;
interestRate: number;
};
// The "Avalanche" Logic: Maximizing Interest Savings
const getAvalancheOrder = (debts: Debt[]) => {
return [...debts].sort((a, b) => b.interestRate - a.interestRate);
};
// The "Snowball" Logic: Maximizing Psychological Wins
const getSnowballOrder = (debts: Debt[]) => {
return [...debts].sort((a, b) => a.balance - b.balance);
};La sfida tecnica: confronto in tempo reale
Il vero valore per l’utente non è solo vedere un elenco, ma vedere l’impatto della propria scelta. In TinyDebt ho dovuto creare un motore di proiezione che esegue entrambi gli algoritmi sul pagamento mensile “extra” dell’utente, per mostrare due diverse “date di libertà dai debiti”.
Poiché l’app è local-first e usa un modello di dati semplice e attento alla privacy, questi calcoli avvengono all’istante. Non c’è alcun indicatore di caricamento mentre un server calcola il piano di ammortamento. Il risultato è un’interfaccia reattiva e incoraggiante.
Perché la “palla di neve” vince la battaglia dell’UX
Il metodo a valanga fa risparmiare più denaro nel lungo periodo, ma il metodo a palla di neve ha un “tasso di completamento” più alto.
In programmazione lo chiamiamo ridurre l’attrito:
- Valanga è come rifattorizzare per primo un enorme e complesso modulo legacy. È la cosa giusta da fare, ma è estenuante.
- Palla di neve è come correggere tre bug “a portata di mano” il lunedì mattina. Ti dà la dose di dopamina necessaria per affrontare le cose grosse il martedì.
Conclusione: progetta per le persone, non solo per i database
Quando costruiamo strumenti, soprattutto in ambito finanziario, dobbiamo tenere conto della “variabile umana”. Offrendo entrambe le opzioni in un ambiente minimalista e privato, ho scoperto che gli utenti restano coinvolti molto più a lungo.
Se stai sviluppando un’app di utilità, chiediti: la mia logica è ottimizzata per il processore o per la persona che la usa?
