Mostrando postagens com marcador analogia. Mostrar todas as postagens
Mostrando postagens com marcador analogia. Mostrar todas as postagens

terça-feira, 29 de julho de 2008

Conhecimento vale mais que experiência

Estava lendo um post que veio pela newsletter do javalobby, que achei muito interessante e me fez pensar em algumas coisas.
Resumindo, a conclusão principal do post é: "Não adianta ter anos de experiência em [coloque-aqui-o-que-quiser] da forma errada.", ou seja, muitas vezes os anos de experiência são substituidos pela teoria (sem a prática), esta qual pode ser adquirida de várias maneiras.

Meio confuso não?! Vou tentar explicar um pouco melhor. Nos post do Jurgen Appelo, ele cita a questão da Lobotomia, e cita as seguintes frases, que tentei achar no wikipedia em português, porém as descrições não eram tão boas quanto as em inglês, então traduzo abaixo:

A Lobotomia, ou Leucotomia, que envolve o corte das conexões do Cortex Frontal, foi usado em alguns milhares de pacientes por todo o mundo durante o século 20, o que ocasionava uma mudança de comportamento, com o intuito de "curar" pessoas com esquizofrenia, e depressão profunda. Hoje este procedimento é considerado como "um dos maiores e mais bárbaros erros praticados pela medicina"
Jurgen faz uma pergunta após isso: "Você ainda ficaria impressionado com médico com mais de 20 anos de experiência em Lobotomia?"

O que me chamou atencão neste post foi justamente nunca ter parado para pensar sobre isso, e nunca ter feito uma comparação deste tipo. Realmente, 20 anos fazendo a coisa da maneira errada, vale mais que 1 mês fazendo da maneira certa? Isso nos remete também aquele outro post sobre A Fábula dos Porcos Assados.

O que ele ressalta ainda no post, é que a sua experiência como desenvolvedor não importa muito quanto aplicar a técnica ou tecnologia certa para resolver o problema, agora faz mais sentido aquela analogia de "Para quem só tem um martelo, tudo parece prego."

Outra frase de grande impacto citada por Jurgen, é a seguinte:
"Professionals don't match problems with their experiences. They match them with their knowledge."
tradução livre:
"Profissionais não usam a experiência para resolver os problemas. Eles usam o conhecimento para resolver os problemas."

Isso não quer dizer que você deva ficar em casa lendo livros sobre tudo que você saberá fazer tudo, mas diz que a experiência não diz muita coisa, se junto com ela não vier o conhecimento, e principalmente o conhecimento do correto.

Sem dúvida uma opinião um pouco radical, mas sem dúvida cheia de verdades. O que acha você? Pronto para uma lobotomia? Conheço uma pessoa cheia de experiência! =)

sexta-feira, 27 de julho de 2007

Analogias de Desenvolvimento de Software

Achei uns artigos muitos bons navegando por ai.
Um dos que me "chocou", chamou mais a atenção, espantou... sei lá, um dos que gostei foi este artigo.

Ele me levou a lembrar que lá atrás na faculdade, quando nos era ensinado Análise de sistemas num esquema puramente WaterFall, utilizando abordagens Bottom-Up e Top-Down, nos era dito também, que para construir software deveríamos fazer como o pessoal de Construção Civíl, o qual fazia todo o projeto de um prédio, e depois começava a construir. Se eles conseguem/podem fazer isso por que um simples software não pode ser feito assim?!

No Artigo do primeiro link, ele começa contando uma historinha, contando quando foi para uma construção, ou para uma aula de engenharia civíl, não entendi direito, mas vou traduzir aqui:

"O que você está fazendo aqui?" - Eles perguntaram

Eles eram Encarregados, Gerentes de Projeto, Superintendentes, e estavam fazendo um projeto no Lean Construction Institute (LCI) (o que é isso ai não tenho a mínima idéia, mas eu acho que era pra ser conhecido). Verdade, que que o cara estava fazendo la?

Então o cara começou a explicar: "No desenvolvimento de Software, nos é ensinado que devemos gerenciar projetos como os projetos de Construção Civíl. Onde uma construção é planejada no início, custos e prazos são previsíveis, e os clientes recebem o que eles esperam receber."

Silêncio... "Você está brincando, certo?" "Não! Verdade, é assim que nos é ensinado."

Então, incredulidade torna-se em grades gargalhadas!
Quem já fez alguma construção, ou já precisou de que alguém construisse algo para você (o que é bem mais provável, visto que somos desenvolvedores de software), sabe que a obra sempre custa mais do que no início seu pedreiro disse que custaria, e a maldita obra parece não ter fim. Minha mãe está passando por uma reforma em sua casa, e já fazem quase 2 meses, isso que era pra terminar em 2 semanas. Sem contar, que obras externas sempre dependem das condições climáticas.
Outro artigo que achei legal, simples e direto foi este de Joel Spolsky. Tem ainda este.
Mas realmente uma Analogia mais real é a que Marcos Pereira, descreveu em: Desenvolver Software é igual a dirigir. Um dia ainda será assim em todo o lugar, e a paz mundial reinará! Mas até agora, poucas pessoas tem se beneficiado disso.
Outra pedrada, é um post do Thiago Arrais, onde ele diz que Fábricas de Software são uma analogia levada longe demais.

Acho que uma outra analogia boa para desenvolvimento de software como é feito atualmente neste modelo de WaterFall, está na agricultura. De que depende a agricultura e que o seu plantio tenha um bom rendimento? (Porque sejamos francos, tudo gira em torno do dinheiro. Ok, eu não sou nenhum agrônomo, mas vou tentar não falar merda)
  1. De um bom preparo do solo no princípio - Ter bons profissionais, Análise e Arquitetura inicial
  2. Plantar em época correta. - Saber o que usar.
  3. Cuidado no início, com pesticidas, fungicidas e tudo mais. - Ser maleável quanto a arquitetura incial, pois ela pode mudar conforme o entendimento do que é pra fazer vai aumentando.
  4. Rezar para não chover demais, nem de menos, em tempo de germinação. - Literalmente, rezar para que o entendimento inicial, realmente tenha previsto quase tudo, e que não surjam problemas muito complicados
  5. Saber a hora de colher.
  6. Rezar para não chover demais nem de menos em época de colheita. - Rezar para mostrar pro cliente na hora certa o software, para que ele não se decepcione de início. =)
  7. Conseguir estocar ou vender em uma época que o preço está bom. - Ter um ótimo departamento de Relação com o cliente, para fazer ele enxergar o software mais belo do que realmente é. =)
Talvez não tenha sido feliz em todas as analogias, mas era pra ser um pouco engraçado =)

Enfim, eu ainda trabalho em um modelo WaterFall, não tenho como mudar isso facilmente. Não vou ficar falando por ai, que sou contra tudo, que vamos revolucionar o mundo, matar todos os gerentes que não pensam igual a nós, como muitos falam por ai. Mas quem sabe com o tempo, ou conhecimento necessário, ou status necessário, ou apoio necessário, ou todas essas coisas juntas, eu consiga ir fazendo esta mudança.

E por fim, não poderia faltar aquela velha analogia de desenvolvimento de software.