O que a Gastronomia me ensinou sobre Desenvolvimento de software

Acompanhando meu esposo, que está estudando gastronomia, comecei a me interessar pelo assunto. Primeiro comecei a escutar todas as histórias de sucesso de grandes Chefs Internacionais da Gastronomia e também dos próprios professores dele no IFSC (inclusive que também têm formação internacional). Achei interessante todos os conceitos que são usados na Alta Gastronomia e assisti alguns filmes relacionados com o assunto.

Daí com todos os problemas que eu já passei em empresas nas quais trabalhei e depois de um estudo aprofundado sobre o tema Qualidade no desenvolvimento de software eu conclui: tudo a ver! Nas linhas seguintes vou explicar o porquê.

1. Planejar é muito importante!

Eu percebi que planejamento existe até na Gastronomia, e ele começa com a escolha dos ingrediente. A forma como o fornecedor é selecionado passa por uma avaliação criteriosa do gastrônomo e só é executado o prato quando o ingrediente selecionado foirigorosamente escolhido e isto faz a toda diferença na composição do prato. A “experiência” do degustador ao saborear o prato é um conjunto da soma de seus ingredientes em total harmonia.

Há um conceito na Gastronomia que pratos famosos só podem ser chamados pelo seu nome official se atender aos rígidos critérios de escolha dos ingredientes e os rígidos padrões de execução do prato. Os detalhes fazem toda a diferença na composição final.

Fazendo um paralelo com o desenvolvimento de software, planejamento custa tempo, mas é a fase onde se irá realizar benchmarking e pesquisa de mercado, ouvir cliente, realizar entrevistas e entender todo o problema que será resolvido.

Mas também há uma fase essencial, quando a solução já foi definida, que é necessário planejar quais os testes serão necessários para validar o que será feito. No conceito de Quality Assurance, estes testes devem ser definidos antes, para que haja o mínimo de surpresa possível na entrega final da feature e/ou conjunto de features. Geralmente esse planejamento, no ambiente ágil, é feito na quebra de estórias e realizado na reunião de Planning. Se bem quebrada as estórias, plenjar os testes custa muito barato e tem um retorno grande em redução de re-trabalho e desperdício.

É importante, assim como o tempo de preparo do prato, você saber o tempo gasto com  testes, alguns tipos de teste, como o de carga ou de performace, custam mais tempo para serem executados, mas dependendo da situação eles são essenciais para validar a entrega.

2. Tudo o que foi planejado precisa ser executado com maestria

Ao mapear a experiência do usuário todo detalhe (ou ingrediente) é importante e vai fazer dar o “roque final” ao software ou ao prato. Não é à toa que a área de User Experience têm crescido tanto ultimamente, um software agradávei de ser usado pode gerar mais prazer e satisfação ao usuário ao conduzir ele a realizar um objetivo de negócio planejado pela a solução.

Planejamento tem um custo, e o custo é muito maior se eu não executei o que planejei, porque aí eu desperdicei meu tempo planejando, certo? Este conceito é muito utilizado no Lean, onde todo esforço gasto em vão é desperdício.

Pense que você está preparando uma lasanha e esqueceu de acrescentar um ingrediente usado em pequenas “pitadas”: o sal. A ausência de um ingrediente tão insignificante em termos de quantidade perante aos outros ingredientes (como frango ou o queijo) pode apagar o sabor de todo o prato. E essa atenção aos detalhes é onde que os QAs também fazem toda a diferença. Eles provam o prato antes mesmo de os primeiros usuários, os Alpha users provarem. Se ali eles já identificarem a ausência de algo que foi planejado, ou se naquele momento houverem dúvidas conceituais, já é o bastante para re-avaliar a entrega.

E então daí você pensa assim: mas Bárbara não é só “acrescentar” o sal depois de o prato estar pronto? Então imagina o seguinte: você já montou a lasanha. Agora, para acrescentar o sal você precisará no mínimo ter que desmanchar cada camada da lasanha para poder colocar o sal no frango. E daí, isso não te gerou re-trabalho? Não teria sido mais Lean você ter seguido a “receita”?

Pensa que a receita é o teu checklist. E pensa no seguinte… quando você estiver executando o prato, muitas vezes vai estar sob a pressão da entrega. E se você não tiver pensado antes em todas as etapas que precisam ser seguidas e não tiver um cheklist claro, vai precisar “pensar” no final, certo? E todos sabemos que deixar para pensar no final, onde já se está cansado de toda uma maratona, não é o melhor momento de se pensar no que vai testar.

