Quem trabalha em TI sabe dos perigos da ambiguidade. Alguém fala uma coisa, o segundo interpreta de um jeito e passa para um terceiro que entende outra. Requisitos de sistemas são um exemplo clássico deste problema, onde a pessoa acha que está “claro” que o produto final tem que fazer tal coisa, mas outras pessoas podem ter uma interpretação bem distinta. Uma das maneiras de evitar este problema e’ ser formal na definição do que as coisas significam. De tanto cometermos o mesmo erro, durante os anos nos tornamos melhores quando se trata de requisitos, mas o que dizer do que acontece da porta para dentro? Quando uma tarefa e’ passada para um desenvolvedor e daqui a um tempo ele retorna e diz que está “pronto”, qual a sua reação? O que e’ “pronto”? Para você pode ser uma coisa, para ele outra. E’ por isto importante ter uma definição formal do que consiste uma tarefa “pronta”. Todos devem ter acesso e compreensão do que significa, para que estejamos falando a mesma língua.

Na QAT Global, adotamos uma definição de “pronto” que consiste em:

  • Código escrito usando os padrões definidos
  • Código contém comentários apropriados
  • Código compila sem erros e warnings
  • Testes unitários escritos e executados com condições normais e anormais
  • Código mais recente salvo no repositório
  • Cobertura de código mínima atingida
  • Revisão de código executada

Nenhuma tarefa deveria ser marcada como “pronta” se os critérios acima não foram atingidos. Isto e’ um passo enorme em direção a um elevado nível de qualidade de software. Perceba que ao termos um entendimento comum do que devemos completar para poder passar para a próxima tarefa, também teremos melhores condições de estimar nosso tempo em cada atividade com mais precisão. Se você considera “pronto” aquele código que compila sem erro e nada mais (e estima baseado nisto), como vai ter tempo para fazer as outras coisas que são esperadas?

Então, na sua próxima tarefa de codificação, procure definir com seu líder de projeto o que significa “pronto”. Tenho certeza que este exercício não levara’ muito tempo e evitara’ futuras confusões na hora da entrega.