[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:00.37,0:00:02.09,Default,,0000,0000,0000,,Metáfora Dialogue: 0,0:00:04.07,0:00:10.62,Default,,0000,0000,0000,,Comecei a me interessar sobre a forma como metáforas influenciam o nosso pensamento Dialogue: 0,0:00:10.62,0:00:13.26,Default,,0000,0000,0000,,depois de ler o livro de George Lakoff e Mark Johnson Dialogue: 0,0:00:13.26,0:00:15.18,Default,,0000,0000,0000,,"Metaphors We Live By". Dialogue: 0,0:00:15.18,0:00:17.87,Default,,0000,0000,0000,,Uma ideia importante é a de que Dialogue: 0,0:00:17.87,0:00:25.26,Default,,0000,0000,0000,,nós raciocinamos por analogia com metáforas que existem no nosso idioma. Dialogue: 0,0:00:26.50,0:00:28.09,Default,,0000,0000,0000,,Dívida Dialogue: 0,0:00:29.58,0:00:33.57,Default,,0000,0000,0000,,Eu criei a metáfora da dívida para explicar Dialogue: 0,0:00:33.57,0:00:38.55,Default,,0000,0000,0000,,o refatoramento que estávamos fazendo no aplicativo WyCash. Dialogue: 0,0:00:38.55,0:00:44.82,Default,,0000,0000,0000,,Era um software escrito em Smalltalk Dialogue: 0,0:00:44.82,0:00:46.83,Default,,0000,0000,0000,,e era importante para mim Dialogue: 0,0:00:46.83,0:00:53.02,Default,,0000,0000,0000,,que acumulássemos o aprendizado obtido sobre o aplicativo ao longo do tempo Dialogue: 0,0:00:53.02,0:00:57.57,Default,,0000,0000,0000,,modificando o programa para que parecesse Dialogue: 0,0:00:57.57,0:01:02.18,Default,,0000,0000,0000,,que nós sabíamos o tempo todo o que estávamos fazendo Dialogue: 0,0:01:02.18,0:01:06.62,Default,,0000,0000,0000,,e também para parecer que havia sido fácil fazê-lo. Dialogue: 0,0:01:06.62,0:01:10.84,Default,,0000,0000,0000,,A explicação que dei ao meu chefe, dado que era um software financeiro, Dialogue: 0,0:01:10.84,0:01:14.74,Default,,0000,0000,0000,,foi uma analogia financeira que eu chamei de "a metáfora da dívida". Dialogue: 0,0:01:14.74,0:01:20.58,Default,,0000,0000,0000,,Eu disse que se falhássemos em fazer o nosso programa se alinhar Dialogue: 0,0:01:20.58,0:01:27.81,Default,,0000,0000,0000,,com o que entendíamos ser a forma apropriada de se pensar a respeito dos objetos financeiros Dialogue: 0,0:01:27.81,0:01:34.42,Default,,0000,0000,0000,,então iríamos continuamente tropeçar nesse desacordo, e isso iria deter o nosso avanço, Dialogue: 0,0:01:34.42,0:01:36.31,Default,,0000,0000,0000,,seria como pagar os juros de uma dívida. Dialogue: 0,0:01:36.99,0:01:38.89,Default,,0000,0000,0000,,Velocidade Dialogue: 0,0:01:40.31,0:01:45.22,Default,,0000,0000,0000,,Com dinheiro emprestado você pode fazer coisas mais cedo do que poderia sem ele Dialogue: 0,0:01:45.22,0:01:51.44,Default,,0000,0000,0000,,mas até que você pague de volta este dinheiro, você estará pagando juros. Dialogue: 0,0:01:51.44,0:01:55.78,Default,,0000,0000,0000,,Eu achava que pegar dinheiro emprestado era uma boa ideia, Dialogue: 0,0:01:55.78,0:01:59.32,Default,,0000,0000,0000,,eu achava que entregar software rapidamente, Dialogue: 0,0:01:59.32,0:02:01.91,Default,,0000,0000,0000,,a fim de ganhar alguma experiência com ele, era uma boa ideia Dialogue: 0,0:02:01.91,0:02:07.41,Default,,0000,0000,0000,,mas é claro, em algum momento você teria que voltar Dialogue: 0,0:02:07.41,0:02:12.58,Default,,0000,0000,0000,,e ao aprender coisas a respeito do software, você iria pagar aquele empréstimo Dialogue: 0,0:02:12.58,0:02:20.06,Default,,0000,0000,0000,,refatorando o programa para refletir o entendimento que você adquiriu. Dialogue: 0,0:02:20.06,0:02:22.10,Default,,0000,0000,0000,,Carga Dialogue: 0,0:02:23.24,0:02:28.21,Default,,0000,0000,0000,,Acho que há muitos casos em que as pessoas entregam software rapidamente Dialogue: 0,0:02:28.21,0:02:34.18,Default,,0000,0000,0000,,e aprendem coisas, mas nunca colocam aquele aprendizado de volta no programa Dialogue: 0,0:02:34.18,0:02:39.02,Default,,0000,0000,0000,,e por analogia, isso é como Dialogue: 0,0:02:39.02,0:02:43.03,Default,,0000,0000,0000,,pegar dinheiro emprestado achando que você nunca precisará pagá-lo. Dialogue: 0,0:02:43.03,0:02:45.16,Default,,0000,0000,0000,,É claro que, se você fizer isso, Dialogue: 0,0:02:45.16,0:02:46.92,Default,,0000,0000,0000,,com seu cartão de crédito, por exemplo, Dialogue: 0,0:02:46.92,0:02:50.40,Default,,0000,0000,0000,,eventualmente todo a sua renda será para pagar os juros Dialogue: 0,0:02:50.40,0:02:52.43,Default,,0000,0000,0000,,e seu poder de compra vai a zero. Dialogue: 0,0:02:52.43,0:02:56.22,Default,,0000,0000,0000,,Da mesma forma, se você desenvolver um programa por um longo período de tempo, Dialogue: 0,0:02:56.22,0:02:58.37,Default,,0000,0000,0000,,apenas adicionando funcionalidades Dialogue: 0,0:02:58.37,0:03:02.90,Default,,0000,0000,0000,,e nunca reorganizando o código para refletir o seu entendimento dessas funcionalidades Dialogue: 0,0:03:02.90,0:03:07.27,Default,,0000,0000,0000,,eventualmente o seu programa não conterá mais nenhum entendimento Dialogue: 0,0:03:07.27,0:03:11.03,Default,,0000,0000,0000,,e todos os esforços para trabalhar nesse software tomarão mais e mais tempo. Dialogue: 0,0:03:11.03,0:03:13.88,Default,,0000,0000,0000,,Em outras palavras, todo o seu tempo será para pagar os juros Dialogue: 0,0:03:13.88,0:03:16.01,Default,,0000,0000,0000,,e você não fará mais nenhum progresso. Dialogue: 0,0:03:16.38,0:03:18.14,Default,,0000,0000,0000,,Agilidade Dialogue: 0,0:03:18.64,0:03:25.17,Default,,0000,0000,0000,,Muitos bloggers tem explicado a metáfora da dívida Dialogue: 0,0:03:25.17,0:03:29.35,Default,,0000,0000,0000,,e eu acho que eles a confundem com a ideia de que Dialogue: 0,0:03:29.35,0:03:34.28,Default,,0000,0000,0000,,você poderia escrever código de baixa qualidade com a intenção de melhorá-lo depois Dialogue: 0,0:03:34.28,0:03:38.46,Default,,0000,0000,0000,,pensando que seria essa a fonte primária da dívida. Dialogue: 0,0:03:38.46,0:03:42.07,Default,,0000,0000,0000,,Eu nunca sou a favor de escrever código de baixa qualidade Dialogue: 0,0:03:42.07,0:03:47.19,Default,,0000,0000,0000,,mas sou a favor de escrever código que reflete a sua compreensão atual do problema Dialogue: 0,0:03:47.19,0:03:50.36,Default,,0000,0000,0000,,mesmo que essa compreensão seja parcial. Dialogue: 0,0:03:50.36,0:03:55.46,Default,,0000,0000,0000,,Se você quiser ser capaz de adquirir uma dívida dessa maneira, Dialogue: 0,0:03:55.46,0:03:59.35,Default,,0000,0000,0000,,desenvolvendo um software que você ainda não compreende completamente, Dialogue: 0,0:03:59.35,0:04:05.26,Default,,0000,0000,0000,,você deverá fazer esse software refletir o seu entendimento da melhor forma possível Dialogue: 0,0:04:05.26,0:04:08.65,Default,,0000,0000,0000,,para que quando chegue a hora de refatorar Dialogue: 0,0:04:08.65,0:04:11.77,Default,,0000,0000,0000,,esteja claro o que você estava pensando quando o escreveu Dialogue: 0,0:04:11.77,0:04:15.98,Default,,0000,0000,0000,,e fique mais fácil você refatorar para que ele se alinhe com o seu entendimento atual. Dialogue: 0,0:04:15.98,0:04:18.91,Default,,0000,0000,0000,,Em outras palavras, a metáfora da dívida, Dialogue: 0,0:04:18.91,0:04:21.62,Default,,0000,0000,0000,,ou seja, a habilidade de pagar uma dívida, Dialogue: 0,0:04:21.62,0:04:24.82,Default,,0000,0000,0000,,e fazer a metáfora funcionar a seu favor Dialogue: 0,0:04:24.82,0:04:29.52,Default,,0000,0000,0000,,depende de você escrever um código limpo o suficiente para que você seja capaz de refatorá-lo Dialogue: 0,0:04:29.52,0:04:32.27,Default,,0000,0000,0000,,no momento em que você entender melhor o problema que está tentando resolver. Dialogue: 0,0:04:32.27,0:04:34.36,Default,,0000,0000,0000,,Eu acho que essa é uma boa metodogia. Dialogue: 0,0:04:34.36,0:04:37.24,Default,,0000,0000,0000,,Ela está no cerne do Extreme Programming, Dialogue: 0,0:04:37.24,0:04:41.15,Default,,0000,0000,0000,,e é uma boa explicação, uma das muitas explicações Dialogue: 0,0:04:41.15,0:04:43.65,Default,,0000,0000,0000,,de por que o Extreme Programming funciona. Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,, Dialogue: 0,9:59:59.99,9:59:59.99,Default,,0000,0000,0000,,