Ganar no es posible. Tú solo decides qué tan rápido perder¿Cuál es el próximo movimiento?A mucha gente le gusta el tetris, a mí también. Recuerdo haber jugado con mi amigo por primera vez en Nintendo Game Boy. Tal vez esa melodía se te pegó en la cabeza también. Tetris no es solo uno de los mejores juegos de todos los tiempos, sino también una gran analogía para la deuda técnica. Proporciona una comprensión general de la deuda técnica y su impacto.
Te contaré una historia por experiencia personal de cómo mi equipo redujo su deuda técnica en algún tipo de código de facturación y al mismo tiempo corrigió el
error en un millón de dólares al año .
Al principio, las tareas son más simples, con un bajo nivel de dificultad.En las compañías de software, los gerentes de producto / proyecto, junto con los desarrolladores, determinan qué código se escribirá y se enviará a los clientes en la próxima versión.
Completar una línea en tetris es como liberar una función.Las funciones complejas son totalmente factibles con casi ningún aumento en la deuda técnica.Emitir una función
compleja requiere completar
varias líneas .
A menudo, las necesidades comerciales (nuevas características, nuevos productos) conducen a compromisos en el código (hacks, soluciones) para no retrasar el plazo. O los cambios en la estrategia del producto son incompatibles con el diseño anterior, lo que requiere esfuerzos adicionales para migrar clientes o admitir tanto la lógica "nueva" como la "antigua".
La pequeña deuda técnica es normal y manejable.Tales escenarios crean deuda técnica dentro del código.
Un pase oculto en Tetris es un deber técnico.Cualquier código tiene un deber técnico. Esto es normal Puedes seguir jugando con unos pocos pases.
Enterrado en deuda técnicaDemasiada deuda técnica no permite un tiempo razonable para liberar una nueva función o corregir un error.
Este problema no se puede resolver agregando nuevos desarrolladores o, más dramáticamente, reemplazando los existentes. Esto se llama
deuda técnica: en algún momento habrá que pagarla.
Pagar su deuda técnica lo hace competitivo. Te mantiene en el juego.Juego terminadoAl igual que la gestión empresarial, en Tetris, la complejidad aumenta con el tiempo. Las formas se mueven más rápido y son más difíciles de seguir.
Como en los negocios, es imposible ganar aquí. No hay una meta real. La única pregunta es qué tan pronto perderás.
Al igual que los negocios, demasiados vacíos en los tetris conducen a una pérdida.
Error de millones de dólares
No hace mucho tiempo, mi equipo recibió instrucciones de actualizar la lógica de facturación / facturación en nuestro código de producto para admitir nuevos planes de precios, un nuevo procesador de pagos y mejorar todo el proceso de facturación en su conjunto. Todavía se aclaraban algunos detalles, por lo que utilizamos este tiempo para profundizar en el código existente para dar estimaciones más precisas de los próximos cambios.
La tarea principal de este código era revisar las cuentas de todos los clientes, calcular cada una y enviar información a la API para la facturación. El sistema fue escrito con gran cuidado y buenas intenciones, no tanto descuidado como inflexible. Función
monolítica . No hay pruebas Muy pocos registros. Prácticamente no había documentación. Hubo alguna aleatorización inexplicable. Uno de los fundadores escribió el sistema hace más de cinco años. Los únicos cambios desde entonces fueron realizados por uno de los primeros empleados que ya estaba ausente de la empresa.
¿Hubo algún problema? Se facturaron las facturas. La compañía hizo dinero. No hubo signos de un problema. Todo esto habló en contra de la refactorización, pero sabíamos que vendrían grandes cambios: esta función no podría ajustarse a nuestras necesidades, y sería mucho más fácil avanzar si simplificamos esta parte.
En un sprint, rediseñamos la función y agregamos algunos registros muy necesarios. Fue entonces cuando descubrimos que realmente lo habíamos solucionado. Uno de los contadores se detuvo en nuestros escritorios y preguntó por qué el número de facturas salientes aumentó inesperadamente. El antiguo código se cayó silenciosamente en el temporizador, y algunos clientes no fueron procesados. Extraña aleatorización? Ella ocultó cualquier modelo que pudiera dejar en claro que a algún cliente no se le emitió una factura. Cuando realizamos la evaluación, calculamos las facturas faltantes en más de $ 1 millón por año.
El pago no siempre paga
Aunque la historia es completamente cierta, pagar la deuda técnica no siempre tiene un efecto tan dramático. Tenemos suerte
Encuentre el equilibrio adecuado de deuda técnicaMe gustaría darle consejos sabios cuando necesite pagar deudas técnicas. Desafortunadamente, la respuesta es que es difícil, y
siempre se reduce al equilibrio . Puede tener el código más limpio y mejor probado del mundo, pero no tener clientes. Y viceversa, su empresa puede trabajar en un código realmente sucio, pero que agrada a los clientes, y el dinero fluye como un río.
Solo puedo decir que tanto los propietarios como los desarrolladores de productos deben comprender la esencia de la deuda técnica y que no se puede evitar para siempre. Al final, como en Tetris, aquí nunca puedes ganar.