Mudar de uma função de desenvolvimento de software para uma função gerencial ou de liderança é algo que leva tempo. Eu me especializei em engenharia de software, enfatizando o processo de engenharia de software e minorei na gestão de negócios e comunicação. Mesmo com essa experiência acadêmica sobre como gerenciar projetos de software, como recrutar e contratar, como liderar equipes e como se comunicar com grupos verbalmente e por escrito, descobri que a maioria dos papéis gerenciais e de liderança, especialmente na indústria que eu queria para trabalhar, exigem mais de 5 anos de experiência em engenharia de software (eu tinha 2, incluindo cooperativas e estágios).
Nesse meio tempo, eu simplesmente continuei meus estudos sobre tópicos de gerenciamento de projetos.
A primeira coisa que eu recomendaria é se tornar um bom comunicador e negociador. Aprenda como ter as conversas que importam. Mesmo como desenvolvedor, há decisões que precisam ser tomadas, com colegas de trabalho, clientes e usuários. Às vezes você tem que ter conversas difíceis e chegar a um acordo que beneficie a todos. Não é um objetivo fácil, mas o livro Conversas difíceis: como discutir o que é mais importante é um dos que eu recomendaria que cobre isso. Há outros, como Passando Não e Obtendo para Yes: Negociando Acordo Sem Dar Isso também seria útil. Estes são relevantes independentemente da posição em que você está.
No lado mais técnico, uma compreensão do ciclo de vida de desenvolvimento de software é importante para liderar e gerenciar equipes de software. Posições de liderança provavelmente significam que você está envolvido com engenharia de requisitos, arquitetura de sistemas de software, design, implementação, teste e garantia de qualidade e tarefas de manutenção. Embora você não possa ser um especialista em tudo isso, um gerente ou líder precisa, pelo menos, entender todos eles. Como desenvolvedor, você provavelmente faz a maior parte do seu trabalho em design, implementação e manutenção, com alguns testes também. Eu recomendaria muito livros como Requisitos de Software (e é companheiro, Mais informações sobre os requisitos de software , Arquitetura de software na prática (embora minha universidade tenha mudado para Arquitetura de sistemas de software: trabalhando com as partes interessadas usando pontos de vista e perspectivas depois que tirei curso de arquitetura, e foi recomendado para mim), e Métricas e Modelos em Engenharia de Qualidade de Software .
De uma perspectiva de gerenciamento de projetos, você pode aprender sobre modelos de processos e metodologias. Existem métodos ágeis, como Scrum e Extreme Programming, e métodos baseados em planos, como Waterfall e Spiral. Há também estruturas de metodologia, como o CMMI e o Processo de Software de Equipe / Processo de Software Pessoal. Os que são relevantes para você dependem de onde você trabalha, em termos de indústria e empresa. Há uma série de livros sobre várias metodologias e frameworks, mas eu recomendo o rápido desenvolvimento: domar as programações Wild Software para gerenciamento geral de engenharia de software e processo de engenharia de software.
Se você quiser continuar sua educação, é possível observar mais uma faixa de gerenciamento técnico em comparação com uma faixa de gerenciamento de negócios. Se você quisesse uma posição de gerenciamento técnico, consulte engenharia de software, gerenciamento de engenharia de software e programas de gerenciamento de engenharia. Para obter mais informações sobre gerenciamento de negócios, você pode considerar programas de MBA, gerenciamento de negócios ou alguns programas de gerenciamento de engenharia que tenham um strong componente financeiro ou econômico.