AgileBrazil 2011 – parte 2

Essa parte é sobre minha palestra no AgileBrazil 2011. Sexta-feira, resolvi que apenas apresentaria minha palestra, depois iria curtir Fortaleza (sério, aquele lugar é muito bom!).

Enfim, minha palestra foi Mantendo a Qualidade dos Códigos de Teste, e nela resolvi arriscar duas coisas novas: primeira, em fazer uma palestra para pessoas de nível intermediário, para não ter que ficar explicando o que são mocks, stubs, etc. Segundo, que a palestra seria de duas horas, para dar tempo de falar tudo o que eu queria.

Claro, a segunda opção quase me deu um tiro no pé. Primeiro, porque para não soar irreal, eu resolvi que todo o código da palestra (que por sinal, está disponível no link acima. Recomendo que vocês baixem o link, a versão do slideshare esconde algumas coisas) ficaria disponível no Github, com exemplos reais (assim, qualquer pessoa poderia rodar os códigos e ver que é possível sim fazer testes daquela forma). Segundo, porque essas duas idéias me tomaram um tempo absurdo para escrever a palestra. Demorei MUITO para fazê-la, bem mais do que eu esperava. E terceiro, porque descobri que duas horas também não é muito tempo…
(more…)

A Maldita “Parte Teórica”

Uma das frases que eu mais odeio, quando converso com alguém muito estudioso mas com pouca prática, é a frase “mas você sabe que, por definição…”. Isso sempre me lembra o velho ditado “na prática, a teoria é outra” e o post de hoje é sobre isso: como eu odeio teoria não aplicada.

Isso é especialmente verdade em programação. Graças à frase “mas por definição, a equipe que testa tem que ser diferente de quem desenvolve” atrasa ou freia completamente Test-Driven Development, assim como várias outras “verdades” são seguidas, metodicamente, desde os primórdios da programação e as pessoas nem sequer sabem se é ainda válido.

Pegando, por exemplo, Design Patterns. Eu não sou contra a idéia geral dos design patterns, apenas questiono (e questiono MUITO mesmo) quando usá-los. É comum ver códigos que são relativamente simples que usam três ou quatro patterns diferentes, sem nenhum motivo aparente.
(more…)

Minha Saída de um Cargo Público

Bom, para os que não sabem, eu deixei um cargo público, estatutário, numa universidade federal. Na verdade, pedi um afastamento, mas gostaria de não voltar para lá e conseguir guiar minha vida de outras formas. O motivo é muito parecido com outros que já vi, mas acho legal contar um pouco da história também.

Quando se usa o termo “a máquina do governo”, acredito sinceramente que o termo é bem apropriado. Quando se fala a palavra “máquina”, eu pelo menos imagino aquelas máquinas antigas, totalmente mecânicas, que fazem um barulho absurdo e soltam fumaça e cheiros enquanto funcionam. O engraçado dessas máquinas antigas é que, mesmo com essas características peculiares, digamos assim, elas funcionam. Claro, comparando com modelos mais modernos, elas são BEM piores, são mais lentas, tem BEM menos recursos, mas com essas máquinas antigas, mesmo acumulando um pouco de ferrugem aqui, ou arrebentando uma correia ali, elas continuam funcionando como se nada tivesse acontecido. Detalhe que essas máquinas antigas gastam mais de energia, combustível, etc, e isso também é uma metáfora apropriada…

Assim é o governo. Pior ainda, há uma completa resistência em adotar coisas mais modernas, em mudar algo que funciona mal, mas que está em produção há anos, ou de arriscar algo novo: desde linguagens até frameworks diferentes.

E isso não é a pior parte.
(more…)

Update: o que estou estudando?

Como faz tempo que não posto nada no blog (falta tempo), resolvi fazer este post meio que para iluminar um pouco o que tenho estudado ultimamente.

Comecei a aprender Scala. Na verdade, peguei esse tempo para estudar linguagens interessantes, que há tempos quero estudar como Scala, Haskell e Lisp. Criei um repositório de testes para brincar com essas linguagens no meu github: https://github.com/mauricioszabo/learning. Futuramente, farei posts sobre Scala também, que é uma linguagem interessante para substituir Java.

Comecei também a estudar desenvolvimento para Android. Instalei o emulador, fiz uns “hello, worlds” com Scala, Java e JRuby (Ruboto), o suficiente pra descobrir que rodar algo em Ruboto é inviável de tão lento…
(more…)

A Humanidade de um Cientista

Esses dias, estava lendo um blog de um professor daqui da UFABC. Um professor que, conforme a noticia oficial, “faleceu em circunstâncias trágicas”. Não o conhecia, pessoalmente, mas gostaria mesmo de tê-lo conhecido. Alguém que possuía uma inteligência acima do normal, alguém que via e sentia acima de sua inteligência, inconformado com o mundo, e pelas suas postagens, inconformado consigo mesmo.

