Come si applica specificamente allo sviluppo del software, ci sono due tipi di ruoli che aggiungono valore ai manager: gestione del progetto e team leader.
Un project manager si interfaccia con i clienti e il middle management, che è un risparmio di tempo per gli sviluppatori. Spesso ci sono dei chiarimenti o cambiamenti di scope che emergono nei progetti, ed è utile per i clienti e il middle manager avere un unico punto di contatto. Cercare di rispondere alle domande di ogni membro di un team di sviluppo porta a decisioni di progetto non documentate e impegni non documentati, la rovina della gestione dell'ambito.
Dall'altro lato, un team leader è coinvolto nello sviluppo delle carriere / abilità, assicurandosi che il carico di lavoro sia distribuito in modo appropriato tra i membri del team e fornendo risorse e ricompense commisurati ai singoli contributi e bisogni.
Nessuno di questi ruoli richiede un programmatore a testa in giù, anzi un po 'il contrario. Un programmatore salterà spesso a un compito di scrittura del codice come prima risposta a una domanda oa una crisi, ed è utile avere qualcuno il cui compito è chiedere se è davvero necessario eseguire quell'attività.