BT

Disseminando conhecimento e inovação em desenvolvimento de software corporativo.

Contribuir

Tópicos

Escolha a região

Início Artigos O papel do gerente de desenvolvimento

O papel do gerente de desenvolvimento

O papel de um gerente de desenvolvimento pode ser estressante, pois é a pessoa que está sempre no meio de um confronto, sendo puxado em direções diferentes pela gerência, clientes, vendas, desenvolvedores e outros. Se está fazendo bem o trabalho, ninguém percebe: as coisas funcionam de forma fluente, o trabalho é feito sem drama e todos têm o que precisam. Mas se as coisas dão errado, não importa qual a causa, a culpa é do gerente de desenvolvimento.

O primeiro passo e o segredo para ser bem sucedido como um gerente de desenvolvimento está em gerir as expectativas e fazer com que todos entendam bem suas funções. Tanto o gerente como seus colegas de trabalho, precisam estar em sintonia.

Tenho visto anúncios de emprego em que era necessário profundo conhecimento de vários número de linguagens de programação e ambientes, outros exigiam a certificação PMP. E por aí vai. Embora concorde que o papel do gerente de desenvolvimento é nebuloso, ofertas de emprego como as citadas dão a sensação de que as empresas não refletiram ainda sobre o papel. Essa é uma fórmula que tende ao fracasso, tanto para a empresa como para o contratado, sob essas condições.

A principal responsabilidade é fazer com que um produto seja lançado. O objetivo é apresentar resultados para o cliente ou mercado, além de fazer tudo o que for necessário para alcançá-los. Para atingir esse objetivo, é necessário ter certeza de que a equipe de desenvolvimento é capaz de desempenhar bem o seu papel, e isso significa garantir que tenha metas claras, tanto a curto como a longo prazo, e remover impedimentos. A partir do escopo inicial do projeto, até a implantação do produto, cada etapa é de responsabilidade do gerente de desenvolvimento, que pode, e deve, delegar, mas sempre verificando se as coisas estão sendo realizadas como se deve e estando pronto para ajudar.

Escopo de projeto

Como gerente de desenvolvimento, é necessário saber como avaliar o potencial de uma oportunidade ou de uma iniciativa em um projeto. Dependendo da organização e de como se trabalha com as equipes, isso pode ser uma parte importante do trabalho. Se o gerente trabalha com projetos terceirizados, então é de sua responsabilidade responder a uma RFP (Solicitação de Proposta), preenchê-la com as entregas, prazos, orçamento etc. Mesmo que só se vá lidar com projetos internos, sem um sistema formal de documentação, deve-se adquirir o hábito de escrever um documento de escopo para cada projeto. Além disso, se está trabalhando com métodos ágeis, o documento de escopo precisa ser vivo, mantido e atualizado de acordo com o progresso do projeto.

Projetos corriqueiros

Projetos corriqueiros fazem parte do trabalho, mas merecem um parágrafo à parte. Já ouvi que esses projetos do dia-a-dia não precisam de orçamento e prazo específicos. É um erro pensar assim, pois podem podem desviar a atenção e o trabalho da equipe, fazendo com que se perca tempo desnecessário e não contabilizado. Todo projeto tem pelo menos um custo interno e uma entrega. É necessário ser capaz de negociar com os envolvidos, em tudo o que for empreender.

Gerência de relacionamentos

Lembre-se que o gerente de desenvolvimento é a pessoa que está no "meio de campo de batalha" e todas as falhas recairão sobre este papel, mesmo que a causa esteja além de seu controle. Manter um bom relacionamento com quem está envolvido é crucial.

É também importante que o gerente de desenvolvimento conheça o seu chefe imediato e o chefe do seu chefe, além dos que estão no mesmo nível. Conversar com os envolvidos sobre os projetos que gerencia é importante; e é também fundamental certificar-se que recebam atualizações regulares sobre a situação do projeto.