Alguém que juntou algumas cadeiras, no décimo primeiro andar do prédio, e de lá se atirou.

Não quero discorrer sobre o quão certo ou errado isso é. Religiões o culpariam, alguns apontam o dedo e dizem “suicida!”, mas a verdade é que: 1) ninguém sabe o que ele estava passando (nem mesmo eu, só posso deduzir brevemente pelo seu diário abandonado na internet), e 2) eu acredito, sinceramente, que cada um de nós é dono de sua própria vida, por mais que algumas religiões insistam em contrário, por mais que a própria lei brasileira criminalize o suicídio. Sua escolha foi errada? Sim, pelo lugar escolhido. Acredito que muitas pessoas devam ter sido obrigadas a ver algo que não estavam preparadas, mas também, vejo que isso expõe certas verdades ocultas.

Em primeiro lugar, por que escolher a universidade, seu local de trabalho? Por que escolher logo a entrada do prédio, um lugar aonde todos veriam sua decisão, e ao mesmo tempo ter pensado em um lugar aonde, com toda a certeza, ele não cairia sobre ninguém?

Sua morte foi noticiada como “circunstâncias trágicas”. Claro, suicídios normalmente incitam mais suicídios quando são noticiados como tal. Não caberia uma discussão maior sobre o assunto? Por que ocultar um suicídio com medo de uma “epidemia”, ao invés de tentar evitar que as pessoas tenham essa vontade? Se é sabido que isso gera epidemia, por que não estudar e tentar minimizar os motivos que levam pessoas a quererem tirar sua própria vida? Ou será que isso não é, digamos, interessante para a “sociedade”? Eles realmente não acham que criminalizar o suicídio, ou dizer “quem se mata vai pro inferno” vai evitar esse tipo de incidente, não é?
(more…)

Retrospectiva 2010

Demorei um pouco mais do que eu gostaria para escrever esse post mas, vamos lá: retrospectiva do ano todo. Este será um post bem pessoal, mas como sempre, nem só de código vive uma pessoa: junto, há uma turbulência de sentimentos que acabam influenciando a vida toda e a de quem estiver próximo.

Em 2010, tudo indicou que seria um péssimo ano. E, na maior parte, ele foi realmente muito ruim, mas com todas essas coisas ruins, algo de bom surgiu no meio das frustrações.

Foi um ano de rubys e aprendizados. Logo no começo do ano, perdi um cargo de chefia que significava muito mais do que eu imaginava, e isso me inspirou a escrever artigos e palestras. Me inscrevi no AgileBrazil, aonde fui palestrante e acredito que deu para mostrar muita coisa boa que foi feita em meu trabalho, muito embora esse trabalho não seja reconhecido pelos próprios gestores. Logo depois, participei pela primeira vez do FISL, também como palestrante. Pouco antes, ingressei no Grupo de Usuários de Ruby, o GURU-SP, e para minha surpresa fui reconhecido no FISL, e pouco tempo depois no RubyConfBR (por sinal, um dos melhores eventos que já fui).

Em todos esses eventos, mais do que Ruby, acabei aprendendo outras coisas bem interessantes. Me meti a usar CouchDB em alguns experimentos caseiros, comecei a me aventurar bem mais com JavaScript e até a gostar da linguagem, e aprendi um pouco mais sobre as técnicas de desenvolvimento de sistemas complexos, embora infelizmente eu não tenha tido oportunidade ainda para aplicar os conhecimentos em um sistema realmente complexo. Como certas coisas insistem em não mudar, mesmo estudando muito mais do que eu imaginava, nesse ano, ainda assim não consigo gostar de Java, mas é a vida…
(more…)

Ensaio Sobre Tesouras de Plástico sem Ponta

Pode parecer estranho o título deste post, mas na verdade ele não é apenas sobre aquelas tesouras de criança, mas sobre segurança e como ela afeta nossa vida. Mas, para isto, é melhor começar com uma história simples de diferença de cultura:

Na pré-escola, professores e professoras sempre insistiam para usarmos “tesouras sem ponta”, que normalmente significava aquelas tesouras minúsculas com cabo de plástico e que não cortavam nem uma folha de papel direito. Quando você é criança, porém, tudo é divertido (até o fato da tesoura não cortar), e no fim você ou pede emprestada uma tesoura de outra criança, que ainda não perdeu o corte, ou acaba cortando na mão, quando o corte for reto.

Agora, vamos para outra cultura: Japão. Em animes, você normalmente vê crianças e adolescentes com aulas de culinária, prendas domésticas, ou semelhantes. Nestas aulas, os adultos supervisionam, mas são os alunos quem realmente acendem o fogo, usam facas pontudas, etc. A idéia, até onde eu sei, é ensinar desde pequeno como usar uma ferramenta que pode potencialmente ser perigosa, como ensinar a ter cautela.

