Início > Processo de Desenvolvimento > Desenvolvendo Pastel e Fritando Software

Desenvolvendo Pastel e Fritando Software

O título é contraintuitivo; na realidade parece loucura, mas a realidade de um desenvolvedor de software é uma loucura. O processo de aquisição e preparo de um pastel de feira varia, mas em geral é assim:

O cliente escolhe um tipo de recheio e paga no caixa/balcão. O ajudante do pasteleiro abre uma gaveta que contém as massas já recheadas, seleciona o sabor pedido pelo cliente e joga no óleo quente. O pasteleiro vai virando e jogando óleo quente com as escumadeiras até que o pastel fique no ponto. O pasteleiro tira o pastel do óleo e deixa o excesso de óleo escorrer. O ajudante coloca o pastel em um saco de papel e escreve nele o tipo do pastel – ou apenas pega o pastel com um guardanapo – e entrega ao cliente.

pastel

Figura 1 – Um pastel bem convidativo

Qual é o processo de “preparação” de um software? Há vários, mas não se prenda a eles. Processos e ferramentas auxiliam o desenvolvimento de software, mas não estão escritos em pedra e nem devem engessar o desenvolvimento do seu software. Processos são guias e não formas de bolo. Por falta de visão de como um software é desenvolvido, clientes pedem alterações que desvirtuam a ideia original; gerentes alteram coisas pedidas e às vezes inserem suas próprias ideias; analistas dão a segunda de mão e endossam a loucura toda. Os pedidos de alteração que mais alegram os desenvolvedores são aqueles feitos em fases finais de desenvolvimento.

Como expliquei em outro artigo, desenvolvimento de software está mais perto do artesanato do que da engenharia de software. Assim como um pastel, um software é único. Claro que há mais de um pastel de carne “andando” por aí, assim como vários sistemas de controle de estoque customizados, mas mesmo que tenham semelhanças e objetivos idênticos, as diferenças os tornam únicos. Um leitor elogiou o artigo, mas discordou da visão do artesão sem argumentar. Um outro leitor pegou apenas essa parte e fez um ataque pessoal a mim que me levou a escrever outro artigo só para responder. Lendo agora, aquele segundo artigo não ficou muito bom, mas escrevi de acordo com a maturidade profissional e pessoal que tinha na época.

Um cliente que tem um problema e não sabe ou não dispõe de recursos para resolvê-lo procura uma empresa especializada. Muitas empresas se vendem como solução ou alegam ter uma solução, se veem como empresas modelo, verdadeiras referências de mercado, têm certificações de qualidade e maturidade, mas na verdade são pastelarias. Como toda pastelaria, o que o cliente precisa está no cardápio e se ele quiser, ainda podem-se oferecer outras combinações de recheio e pacotes exclusivos. Inclusive o tempo e o valor do produto podem ser determinados por uma conta de padeiro (pasteleiro) feita pelo funcionário do comercial que vendeu a Caixa de Pandora fechada. Geralmente, os desenvolvedores só são envolvidos no processo quando o contrato já foi fechado. Nesse caso, como saber se as expectativas do cliente serão atendidas? Como saber se estamos construindo a coisa certa e se estamos construindo certo a coisa? Sem a cultura da agilidade, como fazer um cliente que ficou distante do desenvolvedor no processo de venda entender que o desenvolvimento de software é um esforço conjunto de todos os envolvidos e não apenas do “pedreiro”? A falta de visão do cliente e das áreas comerciais causam a produção de um patinho feio em que nenhum desenvolvedor quer encostar a mão depois de entregue.

public void piorarGambiarra(Gambiarra gambi){
   if (gambi.status == "zuada" && gambi.potencial == "pode_piorar"){
       gambi.zoaMais();
   } else {
       gambi.zoaMenos();
   }
   gambi.zoaUmPoucoMais();
}

Figura 2 – Uma gambiarra pouco convidativa

Algumas vezes, para resolver o problema do cliente nem é necessário um software. Pode ser que apenas uma mudança em um processo já seja o suficiente. É nessas horas que me lembro do caso da pasta de dentes:

