O que a cozinha pode ensinar sobre desenvolvimento de software

Uma improvável combinação de desenvolvedor de software — que veio primeiro — com uma formação acadêmica em gastronomia. Este sou eu.
Sim existe uma ligação lógica entre estas duas profissões que escolhi, porém, não vou tentar explicá-la aqui. Ao invés disso quero trazer para a área de desenvolvimento de software algumas lições que aprendi nas bancadas das cozinhas e que acredito que possam ser úteis e aplicáveis no dia a dia dos desenvolvedores.

Mantenha sua bancada limpa
Quer ter uma ideia da qualidade de um cozinheiro? Dê uma olhada na bancada onde ele trabalha. Você nunca poderá esperar primor de um cozinheiro com a bancada bagunçada, ou pior, suja. É a regra de ouro: mantenha sua bancada limpa e organizada, assim você terá menos possibilidades de atrasar, de se enganar, de se machucar.
Sim, estou falando de manter seu código limpo, claro, eficiente e bem colocado. Tanto faz se você vai chegar a este objetivo através de um planejamento profundo ou através de repetidas refatorações de código, mas lembre-se: “Um lugar para tudo e tudo em seu lugar” e assim evitamos retrabalho, falhas ou outros problemas.

Antes de Chef você sempre será cozinheiro
Chef de cozinha é um cargo, o nome da profissão é cozinheiro, ponto final.
Da mesma forma que é muito improvável que alguém chegue ao cargo de chef de cozinha sem antes ser um bom cozinheiro também é improvável que alguém chegue a um cargo de analista (projetista, arquiteto, engenheiro, escolha aqui o cargo) sem ter aprimorado as habilidades necessárias de um bom desenvolvedor. Ao menos deveria ser assim. Subentende-se que alguém designado para ocupar um cargo que envolva esquematizar, reger, mensurar um projeto de software deva ter — além de outras habilidades — uma visão precisa das tecnologias envolvidas, dos requisitos e dos possíveis percalços que poderão surgir no decorrer da execução.

Movimente-se calculadamente e com eficiência
Uma das coisas mais perigosas em uma cozinha é alguém que fica correndo de um lado para o outro feito uma galinha sem cabeça. Normalmente esta pessoa na ânsia de ajudar acaba por causar confusão, pois não consegue estabelecer uma ordem lógica para suas atribuições e assim fica ‘pulando’ de tarefa em tarefa sem nunca as concluir.
É claro que todos desejamos que nosso trabalho saia logo do papel (ou da cabeça) e torne-se algo real, porém, não deixe esta ânsia pular na frente de etapas importantes como o entendimento do problema, das motivações e as reais necessidades.

Esteja atento ao seu redor
Um prato em geral é executado por mais de um cozinheiro, vamos supor um lombo de cordeiro acompanhando de aligot (um purê de batata com queijo). Para este prato é necessário que o lombo de cordeiro fique inteiramente cozido, porém, com o centro rosado. O aligot deve estar na consistência certa e na temperatura exata para que não se torne uma “borracha”. E ambos devem estar prontos simultaneamente.
Quantas vezes nos deparamos com projetos que entravam por um ou mais módulos não estarem prontos no momento esperado? Ou ainda quando não nos damos conta de quanta força de trabalho será necessária para cada time de forma que os módulos se encaixem da forma e no tempo que esperamos? Muitas vezes pecamos pelo excesso de foco, negligenciando o cenário como um todo e não percebendo que determinado time precisa de reforços.

Sempre peça esclarecimentos
Você está faminto. Pede seu prato preferido, aquele que não só vai te alimentar como também vai gerar uma sensação de conforto. Você espera por ele. Alguém vai trabalhar por, em média, meia hora nele. Então ele chega e… não era nada do que você havia pedido. Assim voltamos a início do processo e tudo porque provavelmente alguém simplesmente não entendeu o que você queria.
Você tem uma demanda. Pergunte sobre ela, entenda-a, pesquise sobre ela, coloque-se no lugar do solicitante. Isso lhe permitirá perceber a melhor forma de entregar o que foi solicitado, e outras vezes, lhe mostrará que talvez já existam recursos que supram a necessidade. Na maioria das empresas de software é assustadora a margem de solicitações que são desenvolvidas e simplesmente não atendem as expectativas do solicitante, forçando a retornar quase que a estaca zero. Existem metodologias (user stories, por exemplo) para conduzir este processo, use-as.

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.