Imagine, agora, você com trinta anos, um cabeleireiro, estilista, artista plástico, sendo obrigado a usar uma tesoura de plástico sem ponta? Um cozinheiro que precisa de “provadores”, “acendedores de fogão”, porque, ora, no primeiro caso ele pode queimar a língua, no segundo, ele pode explodir o fogão. Ou então, usando o fogão X, porque ele tem um acendedor automático de bocas, e assa um bolo em alguns dias, afinal, com um fogo BEEEM baixo, a chance de queimar o bolo é bem menor… certo? O que isso nos diz? Na minha opinião, tudo se resume a apenas uma palavra:

Confiança.
(more…)

O Vendedor de Sonhos

Estes dias, li o livro O Vendedor de Sonhos. Basicamente, o livro é uma ficção disfarçada de auto-ajuda, ou uma auto-ajuda disfarçada de ficção – eu não saberia dizer, embora se fosse para chutar, diria que é o segundo. Basicamente, é a história de um personagem que tenta se suicidar, e encontra um homem que diz que vende sonhos, e o convida para acompanhá-lo na empreitada. É uma ficção, o que talvez tenha me motivado a ler até o fim do livro, ao invés daqueles livros que repetem diversas vezes “você é a pessoa mais importante da sua vida” e mais blá blás. Mas há alguns pontos muito positivos que eu gostaria de mencionar.

Primeiro, o personagem é bem identificável – talvez, porque o autor do livro é psicólogo, então ele não inventou personagem cheio de problemas sem explicações. Talvez, alguns personagens sejam estereotipados demais, talvez tenham menções demais a religião, talvez o autor tenha desejado dar a idéia de que ninguém é culpado pelos seus atos, são apenas vítimas de um sistema que engole a todos, mas em linhas gerais, é uma boa história. Porém, algo me chamou mais a atenção neste livro do que simplesmente a história ou a auto-ajuda (que eu, particularmente, não suporto, mas tudo bem):

Lições.
(more…)

O Usuário SEMPRE Sabe o que Quer

Não, não é uma pergunta. O título deste post, embora pareça contraditório com o que a maioria das pessoas desenvolvedoras de sistema dizem, quer dizer exatamente o que ele quer dizer. Depois de muito tempo trabalhando com desenvolvimento de sistemas, e um ano trabalhando direto com métodos ágeis (no qual um usuário é livre para fazer mudanças) a frase que mais me perturba é quando alguém diz: “o usuário nunca sabe o que quer”, seguida de perto pelas “o usuário é folgado” ou “o usuário não usa o sistema que desenvolvemos pra ele”.

Primeiro ponto a ser feito, é que ninguém se pergunta “POR QUE o usuário não usa o sistema”, ou “POR QUE ele é folgado”. O que faria uma pessoa usar uma planilha de excel, com todas as dificuldades e inseguranças que ela oferece, ao invés de um sistema? Preguiça de clicar em trocentos botões? O sistema é lento? O sistema é “muito chato”, tipo, milhares de validações, etc? Tudo isso, é o usuário lhe dizendo que o sistema não é do jeito que ele quer – e se o sistema foi desenvolvido PARA ele, por que um programador culpa o usuário, se a falha foi de si mesmo ao ter desenvolvido algo que o usuário não queria?
(more…)

Ensaio Sobre a Violência

Este será um post totalmente off-topic*, mas tudo bem.

Quando eu era mais novo, lá para a minha pré-adolescencia, lembro de ter assistido ao filme “Ghost – do outro lado da vida”. Muitos já devem tê-lo assistido também. Lembro que na época, meu pai estava começando a seguir o espiritismo, e não lembro mas acho que foi por este exato motivo que estávamos assistindo ao filme. Lembro também de ter comentado que os vilões meio que se matavam sozinhos, e meu pai concordou comigo, mas por algum motivo aquilo não me pareceu certo… parecia que tinha algo muito errado com o filme, com a forma como o personagem principal enfrentava os vilões, mas antes de explicar direito o que eu pensei, vamos para outro filme: “Jogos mortais”. Numa primeira comparação, parece que o vilão de Jogos mortais é bem mais cruel e perverso do que o mocinho de Ghost, porém fazendo uma comparação mais completa, isso não é verdade.

Vendo pelo seguinte lado: em Ghost, o personagem principal morre, e como fantasma caça seus assassinos. Quando os encontra, os assombra até que eles, assustados como nunca, acabam se matando “sozinhos”. Soa familiar? O estranho é que, para a maioria das pessoas, Sam (de Ghost) não é um “vilão” como o de Jogos mortais, por exemplo, embora a atitude de ambos os personagens é exatamente a mesma. Talvez possam vir papos do tipo “mas os personagens que Sam mata são assassinos, e ele faz isso sem intenção, blá blá”, mas a verdade é que isso não importa a mínima – a reação que parecemos ter quando uma pessoa é morta difere demasiadamente dependendo se a pessoa era “boa” ou “má”.
(more…)