A linha de produção de uma fábrica de pasta de dentes às vezes permitia a saída de caixas de creme dental sem o tubo. O CEO gastou $8 milhões em uma solução baseada em uma balança colocada no final da linha de produção. Essa balança detectaria a presença de caixas vazias e pararia o processo caso acusasse a presença de alguma. Em seguida, um funcionário deveria remover a caixa e apertar um botão para que o processo continuasse. Na terceira semana de uso, os relatórios não acusavam acionamento da balança. Os funcionário haviam instalado um ventilador – ao custo de $20 – que soprava as caixas vazias para fora da esteira, pois segundo eles era muito chato ter que ficar indo até a balança várias vezes ao dia para apertar o botão

Einstein dizia que se você não consegue explicar algo de modo simples é porque não entendeu bem a coisa. Fico curioso para saber como ele explicaria o fenômeno fotoelétrico, a teoria geral da relatividade, as ondas gravitacionais ou a magia negra da transposição quântica para um leigo. As pessoas que o ovacionavam em suas viagens pelos Estados Unidos sequer sabiam o que era física. Veja, por exemplo, como ele iniciou sua explicação sobre a relatividade para uma platéia de leigos aduladores em sua vinda ao Brasil em 1925 [5]:

O princípio fundamental da relatividade é bastante elementar. A velocidade da luz C é constante em todos os referenciais inerciais (…)

A cultura do pastel está tão intrinsecamente ligada ao desenvolvimento de software que é mais fácil utilizar esses exemplos da mesma forma como os livros de engenharia de software usam exemplos da engenharia civil e os livros sobre liderança empresarial mostram exemplos sobre futebol. Quando um leigo me pergunta com o que trabalho, explico da forma mais simples possível com pastel:

Me pedem para fritar um pastel de carne com queijo. Frito o pastel e entrego para quem pediu. Após a entrega, com o pastel ainda quente e parecendo apetitoso, o cliente se lembra que tem resistência à lactose desde que nasceu e, portanto, não pode consumir queijo. Então, o cliente me pergunta se não dá para separar a carne do queijo. Primeiro ele pede, depois chora e por fim começa a bater o pé e diz que não vai me pagar. Vem um gerente e, ignorando minha argumentação, manda fazer o que cliente quer do jeito que pediu. Aí eu respiro fundo, jogo os livros do Martin Fowler e do Uncle Bob no fundo da gaveta em cima dos meus diplomas, das minhas certificações e do meu currículo, lembro da nossa situação econômica e digo que nada é impossível. Faço um picote em um canto superior do pastel e com um garfo vou desgrudando cada pedacinho de carne do queijo. Fecho o picote, dou uma esquentada no pastel e entrego para o cliente. Da próxima vez que alguém me pedir um pastel de carne com queijo, vou separar da melhor forma possível os dois recheios antes de fechar a massa para que fique mais fácil de separar os recheios, pois a realidade da possibilidade de pedidos extravagantes vindas de clientes ingênuos ou mimados exige que o pasteleiro seja organizado.

Referências

1. [http://balivo.com.br/post/o-que-pasteis-podem-te-ensinar-sobre-injecao-de-dependencia]
2. [https://www.profissionaisti.com.br/2015/07/produto-a-venda-na-rua-hora-de-fritar-o-pastel/]
3. [http://thiagopagonha.appspot.com/blog/qualidade-de-codigo-em-um-software/]
4. [http://qconsp.com/sp2014/system/files/presentation-slides/Pasteis_Pontes_Kombis-MarcoseCarlos.pdf]
5. [RICIERI, Aguinaldo P. Einstein no Brasil.]

Anúncios
  1. giz de sonhos
    03/01/2017 às 10:29 AM

    Bórali comer um past na Microsoft e tomar um café na StarApple?

  2. 03/01/2017 às 11:10 AM

    rs

  3. Sr Merlo
    04/01/2017 às 6:26 PM

    No fundo temos paixão pelo que fazemos, e muita paixão a ponto de aguentar um pedido simples: “Preciso de um relatório pra conferencia daqui que ainda não foi registrado no sistema.”

  4. 05/01/2017 às 5:57 AM

    Sim, essas situações acontecem e na verdade nem chegam a ser pastéis. A paixão deve ser vista como uma ferramenta e não como uma qualidade, pois ela pode ocupar o espaço da racionalidade sem que percebamos. Prefiro não seguí-la, mas sempre a conservo comigo em tudo que faço.

    Abs.

  1. No trackbacks yet.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: