sábado, 4 de fevereiro de 2017

Gerente, Não Faça Isso: Valorizando a Equipe

Hoje eu vou apresentar mais um item da lista de coisas que um gerente não deve nunca, nunca, NUNCA fazer. Há alguns anos atrás, eu trabalhava como analista de requisitos em um projeto grande, com um gerente de projeto que era ruim em muitas coisas, mas era decididamente péssimo no quesito comunicação. Péssimo a ponto de aquilo ser uma piada frequente entre os membros da equipe: mais de uma vez eu ouvi gente comentando que ele deveria ensaiar na frente do espelho antes de se dirigir à equipe, na esperança de que, talvez, ao escutar a si mesmo, ele conseguisse perceber quão mal soava o que ele estava pretendendo dizer.

"Nossa, até eu fiquei com raiva de mim agora."
© Vadimgozhda | Dreamstime.com - Morning Photo

No episódio em questão, ele tinha reunido a equipe toda na sala de reuniões para fazer uma série de comunicados a respeito do projeto, que estava em crise: super atrasado, paciência do cliente chegando ao limite, equipe desmotivada etc.

Um dos tópicos abordados foi uma queixa que tanto o líder de desenvolvimento quanto o líder de testes já vinham fazendo há algum tempo: a incompatibilidade entre o volume de trabalho e o tamanho da equipe. O gerente explicou que, por vários motivos, aquele era um momento delicado para fazer contratações, mas que ele tinha conseguido autorização para contratar mais um profissional. Considerando que tanto a equipe de desenvolvimento quanto a equipe de testes estavam reivindicando mais profissionais, ele tinha precisado fazer uma escolha e tinha decidido dar prioridade, naquele momento, à contratação de um novo desenvolvedor.

Até aí, nada de mais. Um projeto não tem orçamento infinito e muitas vezes o gerente precisa fazer escolhas difíceis e definir prioridades. Concordando ou não com a decisão, todo mundo sabe que isso faz parte do jogo e se a história terminasse aí provavelmente os analistas de teste teriam ficado aborrecidos, mas superado.

Mas claro que a história não parou aí. O gerente quis dar uma satisfação à equipe e explicar seus motivos para contratar um analista de desenvolvimento em vez de um analista de teste, o que seria uma ótima ideia... se os seus motivos não fossem "teste a gente pode dar pra qualquer pessoa fazer".

"Não sei o que aconteceu: eu estava aqui me preparando para a reunião com a equipe, quando, do nada, o espelho explodiu."
© Surchy | Dreamstime.com - Shattered Mirror Photo

Veja bem, eu até concordo que o trabalho mais crítico de um analista de teste não é a execução do teste propriamente dito e sim o planejamento e elaboração dos cenários e casos de teste. Com casos de teste bem escritos e detalhados, não seria necessariamente uma má ideia adotar a solução temporária de pedir para outro analista fazer alguns testes funcionais, desafogando um pouco a equipe de testes. Mas está dando pra perceber a diferença entre a maneira como eu coloquei a coisa e a maneira do gerente do projeto?

Para quem não é da área de TI, deixa eu explicar algumas coisas. Um teste funcional é um teste feito do ponto de vista do usuário: ele é feito navegando-se pelas telas no sistema e executando todas as funcionalidades em todos os cenários possíveis, para ver se o comportamento do sistema corresponde ao esperado. Para isso, os analistas de teste elaboram com antecedência casos de teste baseados principalmente na documentação elaborada pelos analistas de requisitos durante a fase inicial do projeto. A elaboração de um caso de teste é um trabalho extremamente minucioso porque exige do analista de teste não apenas entender como o sistema deve funcionar, mas também antecipar todas as coisas que podem dar errado, fazendo com que ele não funcione da forma desejada. Só para dar um exemplo muito, mas muito simplificado, até porque teste não é a minha especialidade, se o analista de requisitos especifica, de acordo com a solicitação do usuário, que para cadastrar a nota de um aluno no sistema da universidade é necessário informar a matrícula do aluno, o código da disciplina, a identificação da prova (P1, P2 ou prova final) e a nota propriamente dita, o analista de testes tem que elaborar casos de teste para testar o comportamento do sistema não apenas se o usuário preencher todos os campos direitinho, mas também se ele informar uma matrícula que não existe, ou o código de uma disciplina na qual o aluno não está inscrito, ou uma nota abaixo de zero, ou uma nota acima de dez, ou uma nota com três casas decimais se a regra da universidade é arredondar para uma casa decimal só, ou letras em campos que só deveriam receber números, e muito mais. Ele precisa analisar cada regra de negócio e e todas as maneiras das quais ela pode dar errado. E isso só pensando nos testes funcionais: testes de performance, de estresse e de integração são só alguns dos outros tipos de testes existentes e necessários (não estou dizendo que todo mundo faça, mas isso já é outra história: não é novidade pra ninguém que existe muito projeto mal-feito por aí, né?).

Ou seja, não é, ao contrário do que disse o gerente do projeto, uma coisa que qualquer um possa fazer. Mas, tudo bem, vamos supor que você, gerente, ache que isso tudo é um monte de bobagem e que a tia do café poderia perfeitamente substituir qualquer um dos analistas de teste do seu projeto: será que você não pode pelo menos não dizer isso na cara deles? Eles provavelmente já desconfiam, mas isso não é motivo para anunciar em uma sala de reunião cheia de gente o seu desprezo pela habilidade e conhecimento que eles passaram anos adquirindo.

Gerente, não faça isso. Vai por mim: essa é uma daquelas situações em que é preferível você mentir.