Artigo

A matemática da motivação: bola de neve ou avalanche no React Native

Como desenvolver o TinyDebt me mostrou que um código matematicamente ideal pode falhar no teste humano — e por que implementei as duas estratégias de quitação.

A matemática da motivação: bola de neve ou avalanche no React Native

A maioria dos desenvolvedores encara apps financeiros como um problema puramente matemático: minimizar os juros a qualquer custo.

Tecnicamente, esse é o método avalanche. Você ordena as dívidas pela taxa de juros, da maior para a menor, e direciona o dinheiro extra para a primeira. Matematicamente, é o caminho mais eficiente.

No entanto, ao desenvolver o TinyDebt, percebi que um código “matematicamente correto” muitas vezes falha no “teste humano”. Por isso, também implementei o método bola de neve, que ordena as dívidas pelo saldo. A implementação me ensinou muito sobre lógica centrada no usuário.

A lógica: ordenar para avançar

Em um ambiente local-first com React Native, os cálculos precisam ser rápidos e confiáveis no cliente, sem backend. Esta é uma versão simplificada da lógica que permite alternar entre “eficiência matemática” e “impulso psicológico”.

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);
};

O desafio técnico: comparação em tempo real

O verdadeiro valor para o usuário não é apenas ver uma lista, mas entender o impacto da escolha. No TinyDebt, criei um mecanismo de projeção que executa os dois algoritmos considerando o pagamento “extra” mensal do usuário para mostrar duas “datas para quitar a dívida”.

Como o app é local-first e usa um modelo de dados simples, com foco na privacidade, esses cálculos acontecem instantaneamente. Não há indicador de carregamento enquanto um servidor calcula o cronograma de amortização. O resultado é uma interface responsiva e motivadora.

Por que a “bola de neve” vence na experiência do usuário

Embora o método avalanche economize mais dinheiro a longo prazo, o método bola de neve tem uma “taxa de conclusão” maior.

Na programação, chamamos isso de reduzir atrito:

  • Avalanche é como refatorar primeiro um módulo legado enorme e complexo. É a coisa certa a fazer, mas é exaustivo.
  • Bola de neve é como corrigir três bugs simples na segunda-feira de manhã. Isso dá o impulso de motivação necessário para enfrentar as tarefas maiores na terça.

Conclusão: crie para pessoas, não apenas para bancos de dados

Ao criar ferramentas — especialmente na área financeira — precisamos considerar o “fator humano”. Ao oferecer as duas opções em um ambiente minimalista e privado, percebi que os usuários permanecem engajados por muito mais tempo.

Se você está criando um app utilitário, pergunte a si mesmo: minha lógica está otimizada para o processador ou para a pessoa que usa o app?