O Ventilador e o Pirulito

Posted by Emerson Macedo on outubro 23rd, 2008

Faz alguns meses que os gujeiros Rodrigo Yoshima e Carlos Villela blogaram sobre o uso errado da tecnologia numa fábrica de pastas de dentes. Para resolver o problema de caixas vazias que passavam desapercebidas numa linha de produção, a empresa comprou uma ultra-mega-power solução que ainda acabou atrapalhando os trabalhadores da fábrica. Mas os próprios trabalhadores se encarregaram de comprar um ventiladorzinho de 20 dólares e dispensar o mega equipamento.

Quem é Brasileiro e principalmente presenciou as corridas de nossos grandes pilotos de Fórmula 1, provavelmente ainda acompanha a categoria, mesmo que exporadicamente. Eu, criado em uma família muito ligada a esportes, com forte inclinação para F1(por que será que meu nome é Emerson? Alguém consegue advinhar? rs), continuo acompanhando os campeonatos, na esperança de que um brasileiro novamente seja campeão mundial.

Pirulito F1

Eis que no primeiro GP noturno da história da F1 a Ferrari atrapalhou Felipe Massa durante o seu pit-stop com um equipamento ultra moderno que foi desenvolvido para substituir o tradicional pirulito, durante os pit-stops. Esse pirulito foi utilizado por mais de 20 anos e que sempre se mostrou adequado. O novo equipamento fica posicionado em uma altura acima da cabeça do piloto, o que dificulta a visualização em caso de uma nova instrução para parar. O piloto brasileiro perdeu uns 30 segundos pois a mangueira de combustível rompeu-se e sua corrida foi comprometida, inclusive comprometendo a possibilidade de conquiista do campeonato. No pit-stop seguinte, na mesma corrida, a Ferrari voltou a usar o pirulito e no GP seguinte, aposentou de vez a sua engenhoca.

Uma das filosofias que mais gosto para Desenvolvimento de Software nos tempos atuais é KISS. Eu até hoje não sei o motivo de querermos fazer as coisas de forma complicada ao invés de simplificar (eu mesmo já errei muito nisso). Note que simples não significa sem qualidade, mas fazer o suficiente que possa atender a necessidade. As metodologias ágeis da moda como SCRUM / XP falam muito sobre isso. A prática de TDD também tem esse foco, quando prega que devemos fazer o código mais simples possível que atenda a necessidade em questão. E não poderia me esquecer do tão importante princípio de Baby Steps, utilizado em tudo isso que mencionei anteriormente.

Eu sinceramente acho que esse problema é inerente do ser humano e nós é que devemos nos doutrinar pra não cair nessa besteira.

Código do Pânico

Posted by Emerson Macedo on setembro 11th, 2008

Certa vez, passei por uma situação que acredito que você já passou um dia na sua vida profissional. Tive que implementar uma funcionalidade nova num projeto e precisava alterar diversas partes do código desse projeto para implementar essa funcionalidade. Infelizmente esse projeto não tem uma boa cobertura de testes automatizados. Existem até alguns testes, mas não o suficiente.

Dentro do “possível”, adicionei testes no projeto para melhorar o nível de confiança nas alterações e conseguir trabalhar um pouco mais sossegado quanto a qualidade do que estava sendo desenvolvido. Aproveitei a oportunidade para estimular meus colegas no uso de testes automatizados. Eu poderia simplesmente ignorar os testes e manter o “padrão” atual do projeto, mas como bem disse uma vez o Guilherme Chapiewski num excelente post sobre inclusão de testes num projeto, no momento em que comecei a modificar o código desse projeto foi o momento em que comecei a colocar testes nele.

Nessa experiência, enumerei 3 sintomas que podem ser um indício de que seu código está virando o Código do Pânico. São eles:

  1. Classes/Metodos/Atributos que aparentemente não são mais usados não são removidos, pois não existe certeza de que a remoção deles não vai causar problema.
  2. Existe um medo enorme em modificar um método. Geralmente cria-se outro que faz “quase a mesma coisa” e com um nome parecido, pois estragar aquele método pode gerar até uma demissão.
  3. Desenvolvedores adicionam gambiarras (ou bacalhau pra quem prefere) sem a menor pena, afinal de contas, o código já está cheio delas mesmo.

