Guilherme Rey

March 26, 2024

Atrasei!



Tem uma semana que decidi começar a escrever essa newsletter. A coragem veio porque eu percebi que em diversas ocasiões eu compartilhava meus pontos de vista e opiniões sobre tecnologia e negócios e tinha bons feedbacks. Por isso, decidi colocar de um jeito que isso possa chegar a mais e mais pessoas por aí. Mas a verdade é que escrever não é algo que estou acostumado, nunca foi meu ponto mais forte. Ainda estou passando por um processo de aprendizagem e melhoria contínua. Veja você, estou apenas na segunda publicação e já estou atrasado! 🤦

Não me entenda mal, não é que eu não tinha escrito nada ainda, eu tinha um rascunho pronto pra dar os toques finais e então entregar pra vocês. Mas, infelizmente, meu filho ficou doente e precisei focar na minha família, por isso não consegui fazer o que tinha planejado.

Foi então que percebi que poderia vir aqui e escrever uma reflexão sobre isso: como é lidar com o inesperado nas equipes que desenvolvem produtos digitais?

Qualquer pessoa que tenha trabalhado em algum produto digital já passou por atrasos de algum tipo. É difícil encontrar times de desenvolvimento de software que não tenham atrasos em seu portfolio. Isso porque a atividade tem uma complexidade inerente que é difícil de gerenciar. É por isso que foram criadas diversas metodologias para lidar com esse problema. Talvez as duas mais famosas sejam a Waterfall (cascata, em português) e o Agile (ágil). Vou fazer essa reflexão a partir do ágil. A primeira parte da reflexão é tentar entender de onde surgem os atrasos.

Desenvolver software passa por entender um cenário de um problema real para então se abstrair e desenhar uma solução. Existe uma definição inicial que, conforme o produto avança, muda constantemente. Desse jeito, no final percebe-se que aquela definição do começo não era tão boa assim, ou até não era exatamente o que precisava ser feito de fato. Essa é uma das fontes de atraso: a especificação.
Outra fonte muito comum é o foco, ou a falta dele. A falta do não, deixando o processo ser desviado demais faz com que toda a cadeia sofra e tudo acabe ficando atrasado por consequência.

E o que podemos fazer para lidar com essas causas?
Quando estudamos o ágil em seu conceito, aprendemos que não é um arcabouço (palavra em português para framework) que promete acabar com atrasos ou fazer com que sua equipe desenvolva mais rápido algum produto. O ágil promete te trazer dados suficientes a partir de uma metodologia interessante para que você saiba, o mais cedo possível, o quão ferrado você está. Assim, você pode gerenciar o problema e lidar com as consequências. Você pode ler sobre isso no livro Clean Agile, do Robert C. Martin, o Uncle Bob.

O fato é que dificilmente as equipes vão escapar dos problemas que as fariam atrasar. No fim, a reflexão é sobre um conceito do mesmo livro que citei acima, a cruz de ferro da gestão de projetos. Uma abstração do que está relacionado com o processo e pode ajudar a entender o que temos que escolher pra lidar com esses problemas.


Quando você está no meio de um produto digital, vai precisar escolher apenas três opções das quatro disponíveis. Não há como obter as quatro características ao mesmo tempo (sempre uma quarta será pior ou até sacrificada).

  • Fast (rápido) está relacionado com o prazo
  • Done (feito) está relacionado com o escopo
  • Good (bom) está relacionado com a qualidade
  • Cheap (barato) está relacionado com a equipe

Normalmente o que eu escuto quando mostro esse conceito para pessoas que não são de tecnologia é: “Mas precisamos dos quatro. Não temos opção”. O que acaba acontecendo, na prática, é que a qualidade do produto é comprometida. As funcionalidades não atendem como deveriam, a experiência não é tão fluida, etc.

Por isso não deveríamos nunca deixar com que a qualidade fosse sacrificada, restando apenas três outras características para colocarmos mais foco. Se o prazo não for negociável, você precisará lidar com o escopo e com a equipe para chegar lá sem atrasos. O problema é que mexer com a equipe não é tão simples assim, desenvolvimento de software não é linear a ponto de fazer o pensamento de muitos gestores por ai fazerem sentido: não adianta adicionar nove pessoas na equipe para que esta seja nove vezes mais eficiente, por exemplo.

A minha experiência mostra que a melhor maneira de lidar com as causas dos atrasos é aumentando prazos ou diminuindo escopos. Entender que o foco é importante e que tem certas coisas que levam o tempo que precisam levar. Afinal, eu poderia ter simplesmente entrado aqui em algum momento e publicado o meu rascunho sem muitas mudanças, apenas para lidar com o prazo que eu mesmo tinha estabelecido, mas preferi lidar com essa causa aumento meu prazo e tentando - sempre - manter a qualidade do que estou entregando.

E ai, faz sentido pra você?

Se você ainda não se inscreveu na minha newsletter, deixe seu melhor email por aqui que toda segunda (ou quase) você terá conteúdo sobre meu ponto de vista em tecnologia, negócios e pessoas.

Até a próxima!
Guilherme Rey

About Guilherme Rey

Empreendedor, Professor e Cientista da Computação. Gosta de falar sobre tecnologia, pessoas e negócios.