Artículo

La matemática de la motivación: bola de nieve o avalancha en React Native

Cómo desarrollar TinyDebt me enseñó que el código matemáticamente óptimo puede fallar ante las personas, y por qué implementé ambas estrategias para pagar deudas.

La matemática de la motivación: bola de nieve o avalancha en React Native

La mayoría de los desarrolladores aborda las apps financieras como un problema puramente matemático: minimizar los intereses cueste lo que cueste.

En términos técnicos, esto es el método avalancha. Se ordenan las deudas de mayor a menor tasa de interés y se destina el dinero extra a la primera. Matemáticamente, es la opción más eficiente.

Sin embargo, al desarrollar TinyDebt, me di cuenta de que el código «matemáticamente correcto» a menudo no supera la «prueba humana». Por eso también implementé el método bola de nieve, que ordena las deudas por saldo. Su implementación me enseñó mucho sobre la lógica centrada en las personas.

La lógica: ordenar para avanzar

En un entorno local-first de React Native, los cálculos deben ejecutarse en el cliente de forma rápida y fiable, sin backend. Esta es una versión simplificada de la lógica que permite alternar entre «eficiencia 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);
};

El reto técnico: comparación en tiempo real

El verdadero valor para el usuario no está solo en ver una lista, sino en conocer el impacto de su elección. En TinyDebt tuve que crear un motor de proyección que ejecutara ambos algoritmos con el pago «extra» mensual del usuario para mostrar dos «fechas de deuda saldada» distintas.

Como la app es local-first y usa un modelo de datos sencillo y centrado en la privacidad, los cálculos son instantáneos. No hay un indicador de carga mientras un servidor calcula el calendario de amortización. El resultado es una interfaz rápida y motivadora.

Por qué la «bola de nieve» gana en experiencia de usuario

Aunque el método avalancha ahorra más dinero a largo plazo, el método bola de nieve tiene una mayor «tasa de finalización».

En programación, a esto lo llamamos reducir la fricción:

  • Avalancha es como refactorizar primero un módulo heredado enorme y complejo. Es lo correcto, pero agotador.
  • Bola de nieve es como arreglar tres errores sencillos el lunes por la mañana. Te da la dosis de motivación necesaria para abordar lo más difícil el martes.

Conclusión: diseñar para las personas, no solo para las bases de datos

Al crear herramientas, especialmente financieras, debemos tener en cuenta el «factor humano». Al ofrecer ambas opciones en un entorno minimalista y privado, comprobé que los usuarios siguen participando durante más tiempo.

Si estás creando una app de utilidad, pregúntate: ¿mi lógica está optimizada para el procesador o para la persona que la utiliza?