A maioria dos problemas que tornam o código do seu projeto um Código do Pânico se resolvem com praticas como TDD, mantendo uma boa suite de testes e também retirando as gambiarras do seu código, que quando não removidas, estimulam outros desenvolvedores a adicionar mais um pouco sempre que a pressa pede.

O quanto você tem medo de alterar o código do seu projeto?

Primeiro Sprint - Inscrições BBB9 no Ar !!!

Posted by Emerson Macedo on julho 23rd, 2008

Quando entrei aqui na Globo.com não achei que ia postar alguma coisa tão rápido. Mas acontece que ontém colocarmos nos ar o site de inscrições para o BBB9. Como todo projeto na vida, esse teve seus desafios, afinal de contas, colocar o site de inscrições para o BBB9 em 1 semana apenas, só mesmo com metodologias ágeis.

Aproveitando esse post, vou falar um pouco do novo time e do novo ambiente de trabalho.

Bem, basicamente trabalhamos praticamente todos juntos no nosso “mesão”.

Mesão

Como podem ver, o “mesão” é bem compacto, mas ao mesmo tempo cada um tem um espaço razoável pra não ficar apertado. Existem apenas 2 membros do time que ainda não migraram pra cá, mas o farão em breve.

Como estarmos todos bem perto um do outro, a comunicação foi (é) bem intensa, fazendo que o ruido na seja praticamente nulo. O compromentimento do time também foi algo bem interessante. O pessoal que por alguns momentos havia terminado suas tarefas, se prontificava a ajudar os demais membros do time para garantir a nossa entrega, afinal de contas, BBB é algo que tem data fixa pra entrar.

O melhor de tudo foi receber um email do Product Owner hoje pela manhã agradecendo e elogiando todo o time.

Os anuncios na TV estão bombando, e pra quem gosta de BBB o site de inscrições é: http://bbb.globo.com/

Workshop Modelagem Agil e Domain Driven Design - Eu fui

Posted by Emerson Macedo on junho 17th, 2008

No último fim de semana (13 e 14 de junho/2008), participei com alguns amigos do Workshop de Modelagem ágil e DDD promovido pela Fratech em São Paulo.

O Workshop foi bem interessante, abordando temas atuais e de extrema importância no conhecimento do Desenvolvedor de Software.

No primeiro dia, o foco foi bastante em FDD, M3 e Agile Draw. Foi bem legal esse primeiro dia, pois eu experimentei algumas técnicas que nunca havia tentado. Confesso que não simpatizei muito com a modelagem com as figurinhas, nem muito com a FBS, mas eu vou pensar mais sobre o assunto e tentar me aprofundar um pouco pra tirar melhores conclusões.

Da esquerda pra direita: Colega de verde(rs), Gustavo, Eu, Colega de Branco(rs)

No segundo dia, o foco foi todo vontado para Domain Driven Design e UML em Cores. Foi bem interessante, pois o assunto tem um hype nos dias de hoje e é um assunto bastante motivador também.

A técnica de UML em Cores me ajudou um pouco a identificar algumas coisas em Model Driven Design, mas ainda assim, preciso testar mais pra definir se usarei essa técnica.

No mais gostaria de dar os parabéns ao Felipe Rodrigues e o Manoel Pimentel pelo evento que foi muito legal e tenho certeza que surgirão outros.

Da esquerda pra direita: Adndré, Eu, Felipe, Gustavo e Manoel

O unico problema é ter que se despencar do Rio de Janeiro toda vez, pois aqui estamos meio carentes de coisas do tipo, exceto pelo fato que as ultimas reuniões do RioJUG foram excelentes.

Ta cada vez pior viu

Posted by Emerson Macedo on maio 22nd, 2008