Outra pessoa importante para manter próxima é a que faz o relacionamento com o cliente; ela pode gerenciar as expectativas e lidar com reclamações. Por outro lado, se essa pessoa não está do lado do gerente de desenvolvimento, pode prejudicá-lo, fazendo promessas aos clientes sem o devido alinhamento, enviando relatórios de bugs desnecessários, questionando sobre cronogramas não-realistas, entre outras possibilidades.

Conheça a equipe. Verifique quanto tempo estão trabalhando na empresa. Quais são os seus pontos fortes e fracos? Quem trabalha bem com quem? São muito ocupados? O gerente de desenvolvimento precisa manter o controle de pequenas coisas como aniversários, tempo de empresa, entre outros. Reconhecer essas pequenas colabora para criar um ambiente de comunidade.

O gerente de desenvolvimento também precisa certificar-se de que a gestão saiba no que está trabalhando e possa ver o seu progresso. Isso é fundamental para mantê-los satisfeitos. Comunicação e visibilidade são fundamentais nesse trabalho. Mantenha bons programas, quadros de avisos, quadros brancos e qualquer outra coisa necessária para mantê-los atualizados.

Se os participantes entenderem os desafios que a equipe está enfrentando, estarão menos propensos a terem uma expectativa irreal. Alguns gestores, entretanto, nunca vão entender porque algumas coisas não funcionam. Nesses casos, pode ser a hora de começar a procurar outro emprego.

Planejamento de projeto

A não ser que se esteja trabalhando em um grande projeto, geralmente não é necessário uma função separada para um gerente de projeto. Para projetos pequenos e médios, que usam métodos ágeis, é possível ao gerente de desenvolvimento assumir o papel e as responsabilidades de um gerente de projetos. No entanto, há um conflito de interesses entre o gerente de desenvolvimento e gerente de projeto, quando coexistem.

O gerente de desenvolvimento trabalha a fim de fazer tudo o mais rápido possível, enquanto que o trabalho do gerente de projetos é dizer o que pode ser feito e quando. É o equilíbrio entre estes dois pontos de vista que tem que prevalecer. Se o projeto for grande o suficiente para comportar um gerente de projeto experiente ou um Scrum Master, o gerente de desenvolvimento não deve assumir esse papel sozinho. No entanto, uma coisa que se deve fazer, sendo o modelo Cascata ou Agile, é certificar-se de que o plano do projeto é um documento vivo, continuamente atualizado.

Controle do processo

Essa é outra parte crítica do trabalho. Independentemente de utilizar metodologias ágeis ou cascata, manter o processo nos eixos é importante. Lembre-se que sua principal prioridade é evitar qualquer coisa que afete as entregas.

Qual é o seu processo de desenvolvimento? Qual o nível de formalidade? Se alguém o chama de "Agile", verifique se é realmente ágil (sugiro manter um cartaz do Manifesto Ágil como lembrete para que todos sigam os princípios). Como o seu processo pode ser melhorado?

Delegar é bom, mas é necessário supervisão. Grandes ideias muitas vezes falham na execução porque não foi verificado se as tarefas foram feitas corretamente. Conduzi alguns projetos que tinham todas as peças certas no lugar, mas em que a execução foi mal feita e as coisas desandaram.

Finalmente, é preciso informar a situação do projeto para os envolvidos e esses relatórios devem se basear em alguns indicadores fortes. Deve haver alguma forma de medir o progresso e consolidá-lo de uma maneira clara para todos os interessados. Esses relatórios podem ser diários, semanais ou conforme a necessidade. Esteja ciente do perfil dos envolvidos que leem os relatórios e o nível de detalhe que esperam, segmentando os seus relatórios no nível adequado. Acima de tudo, garanta que seus relatórios sejam claros, precisos e de fácil leitura. Isso vai diminuir o número de más interpretações, mas não eliminá-las. Esteja pronto para esclarecer e explicar seus relatórios.

Tecnologia

