Retrabalho, refação, revisão, recriação… o “diabo” 👹 atende por muitos nomes, mas, no final das contas, todos querem dizer a mesma coisa: você vai ter que refazer algo, atendendo a uma solicitação do cliente ou de um departamento.

Em alguns casos, isso significa que você terá que recomeçar do zero, já que a tarefa foi reprovada. Ou seja, fará novamente algo que já estava pronto – ou parecia estar – e que, na sua cabeça, deveria ter sido feito apenas uma vez.

Quem pensa que o retrabalho é um vilão está completamente enganado ❌

E aí você me pergunta: “Mas está OK ter mais trabalho?“. Bom, minha resposta é que a ideia não é “ter mais trabalho”, mas sim trabalhar mais inteligentemente e conseguir realizar ainda mais. Veja a imagem abaixo:

retrabalho pode significar valor agregado

Perceba que, da bicicleta para a moto, houve retrabalho. Potencialmente, a bicicleta foi jogada fora para construir a moto! Esse é o ponto. Para chegar na etapa 5️⃣, houve mais retrabalho e valor agregado. Afinal, o resultado foi um carro e, pelo que vemos, ainda é um conversível.

Se for um carro, você deve ser capaz de dirigi-lo. Se ele não tem um rádio ou ar condicionado, você ainda consegue dirigir mesmo assim. E até aí beleza! Mas, imagine que você já gastou uma grana e muito tempo desenvolvendo um produto para, no final, descobrir que, na verdade, não resolve o problema do cliente… Isso não seria nada bom.

Voltando à nossa analogia do carro

Se você entregar o carro para o usuário em pequenos pedaços, iterativos, fáceis de serem repetidos com ajustes, não é um problema tão grande quando eles dizem: “Cara, depois de dar uma volta nesse carro, eu acho que eu quero que seja uma Van”.

Ao contrário, se você descobrisse isso depois que o produto final foi entregue, aí sim seria um enorme problema. Concorda?

No meio de várias formas de se desenvolver projetos, cito duas:

  1. Desenvolvimento iterativo;
  2. Desenvolvimento incremental.

Mas, a maioria dos projetos Agile combina ambas as abordagens, e se torna Iterativa Incremental.

Na verdade, não consigo imaginar a entrega de software de nenhuma outra maneira. Esse processo trouxe mais agilidade e flexibilidade para times. Além disso, a ideia é que a criação de um software seja pautada por vários ciclos curtos, em que funcionalidades são introduzidas, os feedbacks coletados e os requisitos revistos.

Assim, é possível atingir um maior nível de satisfação com o cliente e garantir que o resultado final esteja além do esperado!

Incremental x Iterativo

Incrementar exige uma ideia totalmente formada. É construir um pouco de cada vez e então começar a criar blocos. Um processo incremental é aquele em que o software/produto é construído e entregue por pedaços. Cada pedaço ou incremento representa um subconjunto de funcionalidades completas.

O incremento pode ser pequeno ou grande. Ou seja, ele pode variar apenas de uma tela de relatórios simples até um conjunto altamente flexível de telas de gerenciamento de dados. Cada incremento é totalmente codificado e testado, e a expectativa geral é que o trabalho tenha a conclusão mais completa possível.

Um processo iterativo é aquele que faz progresso através de tentativas sucessivas de refinamento. Por exemplo, uma equipe de desenvolvimento faz sua primeira tentativa para construção de um software, porém, existem pontos de informação falhos ou incompletos em algumas – talvez muitas – partes. A equipe de forma iterativa refina essas partes até que o produto atinja um ponto satisfatório. Com cada iteração, o software é melhorado através da adição de mais e mais detalhes.

Vamos a outro exemplo. Em uma primeira iteração, temos que codificar uma tela de relatórios que suporte apenas o tipo mais simples para exibição. Na segunda iteração, podemos adicionar critérios de pesquisa para ampliar o leque de opções no relatório. Finalmente, em uma terceira iteração, poderíamos adicionar gráficos para explanar visualmente o relatório.

O grande lance é que a cada nova iteração podemos escolher onde inserir novos incrementos. Então, se eu julgar que o relatório já está bom o suficiente na iteração 2️⃣, posso usar a iteração 3️⃣ para criar um novo módulo do produto ou evoluir outra feature já existente.

Aumentando a potência…

Métodos ágeis são tanto iterativos quanto incrementais. São iterativos porque o trabalho realizado é sempre melhorado em ciclos subsequentes. São também incrementais, porque o trabalho planejado é entregue em partes que são adicionadas ao todo do projeto. É a soma que dá certo! A abordagem incremental iterativa combinada é muito mais poderosa do que isoladamente.

Além disso, aposte em 3 atitudes se você quiser mesmo garantir o sucesso no seu projeto:

1️⃣ Engaje seu time

Oriente o seu time no que tange as melhores práticas. Escolha uma pessoa responsável para gerir o projeto e tenha esse profissional como o elo entre o time e os outros envolvidos. Portanto, é essencial que essa pessoa seja extremamente experiente porque, se não for, o projeto não anda.

2️⃣ Acredite na diferença dos 15min por dia

Para deixar leve, se quiser, não chame de reunião. Mas tenha um encontro diário com o time de 15 minutinhos. Nesse caso, o foco é muito importante, pois não é hora de discutir assuntos aleatórios.

São apenas 15 minutos para alinhar/responder:

  • O que fizemos ontem?
  • O que faremos hoje?
  • Quais são os impedimentos?

Perguntas objetivas e maximização de assertividade.

3️⃣ Busque transparência, organização e comunicação no trabalho

O Trello é uma ferramenta eficaz para isso e há acesso compartilhado com toda a minha equipe — colocamos todos os detalhes necessários para cada tarefa na forma de comentários, listas de verificação, datas de entrega e anexos, para os respectivos responsáveis.

Baseado no empirismo, evoluímos com o avanço do projeto. O Backlog se adapta e cresce à medida que as entregas vão sendo liberadas e percebidas pelos envolvidos.

O projeto só acaba, quando o cliente fica satisfeito.

Para mim tudo isso não é retrabalho, é evolução!