Esses dias eu estava procurando um curso básico em informática para minha esposa, que nunca gostou de computador, mas já se convenceu que não dá mais pra correr, rs. Acontece que me deparei com um curso profissionalizante chamado Programador de Sistemas. Será que alguém aprende a ser um programador com 30 horas de lógicca, 30 horas de modelagem de dados, 45 horas de VB.Net (que provavelmente só vai ensinar Visual Studio.Net) e 45 horas de Delphi? (Meu Deus, Delphi em 2008?). É uma irresponsabilidade total criar um curso desses pra enganar pessoas dessa forma. Eu jamais daria um curso desses, sabendo que a coisa não é tão simples assim.

Sabe o que eu fico pensando disso tudo?

  1. A coisa ta cada vez pior em termos de ensino para um programador
  2. Coitado das pessoas que tão entrando nesses cursos e achando que sairão profissionais em programação
  3. Mais e mais gente despreparada entrando no mercado
  4. Mais projetos indo pro buraco
  5. Os poucos que são bons ganhando cada vez mais (Parece bom, mas tem os efeitos colaterais, que é você ter dificuldade de arrumar um lugar legal pra trabalhar, visto que a quantidade de profissionais preparados está ficando cada vez menor)

Por que todo mundo acha que pode ser programador? Eu acho que se eu tivesse que ser médico, morreria de fome, pois só de olhar sangue já fico tonto. As pessoas tem talentos diferentes e programação não é aprender a usar ferramentas. Programação é criação. Criação é talento. Talvez eu não tenha talento pra criar uma logomarca, mas para criar um software sim. E outra pessoa o inverso, que seja.

Cada um na sua, por favor.

Quando o freelancer é uma furada.

Posted by Emerson Macedo on março 19th, 2008

Estive pensando esses dias sobre trabalho freelancer. Por muito tempo aceitei esse tipo de trabalho, pois sempre gerava uma grana extra no bolso. Acontece que comecei a perceber que toda vez que eu pegava um freela pra fazer aquilo me sugava, e naturalmente não conseguia tempo para estudar, me manter atualizado e ainda por cima sempre tinha uma enorme dor de cabeça e por algumas vezes ficava doente, pois o esforço era muito grande.

Você pode querer me questionar dizendo: Mas você vai trocar uma grana boa extra por estudar? Isso você faz depois. Tudo bem, realmente eu posso estudar depois que terminar o freela, isso é uma opção. Mas será que é uma boa opção ralar num freela e deixar pra estudar depois? Vejamos …

Recentemente uma frase antiga começou a martelar na minha cabeça: Work Smarter, Not Harder. Sinceramente nem sei de quem originalmente é essa frase, pois já li em vários lugares e livros então não tenho certeza do criador da mesma. Bom, isso pouco importa. O fato é que comecei a perceber que a maioria dos freelancers que pintavam eram coisas que não me acrescentavam muito em meu conhecimento. Geralmente eram sistemas de cadastro/consultas/relatórios, onde já tinha um bom punhado de código pronto, sem testes automatizados, com build complicado e eu não tinah autonomia para ao menos tentar arrumar a bagunça. Isso sem contar aqueles projetos onde o prazo simplesmente é impossível de cumprir mas como vai render uma ótima grana você se mata de trabalhar de olho no dinheiro. A conclusão que cheguei é que eu estava trabalhando demais, perdendo meus momentos de descanso, lazer com a família e não estava me mantendo atualizado com as tecnologias. Mas então como ganhar mais dinheiro? Se estou dispensando o freelancer certamente vou deixar de ganhar uma boa grana certo? Será que existe uma alternativa interessante?

Um tempo atrás comecei a pensar como poderia ganhar mais dinheiro sem ter que fazer freelance, ou seja, sem ter que trabalhar mais. Parece complicado, mas é perfeitamente possível. A tese que eu defendo é que se você utilizar perto de 1/2 do tempo que você gasta com freelancer estudando e participando de projetos open source interessantes (Esses sim vão te agregar alguma coisa), futuramente você poderá continuar trabalhando suas 8 horas por dia e ganhando um salário talvez melhor que o seu atual+freela sem ter que perder seus fins de semana, lazer, descanso, entre outros. Sem contar que trabalhar com as tecnologias de ponta e ser pioneiro em implementações no local onde você trabalha é um prazer enorme.