Essa é uma área que eu vejo sempre nas ofertas de emprego. Algumas empresas estão procurando gerentes de desenvolvimento com conhecimento profundo em áreas específicas. O gerente de desenvolvimento não é um gênio da tecnologia. Deixe isso para desenvolvedores sênior e líderes técnicos. O gerente de desenvolvimento precisa estar confortável com as novas tecnologias que estão por vir, mas não o deixe se tornar o perito; isso será um desperdício de tempo e acabará desviando a atenção de outras tarefas mais importantes.

O gerente de desenvolvimento precisa saber o suficiente sobre as ferramentas que a equipe está utilizando para saber se estão usando-as de forma eficiente, e quando há lacunas no conhecimento da equipe. Por mais tentador que seja, é necessário delegar essa função para outros especialistas na equipe.

Desenvolvimento

Mais uma vez, essa é uma área que tem que ser confortável para o gerente de desenvolvimento, mas não ser uma especialidade de sua função. O gerente de desenvolvimento precisa ser capaz de dizer qual código é bom e qual é ruim, mas é necessário também confiar na equipe. Quando momentos de crise surgirem, prepara-se para "mergulhar" e assumir algumas tarefas de desenvolvimento. Mas é necessário manter a visão do todo em mente e se concentrar em entregar o projeto. Não se pode dar o luxo de passar dias exclusivamente na programação e esquecer o resto do trabalho.

Testes automatizados

Separo testes automatizados da garantia de qualidade, pois os vejo como funções separadas. Geralmente, esses testes são atribuídos aos membros da equipe de controle de qualidade. Testes automatizados incluem testes unitários e scripts de teste, em que a garantia da qualidade é olhar manualmente o sistema; não apenas encontrar bugs, mas também verificar uma boa usabilidade, desempenho e questões de design.

Como gerente de desenvolvimento, saber qual é a cobertura de testes do código é fundamental. Quanto da base de código é coberta por testes de unidade, quantos desses são automatizados? Esses valores estão aumentando ou diminuindo? Um bom líder de QA será capaz de lhe dar esses números, mas é importante ter um sistema que, pelo menos, estime esse valor. Não prestar atenção na cobertura de código pode resultar em código com erros em produção.

Garantia de qualidade

Inconsistências, especificações mal feitas, queda de desempenho, entre outros, são alguns dos problemas que devem ser tratados pela Garantia de Qualidade (QA). É o trabalho do gerente de desenvolvimento garantir que esses testes sejam feitos. Manter a equipe de controle de qualidade junto ao desenvolvimento é importante para que saibam o que está acontecendo. Abro tarefas de QA para cada equipe de desenvolvimento e asseguro que sejam atribuídas ao mesmo tempo que as tarefas de desenvolvimento. Dessa forma, o desenvolvedor pode escrever notas nos testes em um local separado dos comentários de código.

Testes de QA podem falhar por uma série de razões, como: mudanças de código; especificações não compreendidas; e erros de rede ou de sistema. Para chegar à causa raiz da falha é necessário aproximar os desenvolvedores da equipe de QA. Isso não é tão difícil se a equipe de QA fizer parte da equipe de desenvolvimento. Por outro lado, se a equipe de QA fica em uma estrutura separada, até com um gerente próprio, será necessário coordenar essa aproximação.

Gerenciamento de releases

Dependendo da complexidade do seu projeto, implantar uma release em produção pode ser um projeto em si. Em um sistema simples, isso poderia ser tão fácil quanto fazer uma compilação, mas em um sistema complexo pode exigir a construção de uma série de pacotes (executáveis, arquivos JAR, EXE etc.), com scripts de banco de dados e até mesmo outras aplicações. Certificar-se de que há a versão correta de cada componente pode ser difícil e demorado. Em um projeto muito complexo, pode haver um "build master" designado para acompanhar as versões.

