[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:00.00,0:00:02.00,Default,,0000,0000,0000,,Metáfora Dialogue: 0,0:00:04.00,0:00:09.00,Default,,0000,0000,0000,,Me comencé a interesar en la forma en que las metáforas influencian cómo pensamos Dialogue: 0,0:00:10.00,0:00:15.00,Default,,0000,0000,0000,,luego de leer el libro de Goerge Lakoff y Mark Johnson "Metaphores we live by" Dialogue: 0,0:00:15.00,0:00:25.00,Default,,0000,0000,0000,,Y la idea importante es que nosotros razonamos por analogía con metáforas que existen en nuestro lenguaje Dialogue: 0,0:00:26.00,0:00:28.00,Default,,0000,0000,0000,,Deuda Dialogue: 0,0:00:30.00,0:00:36.00,Default,,0000,0000,0000,,Acuñé el término la "metáfora de la deuda" para explicar la refactorización que estábmos haciendo Dialogue: 0,0:00:37.00,0:00:46.00,Default,,0000,0000,0000,,en el producto WyCash. Esto fue un producto temprano en Digitalk Smalltalk y era importante para mí Dialogue: 0,0:00:46.00,0:00:56.00,Default,,0000,0000,0000,,que acumulábamos las alertas que nos daba la aplicación a lo largo del tiempo modificando el programa Dialogue: 0,0:00:56.00,0:01:06.00,Default,,0000,0000,0000,,para hacer lo que hubiera podido ser fácil hacer en Smalltalk. Dialogue: 0,0:01:06.00,0:01:13.00,Default,,0000,0000,0000,,La explicación que le dí a mi jefe, dado que era un software financiero, fue una analogía financiera. Dialogue: 0,0:01:13.00,0:01:14.00,Default,,0000,0000,0000,,La llamé "la metáfora de la deuda" Dialogue: 0,0:01:15.00,0:01:22.00,Default,,0000,0000,0000,,Y dije que "si fallamos en hacer que nuestro software se alinee con lo que entonces entendíamos Dialogue: 0,0:01:22.00,0:01:28.00,Default,,0000,0000,0000,,que era la manera adecuada de pensar sobre objetos financieros entonces íbamos a estar Dialogue: 0,0:01:28.00,0:01:36.00,Default,,0000,0000,0000,,contínuamente encontrándonos con ese deseacuerdo y eso se podía ver como pagar el interés de una deuda". Dialogue: 0,0:01:37.00,0:01:39.00,Default,,0000,0000,0000,,Velocidad Dialogue: 0,0:01:40.00,0:01:45.00,Default,,0000,0000,0000,,Con dinero prestado podés hacer algo más rápido de lo que lo harías de otra manera, pero Dialogue: 0,0:01:45.00,0:01:50.00,Default,,0000,0000,0000,,a menos que devuelvas ese dinero vas a estar pagando intereses. Dialogue: 0,0:01:52.00,0:01:55.00,Default,,0000,0000,0000,,Pensé que pedir prestado dinero era una buena idea, Dialogue: 0,0:01:55.00,0:02:00.00,Default,,0000,0000,0000,,pensé que apurar el software a salir por la puerta para obtener algo de experiencia Dialogue: 0,0:02:00.00,0:02:03.00,Default,,0000,0000,0000,,era una buena idea, pero que por supuesto Dialogue: 0,0:02:04.00,0:02:10.00,Default,,0000,0000,0000,,eventualmente volvés atrás y cuando aprendés cosas sobre ese software Dialogue: 0,0:02:11.00,0:02:19.00,Default,,0000,0000,0000,,vas a pagar esa deuda refactorizando el programa para reflejar la experiencia que adquiriste Dialogue: 0,0:02:19.00,0:02:22.00,Default,,0000,0000,0000,,Carga Dialogue: 0,0:02:22.00,0:02:30.00,Default,,0000,0000,0000,,Creo que hubo muchos casos donde la gente apuraría la salida del software y aprendería cosas Dialogue: 0,0:02:30.00,0:02:37.00,Default,,0000,0000,0000,,pero nunca pondrían ese aprendizaje de nuevo en el software, y que por analogía Dialogue: 0,0:02:37.00,0:02:42.00,Default,,0000,0000,0000,,estaban pidiendo dinero prestado pensando que nunca debería pagar esa deuda. Dialogue: 0,0:02:43.00,0:02:48.00,Default,,0000,0000,0000,,Por supuesto que si hacés eso, por ejemplo con tu tarjeta de crédito, eventualmente todo tu ingreso Dialogue: 0,0:02:48.00,0:02:51.00,Default,,0000,0000,0000,,va a pagar los intereses y tu poder de compra asciende a cero. Dialogue: 0,0:02:52.00,0:02:57.00,Default,,0000,0000,0000,,Por el mismo motivo si desarrollás un programa por un largo período de tiempo sólo agregando Dialogue: 0,0:02:57.00,0:03:02.00,Default,,0000,0000,0000,,características y nunca reorganizando tu entendimiento sobre esas características Dialogue: 0,0:03:02.00,0:03:06.00,Default,,0000,0000,0000,,entonces eventualmente ese programa no contiene ningún entendimiento Dialogue: 0,0:03:06.00,0:03:11.00,Default,,0000,0000,0000,,y todos los esfuerzos para trabajar sobre él toman más y más tiempo. Dialogue: 0,0:03:11.00,0:03:15.00,Default,,0000,0000,0000,,En otros palabras el interés es total, y hacés un progreso nulo. Dialogue: 0,0:03:16.00,0:03:18.00,Default,,0000,0000,0000,,Agilidad Dialogue: 0,0:03:19.00,0:03:26.00,Default,,0000,0000,0000,,Por lo menos un montón de bloggers explican la "metáfora de la deuda" y que confunden Dialogue: 0,0:03:26.00,0:03:32.00,Default,,0000,0000,0000,,lo que pienso en la idea de que podrías escribir código póbremente con la intención de hacer un buen trabajo Dialogue: 0,0:03:32.00,0:03:41.00,Default,,0000,0000,0000,,luego y creo que eso fue la principal fuente de deuda. Nunca estaré a favor de escribir código póbremente, Dialogue: 0,0:03:41.00,0:03:47.00,Default,,0000,0000,0000,,pero estoy a favor de escribir código que refleja tu actual entendimiento sobre el problema Dialogue: 0,0:03:47.00,0:03:50.00,Default,,0000,0000,0000,,aún cuando ese entendimiento sea parcial. Dialogue: 0,0:03:50.00,0:03:59.00,Default,,0000,0000,0000,,Si querés ser capaz de entrar en deuda de esa manera, desarrollando software que no entendés completamente Dialogue: 0,0:03:59.00,0:04:05.00,Default,,0000,0000,0000,,eres sabio por hacer que tu software refleje tu entendimiento de la mejor forma en que puedas Dialogue: 0,0:04:05.00,0:04:10.00,Default,,0000,0000,0000,,entonce cuando viene el momento de refactorizar es claramente el momento en el que repensás lo que escribiste Dialogue: 0,0:04:10.00,0:04:15.00,Default,,0000,0000,0000,,hace más simple refactorizar del modo en que estás pensando ahora mismo. Dialogue: 0,0:04:15.00,0:04:21.00,Default,,0000,0000,0000,,En otras palabras, la analogía de la deuda completa, digamos la habilidad de pagar esa deuda Dialogue: 0,0:04:21.00,0:04:24.00,Default,,0000,0000,0000,,y hacer que la metáfora de la deuda funcione a tu favor Dialogue: 0,0:04:24.00,0:04:27.00,Default,,0000,0000,0000,,depende de que escribas código que sea Dialogue: 0,0:04:27.00,0:04:31.00,Default,,0000,0000,0000,,suficientemente limpio para ser capaz reflejar tu entendimiento actual Dialogue: 0,0:04:31.00,0:04:37.00,Default,,0000,0000,0000,,tu problema, y creo que es una metodología buena en el corazón del Extreme Programming. Dialogue: 0,0:04:37.00,0:04:41.00,Default,,0000,0000,0000,,La "metáfora de la deuda" es una explicación, una de muchas explicaciones de por qué el Dialogue: 0,0:04:41.00,0:04:43.00,Default,,0000,0000,0000,,Extreme Programming funciona.