Como se aplica especificamente ao desenvolvimento de software, existem dois tipos de funções de valor agregado para os gerentes: gerenciamento de projetos e líder de equipe.
Um gerente de projetos faz interface com clientes e middle management, o que economiza tempo para os desenvolvedores. Freqüentemente há esclarecimentos ou mudanças no escopo que surgem nos projetos, e é útil para os clientes e o gerente intermediário terem um único ponto de contato. Tentar colocar em campo questões de todos os membros de uma equipe de desenvolvimento leva a decisões de projetos não registradas e a compromissos não documentados, a maldição do gerenciamento de escopo.
Por outro lado, um líder de equipe está envolvido no desenvolvimento de carreira / habilidades, garantindo que a carga de trabalho seja adequadamente distribuída entre os membros da equipe e fornecendo recursos e recompensas proporcionais às contribuições e necessidades individuais.
Nenhum desses papéis requer um programador de heads-down, de fato um pouco o oposto. Um programador costuma saltar para uma tarefa de escrita de código como a primeira resposta a uma questão ou crise, e é útil ter alguém cujo trabalho é perguntar se essa tarefa realmente precisa ser feita.