Mas então qualquer tipo de trabalho freelancer não vale a pena? Sinceramente acho que existem projetos que valem a pena, mas posso contar nos dedos e não passa dos dedos da primeira mão. Via de regra, eu não participo mais de projetos freelancer, a não ser que seja algo muito interessante.

Pílula vermelha: Ta valendo a pena oferecer?

Posted by Emerson Macedo on fevereiro 28th, 2008

A área de Desenvolvimento de Software passa por uma grande mudança nos últimos anos. Existe um apelo muito grande na comunidade de desenvolvedores de software para práticas ágeis, menos burocracia e soluções práticas e eficientes para se trabalhar.

Acontece que pessoas com perfil inovador, ou mesmo pessoas mais tradicionais mas de mente aberta, se empolgam facilmente e tentam convencer as pessoas que essas “novidades” são ótimas e que a forma”antiga” com que fazemos as coisas não funciona, ou melhor nunca funcionou de forma decente.

Ai começam os problemas. Por mais incrível que pareça, as pessoas de TI em sua maioria são muito mente fechada, e quando se fala de algo do tipo a maioria delas tem uma resistência enorme e geralmente faz alguma gozação, ou simplesmente menospreza dizendo: “Meu filho, a IBM que criou isso? A Sun? A Oracle? Ah, foi Fulano de tal? quem é esse cara? Não quero saber disso não ..”

Felizmente, encontro pessoas abertas, que ouvem, percebem e ao menos procuram conhecer sobre os assuntos e na maioria das vezes a pessoa passa a entender as mudanças e se tornar adepto.

O problema disso tudo é que em vários momentos tem gente mente fechada que nos enxerga como maluco, quase uma comunidade de anarquistas, algo como se fosse uma rebelião contra o modelo atual. De fato, é uma insatisfação total, pois a coisa já ta mais que provado que não funciona, basta ver os prazos estourando, pilhas de documentos que estão sempre desatualizados e software com qualidade a baixo do aceitável.

Depois de levar tanto fora e ser tratado mau algumas vezes por algumas pessoas, será que ta valendo a pena ainda oferecer a pílula vermelha?

Acho que vou adotar a idéia do Morpheu e evitar oferecer essa pílula para as mentes adultas (Aqui você entende como quiser). Melhor oferecer com mais critério, não pelos mesmos motivos do filme matrix, mas pra evitar desgaste com pessoas, que é muito chato.

Com as mudanças que ocorreram e ainda estão ocorrendo na área de Desenvolvimento de Software, como agile, TDD (Acreditem, apesar de não ser novo tem muita gente que ainda nem sabe o que é isso), SCRUM, etc, é muito comum que as pessoas com perfil inovador, ou mesmo pessoas mais tradicionais mas de mente aberta, se empolguem bastante e tentem convencer bastante gente de que essas mudas são ótimas e que a forma com que fazemos as coisas nas grandes corporações aqui do Brasil, com processos burocráticos, quilos de documentação, metodologias Waterfall disfarçadas de RUP, simplesmente não servem mais, ou melhor, nunca serviram.

Mas eu te disse, eu te disse…

Posted by Emerson Macedo on fevereiro 21st, 2008

Na década de 70, passava na TV um desenho chamado Carangos e Motocas (Wheelie and The Chopper Bunch). Eu nem era nascido nessa epoca, mas a famosa frase Mas eu te disse, eu te disse… ecoou por algum tempo ainda.

Meu primeiro post deste blog foi sobre a instalação de um componente de GNV no meu carro. Na ocasião, o problema todo foi eu ter feito uma escolha que era performática mas tinha sérios problemas na manutenção. Pois bem ….

Na semana passada, mais precisamente na segunda-feira, meu carro enguiçou próximo a empresa onde trabalho enquanto me deslocava de onde moro até o destino. Em princípio tudo bem, afinal de contas isso são coisas que acontecem. Após colocar o carro em uma oficina próxima onde meu carro parou e ver que o profissional desta não sabia muito bem como resolver meu problema, reboquei o carro até o profissional de minha confiança que sempre fez manutenção do meu carro. Chegando lá, o mesmo detectou rápidamente que o bendito do Chip GNV, que é o que me dava mais performance estava com problemas e misturando os combustíveis. Naquele momento veio a voz interior dizendo: Mas eu te disse, eu te disse, eu te disse, eu te disse, eu te disse…

