Como llegué a multiplicar por 100 los cobros durante más 6 horas

Mira.

Cuando descubrí que puedo escribir código para validar automáticamente que otra parte del código funciona como debería, literalmente, me enamoré de mi trabajo.

Y justamente fue eso lo que me llevó a multiplcar por 100 los cobros de la empresa durante más de 6 horas.

Te cuento como lo hice.

Básicamente, es una aplicación de ahorro automático. Tiene varios métodos de ahorro. Uno de los métodos es el redondeo.

El redondeo detecta que has pagado un café con la tarjeta por 1.50€, por ejemplo. Entonces lo que hace es aproximarte a la unidad más cercana y ahorrarte la diferencia.

En este ejemplo te tocaría ahorrar 50 céntimos.

Para ahorrar (meter dinero en la aplicación/hucha) lo que hacemos es cobrarte en la tarjeta los 50 céntimos.

Hasta aquí, bien.

Pues para que entiendas que fue lo que hice, te lo explico en números.

Yo multipliqué por 100 esos 50 céntimos. Es decir, un ahorro de 50 céntimos se convertía en un ahorro de 50€.

Casi nada, la diferencia.

Y es que era eso lo que hacía el código que programé: calculaba la diferencia a la unidad más cercana y lo multiplicaba por 100. Literalmente. Lo multiplicaba por 100.

Para colmo, tenía tests que me validaban que esa operación era cierta.

Jodidamente, había escrito código que me validaba que esa operación estaba bien calculada.

Ese código estuvo en producción más de 6 horas. Algunos usuarios alucinaron con su capacidad de ahorro. Otros muchos, bueno…nos tomaron por ladrones.

Puedes pensar que el error que tuve fue que me equivoqué al entender la operación. Y probablemente tengas razón.

Lo más crítico de esto es que tenía tests que me validaban la operación.

Aquí entra la lección del día: un test mal hecho es peor que no tener tests.

Si quieres me crees y si no quieres no me crees.

Yo te he compartido mi experiencai. Haces con ella lo que quieras.

Que tengas un buen día y lo disfrutes.

Josué.

PD: aún así, vale la pena aprender a hacer tests.


Soy Josué Alcántara y cada día envio un mail con una idea para escribir software de calidad. ¿A quién se la envío? A mi lista de suscriptores. Día que estás fuera, idea que te pierdes. Así de fácil.