A verdade é que quando estamos “sob pressão” nosso cérebro opera em outro modo, o modo execução, e geralmente neste modo não pensamos direito. É aí que seu checklist vai entrar em ação, você não precisa pensar no que testar, vai estar todos os itens ali e você vai checar todos eles e garantir o máximo de qualidade na entrega final. Inclusive vai agilizar o tempo de teste no final e  já sabe quanto tempo você vai gastar para validar a versão final.

3. O impacto de um bug numa Startup

Agora pense que você está produzindo um jantar para 30 pessoas. E este jantar se compõe de um rodízio de massas. Quando você está produzindo pela primeira vez e está convidando novos clientes para fazer parte da degustação do seu negócio, você escolhe os amigos e familiares mais chegados para fazer a “prova”.

É isto o que acontece com toda startup, ela gera o MVP da solução, uma versão simples para provar o valor do negócio e verificar se os clientes aprovam e se frequentariam o seu estabelecimento. Estão são os early-adopters do seu negócio.

E daí vai que você produziu uma sequência de pratos e todos eles vieram com um inseto dentro do prato? Com estes clientes altamente engajados e os quais você tem uma promiximidade maior você, como Chef, pode sair de dentro da cozinha e ir pessoalmente perdir desculpas a cada um dos 30 clientes que receberam o inseto e entregando um novo prato.

Um inseto em cada prato catacteriza um incidente. E, tudo bem, isto gerou uma certa desconfiança nos clientes, mas como eles sabiam que isto poderia acontecer, elues perdoaram e até gostaram da maneira pessoal com o qual foram tratados.

Daí você pergunta mas porquê você exagerou em dizer que todos os pratos vieram com insetos? Porque se você pensar em um software na nuvem (SaaS), quando você lança uma versão com bug existe a possibilidade de todos os clientes serem afetados pelo mesmo bug, certo? Isto potencializa em muito os problemas de qualidade do software.

4. O impacto de um bug numa empresa de médio porte

Agora imagina que seu negócio cresceu, e você agora tem mais de 10 mil clientes e, em horário comercial, 60% destes estão neste momento sentando em uma das mesas do seu restaurante e pedindo um prato.

Você aprendeu a fazer os pratos de forma mais veloz, contratou mais times para executar os seus pratos e até lançou novas receitas. Mas novamente, você produziu uma série de pratos (ou uma nova versão), onde todos os pratos saíram com inseto. Agora imagina você, 1 a 1, tendo que perdir desculpas, difícil, né!?

E mais ainda… agora os seus clientes não são mais aqueles clientes próximos e compreensivos. Estes ultimos foram atraídos pelo seu negócio porque ouviram falar que ele era um sucesso e que eles alcançaria o resultado esperado com ele. E você, como Chef, com cerca de 100 pessoas trabalhando em sua cozinha, já não consegue mais ir na mesa de cada um dos clientes para pedir desculpas. Daí imagina o gasto que você vai ter fazendo com que seus funcionários parem toda a produção para justificar o erro cometido e para explicar todas as ações que irão realizar para que isso não ocorra mais. Um total desperdício, não? Aĺém do desperdício de tempo, um desgaste e uma fragilização da relação entre você e seus clientes, até mesmo àqueles que são mais próximos: “caiu a qualidade do serviço”.

Daí é onde as empresas costumam contratar um profissional da Qualidade ou Testes para “checar” os pratos antes de eles serem entregues em cada. Na Gastronomia, quem checa os pratos antes de eles irem à mesa é o Chef.

5. Re-trabalho causado por um bug e a contratação de profissionais da qualidade

E daí, numa nova versão da Estrutura, o Chef vai avaliar a “rodada” de pratos que será entregue e, caso ele encontre algo de errado, ele vai devolver o prato para a cozinha preparar outra rodada (isto é comum quando se fala em Alta Gastronomia).

Aquele tempo gasto entre ele receber o prato, analisar, devolver e sugerir uma nova rodada do prato, não é também um desperdício? Agora você precisa realizar esforço novamente para realizar um novo lançamento do prato. E imagina que o Chef é só um para checar os pratos de 100 pessoas produzindo, daí ele decide que precisa de mais pessoar para checar os pratos, e contrata mais Chefs. No caso de desenvolvimento de software, ele contrata profissionais da Qualidade.