Tive que levar meu carro na oficina matriz da empresa de GNV, pois como disse no outro post, com o chip só poderia ser visto lá o problema. O pessoal “especializado” jurava de pé junto que não era o chip, mas mesmo assim solicitei que modificassem a instalação para os componentes que as filiais possam dar manutenção.

Não tem nada muito de novo nessa história, tão somente o que eu havia previsto se cumpriu (Eu te disse …). O importante é ver como não pensar em manutenção quase sempre nos dará dor de cabeça no futuro e isso acontece também com nossos softwares.

Tirei duas lições importantes:

  1. Profissional confiável está dificil hoje em dia.
  2. Qualquer produto que for adquirir, pensar em como será a manutenção deste.

A maravilhosa teta chamada SOA

Posted by Emerson Macedo on fevereiro 15th, 2008

Nos últimos meses, tenho ajudado a empresa onde trabalho a escolher um fornecedor para implantar SOA na casa. Infelizmente, não nos está autorizado a fazermos nós mesmos. Os fornecedores escolhidos pela empresa para nossa avaliação, são quase todos fornecedores [A-Za-z]{3}.

Tenho percebido de maneira geral que a maioria desses fornecedores não conhece muito do que nos tem apresentado. Uma simples pergunta sobre Message Broker e ninguém, absolutamente nenhum dos fornecedores soube responder direito. Na verdade, alguns deles confundiram com o produto Message Broker da IBM e outros com ESB.

Teve uma outra empresa, que não posso mencionar o nome por motivos óbvios, que conseguiu vender um projeto SOA aqui dentro, que não era nada mais que instalar um ESB, um servidor de processos e fazer um sisteminha de referência e só !!!! O Pior de tudo é que ganharam uma grana preta com isso.

O fato é que está muito difícil opinar sobre qual fornecedor a empresa deve confiar o “projeto” SOA, e o cenário atual, com a pressão vinda de cima pra baixo para implantar alguma coisa de SOA, só porque está na moda e sem as vezes nem entender o que é, faz como que muitos fornecedores consigam essa maravilhosa TETA pra mamar nas grandes corporações.

Por que será que a galera ta desanimando de programar?

Posted by Emerson Macedo on janeiro 18th, 2008

Tenho visto já faz um tempo dezenas de programadores que desanimaram e sequer estão programando. No meu circulo de amizades tenho percebido algumas pessoas também. Comecei a pensar sobre o assunto e pude observar 3 motivos mais frequentes:

  • Salário: Infelizmente aqui no Brasil a maioria esmagadora das empresas não valoriza quem gosta de programar. Mesmo que não tenham perfil ou não gostem, escolhem ir para gerência ou são empurrados para isso ou para outros cargos. Isso rola sempre nas empresas de 3 letrinhas.
  • Processos extremamente burocráticos: Para desenvolver poucas linhas de códigos são necessários 1589 documentos e 6731 reuniões.
  • Gosto: Não gostam mais ou nunca gostaram realmente desta atividade. Conheço muita gente que está investindo na bolsa doido pra arrumar alguma coisa pra parar de trabalhar com TI. (não que seja errado investir, pelo contrário, eu sou totalmente a favor) . Outras pessoas estão estudando outras coisas também com o objetivo de sair da área.

Bom, cheguei a conversar com um amigo de infância sobre o assunto e este me disse que não estava programando muito devido a fase atual do seu projeto ser a fase de documentação, e ele acha isso muito chato e preferia estar programando que é o que ele gosta.

Na contramão disso tudo, estou cada vez mais empolgado e percebo que no meio deste desânimo todo ainda existe gente como eu e alguns que conheço que amam programar e não fazem disso apenas uma forma de ganhar dinheiro.

PS: Philip, se por acaso você ler este post, me desculpe a quantidade de referências ao seu blog sem ter te comunicado. Fiz isso para não explicar alguma coisa que já o foi feito.


Copyright © 2007 codificando.com. All rights reserved.