Já que Scrum define apenas três papéis: Scrum Master, Product Owner e Time, onde é que fica o papel do Gerente de Desenvolvimento? Será que é hora de dizer adeus?
Contextualizando
Há pouco tempo assumi uma posição na Locaweb como gerente da equipe de desenvolvimento responsável pelos sistemas centrais da empresa. É uma equipe relativamente grande, dividida em três times de multi-talentosos desenvolvedores, um para cada domínio de negócio que lidamos: Provisionamento, Cobrança e Atendimento; além de dois sysadmins que dão suporte a estes times em tempo integral.
Os times atualmente estão organizados como times de Scrum tipicos, com os tais multi-talentosos desenvolvedores, um Scrum Master e um Product Owner — que no nosso caso, é um gerente de produtos que trabalhar fortemente conosco, extremamente comprometido com os interesses de negócio da empresa.
Desde então, comecei a buscar me interar um pouco mais sobre assuntos de gerenciamento e liderança ao melhor espírito ágil, com a preocupação de não me tornar aquele tipo de gerente que simplesmente “delarga” e vive alienado; ou pior ainda, aquele que comanda e controla o tempo todo, e queno final das contas, mais caroça e atrapalha do que ajuda.
Novo release: Gerente 2.0
Bem, além de conversar com vários amigos — muito mais experiêntes do que eu nesse papel —, também naveguei bastante pela Web e acabei chegando num artigo muito interessante de Pete Deemer, da Scrum Training Institute, que tem me ajudado bastante. Se você também tem interesse no assunto, acho que vale a pena ler.
Pete sugere no artigo, de maneira bem coerente, 14 atividades de um gerente de desenvolvimento. Vamos dar uma olhada no resumão delas:
1- Ajuda a remover impedimentos que o time não tem condições de resolver por si só
Enquanto o Scrum Master remove impedimentos hora-a-hora, dia-a-dia, coisas referentes ao projeto, o gerente precisará focar seus esforços em resolver impedimentos mais sistemátivos, mais corporativo, digamos assim.
Estes impedimentos, frequentemente, são os mais desagradáveis; e que requerem alguma influência, alguma autoridade, para lidar com eles de maneira efetiva.
2- Dá ao time conselhos e sugestões sobre dificuldades técnicas que aparecem
Gerentes deveriam estar disponíveis para dar conselhos e assitência técnica ao time sempre que solicitado.
Nota minha: é que claro que, volta e meia, o gerente vai precisar ir a reuniões estratégicas, corporativas — ou seja lá como chamemos em nossa empresa —, e não poderá atender às solicitações do time de imediato. É preciso tratar isso de maneira bem madura com o time, colocando na mesa as limitações impostas por suas outras atividades e buscando uma maneira de mitigar isso, para que nem o time fique na mão quando precisar, nem o gerente seja crucificado quando não estiver à pronta disposição.
3- Regularmente conversa com os membros do time, um por um, para dar coaching e mentoring
Gerentes deveriam gastar tempo com os membros do time, individualmente, com certa frequência (que cada um deve achar a melhor para si), para dar coaching e mentoring. Veja: não é para pedir status report; é para ensinar, ajudar, guiar, etc, menos cobrar.
Alguns gerentes gostam de fazer isso pareando e escrevendo código junto.
4- Dá sugestões sobre como fazer features melhores
Estas sugestões são endereçadas diretamente ao Product Owner, geralmente, durante a Sprint Review.
Nota minha: o ideal é que isso aconteça sempre, mantendo o máximo de proximidade possível com o Product Owner. No meu caso, por exemplo, sento de frente para o gerente de produtos de sistemas centrais e bato-papo com ele o tempo todo. Ou seja, se tenho algo a sugerir, não preciso esperar a cerimonia de revisão.
5- Mantem-se pari passu do desenvolvimento de ferramentas, tecnologias e técnicas que o time está usando
Esta é uma atividade muito importante e frequentente negligenciada pelos gerentes. Gerentes não podem ficar congelados no tempo. Mesmo porque, a atividade 2 é sobre estar apto a dar conselhos técnicos ao time.
Nota minha: não tem coisa mais irritante do que um gerente que não entende nada do trabalho que você está fazendo, dando palpites furados, e ainda querendo que você explique para ele algo que ele não tem um mínimo de base técnica e conceitual para entender.
6- Planeja treinamento e outros skills de desenvolvimento para os membros do time
Gerentes deveriam pensar cuidadosamente sobre onde o time poderia usar seu skill; e também, cláro, que capacidades o time precisará ter quando for desenvolver determinados itens do Product Backlog.
7- Mantem-se atualizado sobre as novidades e evoluções da indústria
Novamente, uma atividade importante, mas frequentemente neglienciada. Sem ela, a atividade 2 fica fortemente comprometida.
8- Antecipa ferramentas, skills e futuras necessidades
Outra atividade importante, que tem tudo a ver com a atividade 6, e que é frequentemente negligenciada. Converse com seu time a respeito, peça sugestões.
9- Planeja e gerencia orçamento e caixa
Outra vez, algo muito importante, mas muito negligenciado por diversos gerentes.
Nota minha: qual foi a última vez que você colocou no seu orçamento um din-din para cursos, eventos, livros, e outras coisas que melhoram o skill do seu time? Ou você é do tipo que não se preocupa com isso e que, pior ainda, até acha ruim que seu time vá a eventos, faça cursos ou leia livros no horário de trabalho?
10- Dá sugestões de que features o time deveria construir
Vale o mesmo comentário do item 4, não vale? Acho que sim, tem tudo a ver.
11- Faz avalição de performance e dá feedback aos membros do time
Isso é algo necessário em muitas empresas, apesar de bastante subjetivo. Mas o ponto aqui é que gerentes deveriam basear suas avaliações em suas próprias observações, bem como no feedback de outros membros de time.
12- Faz planejamento e desenvolvimento de carreira com os membros do time
Oportunidade de carreira é uma das mais significantes formas de compensar pessoas por seu trabalho. Além de din-din, é lógico!
13- Recruta, entrevista e contrata novos membros para o time
Uma das melhores (mas às vezes, aterrorizantes!) ações de gerenciamento é tomar decisões de contratação. Isso porque boas contratações dão lucro desde o primeiro dia, enquanto que más contratações são uma “taxa” invisivel na habilidade do time entregar valor de negócio.
14- Remove membros que não são capazes de fazer um bom trabalho no time
Se mesmo depois de extenso coaching um membro do time não é capaz de contribuir, de trabalhar harmoniosamente com os outros membros do time, ou de fazer seu trabalho na qualidade esperada, ele precisa ser removido do time, ou mesmo da empresa, rapidamente. Tipicamente, gerentes precisam guiar esse processo de maneira coordenada com o RH da empresa.
Nota minha: não deixe a moral do seu time e o dinheiro da sua empresa ir para o ralo. Cuidado! Há uma linha muito tênue entre “vou dar mais uma chance” e a omissão. Não tenha medo de fazer uma demissão, mesmo que tenha sido você que fez a má contratação. Contratações são quase que como loterias! Na verdade, quem fez a má contratação é o que menos importa; o que realmente importa é a performance e moral do time, que no final das contas, se traduz em mais dinheiro para a empresa.
Conclusão
O papel do gerente de desenvolvimento 2.0, como diz esse artigo de Pete Deemer, traz um mix de habilidades de liderança técnica e de gerenciamento de pessoas — pelo amor de Deus, não chame as pessoas de recursos!
A mim faz todo sentido; e está bem alinhado com as atribuições que recebi, quando contratado pela Locaweb. Aliás, acho que vale citar que, uma das coisas que Pete diz no artigo é que esse “novo” papel do gerente de desenvolviemnto precisa ter uma bênção formal do diretor de direitor TI, ou alguém com poderes equivalentes.
Mas e você, o que acha? Deixe um comentário…