Como se aplica específicamente al desarrollo de software, existen dos tipos de roles de valor agregado para los gerentes: gestión de proyectos y liderazgo de equipos.
Un gerente de proyecto interactúa con los clientes y la gerencia media, lo que ahorra tiempo a los desarrolladores. A menudo hay aclaraciones o cambios en el alcance que surgen en los proyectos, y es útil para los clientes y el gerente intermedio tener un único punto de contacto. Tratar de responder las preguntas de cada miembro de un equipo de desarrollo conduce a decisiones de proyectos no documentados y compromisos indocumentados, la ruina de la gestión del alcance.
Por otro lado, un líder de equipo está involucrado en el desarrollo de la carrera / habilidades, asegurándose de que la carga de trabajo se distribuya adecuadamente entre los miembros del equipo y proporcionando recursos y recompensas acordes con las contribuciones y necesidades individuales.
Ninguno de estos roles requiere un programador directo, de hecho, todo lo contrario. Un programador a menudo saltará a una tarea de escritura de código como la primera respuesta a una pregunta o crisis, y es útil tener a alguien cuyo trabajo sea preguntar si esa tarea realmente debe hacerse.