Hippie Programming

por Leonardo Eloy

Em 1971, Weinberg dissertou sobre um assunto extremamente relevante para Extreme Programming. No seu tratado The Psychology of Computer Programming, o autor analisou a relação entre um programador e os artefatos que ele produz ao longo de um projeto. Weinberg cunhou o termo Egoless Programing para mostrar que “uma equipe tem responsabilidade coletiva para resolver os problemas com o código”.

Este mesmo conceito serve como uma luva para descrever a Programação em Pares (PP). Sommerville utiliza a pesquisa de Weinberg para justificar uma das principais vantagens de utilizar PP: a idéia de responsabilidade e propriedade comum pelo sistema. Ora, para mim isso só reforça o conceito de foco nos indivíduos e suas interações, ao invés de processos e ferramentas. Porém, esse conceito pode ser distorcido por membros de uma equipe. Imagine aquele programador que é possessivo ao ponto de tomar críticas ao seu código como ofensas pessoais. Não queremos que uma frase como “seu loop foi muito mal colocado” seja interpretada como “você cheira mal”!

Protótipo de programador hippie

Protótipo de programador hippie

Eu gosto de imaginar Weinberg como um programador hippie, muito parecido com o senhor da imagem acima. Em plena década de 1970, o Movimento Hippie mudou a sociedade americana (e por tabela, o resto do mundo). Este movimento foi muito maior que o consumo de drogas e sexo ad hoc, ele popularizou a idéia da diversidade cultural e do respeito ao próximo. Trazendo para o nosso lado, uma das principais desvantagens de fazer PP é pegar aquele cara xiita ou então o indivíduo que adora o modelo Taylorista, que consiste na frase “eu digo, você faz”. Situações assim são péssimas para a produtividade que uma prática de PP poderia trazer ao seu leque de técnicas de engenharia. Quando estamos no controle do teclado ou como observadores e temos que nos relacionar com pessoas assim, como devemos agir? Será que você é assim? O que deveria mudar na sua postura?

É nesse contexto que apresento a Hippie Programming. Apesar de não serem muito afeitos com técnicas de gerenciamento de higiene pessoal, os hippies setentistas são uma fonte infindável de frases e atitudes que muitos de nós poderíamos utilizar no cotidiano. Seguem algumas dicas de como incorporar uma abordagem hippie durante o PP, de acordo com algumas máximas eternizadas durante o movimento:

1. Peace and Love: cabeça aberta. Você provavelmente é xiita ou chato em alguma coisa também! Pare, analise a situação como uma terceira pessoa e faça esta pergunta “eu realmente preciso me impor desta forma?”;

2. Be here now: o foco não é agradar seu colega de PP, sim dar continuidade a uma atividade que envolve programação, porém, por incrível que pareça, pessoas são seres humanos, e todos merecem respeito. Não faça com seu par o que você não gostaria que fosse feito com você. “Esteja aqui agora” é uma advertência para o foco no objetivo, que é cumprir a atividade, mas o respeito pelo seu par deve vir em primeiro lugar;

3. Make love, not war: a tecnologia que você está utilizando é principal meio de atingir os objetivos definidos pela atividade em execução. Os participantes de um PP devem fazer amor com suas tecnologias e ferramentas! Não adianta reclamar que Java não tem ponteiros! :)

4. Drop acid, not bombs: ao encontrar um entrave, procure abstrair o problema antes de tentar algo pela força bruta. Novamente, pare e pense! Caso vocês não consigam encontrar uma solução, parem e discutam sobre o problema, entendam o problema. Antes de pensar na solução você precisa entender a razão pela qual ela está sendo projetada. Essa pode ser a melhor saída, muito melhor do que começar a ler arquivos de log e fazer um “clean & build” no projeto.

E você? Quais são as principais medidas que você acha importante para garantir um bom ambiente ao fazer uma sessão de PP? Deixe sua contribução! :)

Agradeço ao Handerson Frota por revisar e discutir este post comigo.

5 Responses to “Hippie Programming”

  1. [...] um post no XPCE.org sobre Hippie Programming, onde apresento algumas dicas para lidar com xiitas e gente chata ao fazer [...]

  2. Cara ficou muito bom mesmo :D

    Parabéns, excelente post.

    Abraços

  3. Esqueci de comentar….rsrs

    O que é bacana em PP é o fato de “duas cabeças pensam melhor do que uma”.

    As vezes você está tão preocupado em resolver o problema que esquece da causa do problema. E trabalhar em PP é bacana porque o outro cara vai te lembrar disso, fica mais fácil discutir com outra pessoa do que sozinho.

    O que ajuda muito em PP é você se dar bem com seu colega de PP, só isso já ajuda muito a praticar todas essas suas dicas, mesmo sendo profissional é complicado você trabalhar no mesmo PC com um colega que você não se dá muito bem profissionalmente.

    Por outro lado isso pode ser bom, pois se ele tem idéias diferentes das suas, e se vocês entrarem em um acordo o resultado final será excelente, pois um criticará o código do outro, melhorando ainda mais.

    Abraços

  4. Rafael Ponte says:

    Eu sou um hippie pair programmer :-)

  5. Raphael Ferreira says:

    Parabens pelo Artigo, ficou show de bola principalmente o prototipo de HP. :). Ainda não tive a oprtunidade de trabalhar em PP mas deve ser um saco mesmo se o parceiro não prestar, agora mesmo os mais chato pode ser tolerável vai depender de como vc vai tratá-lo. As vezes até um cara legal pode ser chato se você for grosso, isso só não funciona em PP como no nosso dia-a-dia, são pequenas atitudes como humildade, atenção, um simples “bom dia” que apesar de ser simples fará toda a diferença. Seja CHAPA. ;)

Leave a Reply