Também será necessário colocar a versão da release no código; preparar e testar os arquivos de instalação; escrever e distribuir notas de implantação e assegurar quem tem direito de acesso à nova versão.

Implantação

A implantação de um release é muitas vezes vista como parte do gerenciamento de release, mas deve ser tratado como projeto separado.

Preparar o site para receber uma nova versão de release é um projeto em si. Quem são os seus contatos? Esses contatos estão prontos para a nova versão de release e foram informados sobre as mudanças? Qual é o procedimento para relatar problemas? Quanto tempo dura o período Beta? Você está pronto para reverter a implantação com o mínimo de inatividade? Uma vez que a versão se torna Beta, os clientes estão prontos? Todas essas perguntas acima têm de ser respondidas para cada cliente antes que o release seja lançado.

Funções administrativas

Esta é uma parte do trabalho que muitos odeiam, mas é de responsabilidade do gerente de desenvolvimento. Orçamentos, contratação e demissão de profissionais, competição por recursos e espaço, elaboração de relatórios e contabilidade são exemplos de decisões tomadas.

Integrantes da equipe

Os integrantes da equipe fazem parte da função administrativa, mas merecem um tópico à parte. Seria ideal se todos os membros da equipe estivessem nos papéis corretos, o que é difícil, mas isso não significa que não se deve se esforçar para isso. "Encaixar" cada um nos níveis corretos pode ser complicado. Uma grande equipe custará mais e pode ser menos eficaz que uma equipe menor, mas não se deve permitir que todos trabalhem com 100% da sua capacidade. O gerente de desenvolvimento precisa permitir uma folga para que a equipe possa responder a emergências, sem colocar em risco os projetos.

Não se preocupe se alguém precisar de dias de folga para assuntos pessoais ou por outras razões. Existe uma série de estudos que mostram que as equipes com altas taxas de absenteísmo (dentro de limites razoáveis), são mais eficazes do que as equipes que nunca faltam. Isso acontece, entre outros motivos, pois os membros da equipe são obrigados a aprender diferentes partes do sistema quando os que normalmente são responsáveis ​​não estão lá. Portanto, permitir que os membros se ausentem da empresa por motivos pessoais pode fazer com que a sua equipe se torne mais eficaz.

O desligamento de funcionários é algo que acontece e pode ser algo positivo. Eu digo a jovens desenvolvedores que devem mudar de empresa a cada 5 anos. Isso lhes dá uma exposição a ambientes e tecnologias diferentes, bem como a processos distintos. Isso é algo que procuro quando analiso currículos, então também espero que os integrantes da minha equipe façam o mesmo. O gerente de desenvolvimento precisa planejar bem, não pode implorar a alguém para ficar porque é o único que conhece uma determinada parte do projeto ou sistema. Certifique-se de que a informação e o conhecimento foram disseminados e não está concentrado em um ou dois indivíduos-chave.

No final, todo gerente de desenvolvimento passará por uma experiência de ter que desligar alguém de sua equipe. Se o motivo for relacionado a questões financeiras (redução da equipe), ou até mesmo devido a baixo desempenho, é preciso estar preparado e conhecer as políticas e procedimentos da empresa.

Conclusões

Para mim, o melhor exemplo de como ser um gerente de desenvolvimento vem da indústria de manufatura, especialmente de uma história que ouvi sobre os sapatos Bata. Em sua fábrica original, hoje na República Tcheca, Thomaz Bata mantinha um escritório em um elevador de carga. Sempre que havia um problema de produção em determinado andar, Bata podia transferir seu escritório inteiro para lá e microgerenciar a situação até que o problema fosse resolvido. Depois, podia descer para o andar principal e gerir a empresa, sem a distração do chão de fábrica.

Microgerencie quando necessário, mas deixe o caminho aberto para que a equipe trabalhe o resto do tempo, pois existem muitas outras tarefas para serem realizadas.

Avalie esse artigo

Relevância
Estilo/Redação

Conteúdo educacional

BT