Y no estoy aquí para decirte que la forma en que piensas sobre la deuda técnica es incorrecta, per se, pero tienes que admitir, el hecho de que no estemos de acuerdo sobre lo que significa la deuda técnica lleva a muchos desacuerdos sobre las prioridades de gestión de la deuda técnica y eso lleva a un montón de disfunciones. De hecho, parte de esa disfunción es como los programadores gritando a los gerentes por no darles los recursos que necesitan para hacer su trabajo, o los gerentes gritando a los programadores por no tomar los plazos lo suficientemente en serio, o incluso los programadores gritándose entre ellos, diciéndoles que dejen de sobre-ingeniería cuando, en algunos casos, muchos diría yo, las personas acusadas de sobre-ingeniería simplemente están tratando de tomar en serio la deuda técnica como un problema. Si continuamos así, creo que solo vamos a seguir afianzando la opinión personal de cada uno sobre cuál es la cantidad correcta de esfuerzo que se debe poner en un buen diseño.
Tienes personas de un lado que piensan que necesitamos diseñar más cuidadosamente, refactorizar más a menudo, y señalan el interés acumulado sobre la deuda para justificar su posición. Mientras que tienes a un montón de otras personas que están pidiendo a los programadores que diseñen menos cuidadosamente, que refactoricen menos, que lo hagan en menos tiempo, y señalando afirmaciones vagas sobre, ya sabes, la deuda de otras personas es mala deuda, nuestra deuda es buena deuda, está bien, solo sigue adelante y entrega características. Parece que esta metáfora de la deuda técnica casi nos está fallando, pero no creo que lo sea. Quiero decir, alguien inventó esta metáfora para resolver un problema real. Debería ayudarnos. Tal vez si volvemos a lo que estaban pensando, entonces tal vez haya una pista allí en alguna parte.
Así que volvamos a Ward Cunningham, quien acuñó la frase deuda técnica hace unos 25 años, y en menos de 10 años, ya estaba viendo a la gente realmente luchando y sufriendo tratando de hablar sobre la deuda técnica en sus proyectos. Así que grabó un video corto en el que intentó aclarar sus intenciones y su pensamiento, con la esperanza de que pudiera ayudar. Y así, por ejemplo, sabiendo que estaban trabajando con tecnología con la que no estaban muy familiarizados, asumieron que iban a hacer las cosas mal. Y así, como él lo expresó, era importante para mí que acumuláramos los aprendizajes que hicimos sobre la aplicación a lo largo del tiempo modificando el programa para que pareciera que sabíamos lo que estábamos haciendo todo el tiempo. Este es realmente el poder del diseño evolutivo, la libertad de cambiar el código para que coincida con lo que entendemos ahora y no ser prisioneros de decisiones pasadas porque tuvimos que tomar esas decisiones cuando sabíamos menos.
Comments