Mas a demanda de produção é tão grande que os Chefs passam a escolher os pratos mais complicados para checar e acontece que na rodada dos mais simples ele acaba deixando passar um inseto. Novamente voltamos ao stress inicial de ter que justificar o erro para os 10 mil clientes, mesmo que somente alguns tenham percebido.

É neste momento que vários clientes começam a desacreditar do restaurante e, por fim, alguns começam a abandonar e escolher comer em outro local, às vezes até mesmo mais caro, mas com maior qualidade e onde eles possam se sentir mais seguros. Num SaaS, este “abandono” em relação ao serviço contratado é chamado de “Churn”, e quão ruim o Churn é quando é associado a defeitos no software? Má reputação para a empresa, não?

Agora, vamos imaginar no conceito de desenvolvimento de software: imagina que o QA mudou sua abordagem, ele analisou o fluxo do processo e identificou as falhas e sugeriu as alterações. Além disso ele disse que de agora para a frente ele vai te ajudar a criar os checklists e planejar o que ele vai checar para que cada cozinheiro possa ele mesmo checar os pratos, isto não é um ganho incrível de produtividade no final das contas? Aí você se pergunta: ok, mas você não está gastando mais tempo com mais tarefas? Sim, talvez sim, mas está gastando menos tempo com re-trabalho e incidentes. Então no final das contas todos ganham.

5. O impacto de um bug não corrigido frente a uma nova feature

Beleza, apesar de alguns clientes terem abandonado seu negócio e nao confiarem mais na empresa, a maioria deles ficou e acredita ainda que seu restaurante pode entregar algo de qualidade. Afinal de contas, está se adequando às novas exigências! 😀

Daí você, como Chef, anuncia um novo prato no restaurante. Os clientes ficam com a expectativa lá no alto, você promete que esta é uma nova fase do restaurante e que os problemas foram resolvidos e o cliente está naquela expectativa de receber o tal prato diferencial que só o seu restaurante serve e que nenhum concorrente mais está produzindo.

O cliente recebe o prato e tcha nãããã! Lá está aquele velho “bug conhecido”, aquela baratinha linda te olhando de dentro do novo prato que você serviu a ele.

E ele solta um desabafo e conclui: eu ainda preferia algo simples mas que estivesse de fato funcionando!

Conclusão:

Práticas de Qualidade quando bem cplicadas não oneram a velocidade, elas fazem com que o time entregue um produto certeiro logo de cára, sem desperdícios. É o conceito do lean: “right in the first time“, sem frustração para os clientes e desperdício para toda a estrutura da empresa.

Para que você entende a “essência” do que aprendi, eu indico que você assista estes filmes:

  • Os sabores do Palácio: A trama, baseada na história real de Danièle Mazet-Delpeuch, que foi cozinheira do presidente francês François Mitterand, é composta de dois momentos da vida da respeitada cozinheira. O filme começa com a chegada de Hortense ao arquipélago de Crozet, na Antártida, para chefiar a cozinha da base que a França mantém no local. Do acampamento e das instalações simples, as cenas são intercaladas com a suntuosidade do Palácio de Élysée, quatro anos antes, quando a chef é convidada a assumir a cozinha privada do presidente. (sinopse)
  • Pegando Fogo: Pegando Fogo é uma história emocional e divertida sobre o amor pela comida, o amor entre duas pessoas e a força das segundas chances. O Chef Adam Jones (Cooper) tinha tudo – e perdeu. Um rockstar vencedor de duas estrelas Michelin com maus hábitos para acompanhar, o então enfant terrible da cena gastronômica parisiense fazia tudo sempre diferente e só se preocupava com a emoção de criar explosões de sabores, deixando os outros à mercê do seu temperamento igualmente explosivo. Para recuperar sua própria cozinha e ganhar aquela tão sonhada terceira estrela Michelin, ele vai precisar da ajuda dos melhores entre os melhores, inclusive da bela Helene (trailer).
  • Como um Chef:  Aos 32 anos de idade, Jacky Bonnot (Michaël Youn) tem grande talento para se tornar um grande chef gastronômico, mas nunca teve a oportunidade de provar o seu talento. Por causa da sua situação financeira precária, ele é obrigado a aceitar trabalhos temporários em pequenos restaurantes.

    A sorte muda quando ele cruza com o renomado Alexandre Lagarde (Jean Reno), chef em decadência, prestes a ser demitido e substituído por um chef novo. (trailer)

Então, gostou do post? =D

Se quiser receber o próximo post via e-mail, aí vai o link.

Anúncios

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