Sou desenvolvedor de software (em período parcial ou integral) há quase 3 anos. Eu sempre fui o tipo de pessoa que tem esse talento para liderar as coisas e fornecer à organização a tarefa de fazer as coisas. Desde que eu era o líder do meu projeto de design sênior na faculdade, senti que esse era meu verdadeiro chamado, não sentado atrás de uma mesa de codificação. Agora, eu sei que preciso entender como codificar para outros desenvolvedores me respeitarem de verdade. Além disso, eu realmente amo codificação. Trabalho em muitos projetos paralelos em casa, fora do trabalho, acompanho as melhores práticas de codificação e tento e aprimorando continuamente meu conhecimento do domínio.
Minha principal pergunta é: que tipo de coisas ou oportunidades devo procurar que me ajudem a progredir em minha carreira para uma função mais gerencial, em vez de uma função de codificação. Como eu disse, adoro codificar, no entanto, gostaria muito mais de poder projetar as coisas em alto nível e organizar a equipe de maneira a fazer as coisas e monitorar o progresso delas, ajudando na assistência técnica. decisões aqui e ali. Esse tipo de coisa realmente me deixa feliz, em vez de ficar sentado atrás de uma mesa codificando o dia inteiro.
Obviamente, um dos meus principais sonhos é produzir por conta própria algum tipo de software que eventualmente explodisse e aumentasse, começando a contratar uma equipe e a fazer tudo sozinho, mas sinto que as chances de isso acontecer são muito piores. do que apenas alterar um pouco minha carreira para chegar aonde quero ir. Sinto que posso conseguir a mesma satisfação fazendo isso por um empregador do que por mim. Mesmo que eu nunca tenha me sentido assim antes, sinto que tem sido principalmente porque não estou fazendo o que realmente quero.
Alguma dica, dicas ou coisas a serem lembradas? Alguém que fez exatamente isso, e se sim, como você fez isso?
fonte
Respostas:
Passar de uma função de desenvolvimento de software para uma função gerencial ou de liderança é algo que leva tempo. Eu me formei em engenharia de software, enfatizando o processo de engenharia de software e minorei em gerenciamento 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, eu descobri que a maioria das funções gerenciais e de liderança, especialmente no setor que eu queria para trabalhar, requer mais de 5 anos de experiência em engenharia de software (eu tinha 2, incluindo cooperativas e estágios).
Nesse meio tempo, 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 a ter as conversas importantes. Mesmo como desenvolvedor, há decisões que precisam ser tomadas com colegas de trabalho, clientes e usuários. Às vezes, é preciso 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 importa mais é um que eu recomendaria que aborda isso. Há outros, como Getting Past No e Obtendo a Yes: Negociação acordo sem dar Em que também seria útil. Eles são relevantes, independentemente da posição em que você estiver.
No lado mais técnico, é importante entender o ciclo de vida de desenvolvimento de software para liderar e gerenciar as equipes de software. As posições de liderança provavelmente significam que você está envolvido com tarefas de engenharia de requisitos, arquitetura de sistemas de software, design, implementação, testes e garantia de qualidade e 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 livros como Requisitos de software (e é companheiro, Mais sobre requisitos de software ), Arquitetura de software na prática (embora minha universidade tenha mudado paraArquitetura de sistemas de software: trabalhando com partes interessadas usando pontos de vista e perspectivas depois de fazer o curso de arquiteturas, e isso me foi recomendado) e métricas e modelos em engenharia de qualidade de software .
Da perspectiva do gerenciamento de projetos, você pode aprender sobre modelos e metodologias de processos. Existem métodos ágeis, como Scrum e Extreme Programming, e métodos orientados a planos, como Waterfall e Spiral. Também existem estruturas de metodologia, como o CMMI e o Processo de Software Pessoal / Processo de Software de Equipe. Os que são relevantes para você dependem de onde você trabalha, em termos de setor e empresa. Existem vários livros sobre várias metodologias e estruturas, mas eu recomendo o Rapid Development: Taming Wild Software Schedules para o gerenciamento geral da engenharia de software e o processo de engenharia de software.
Se você quiser continuar sua educação, pode olhar mais para uma trilha de gerenciamento técnico versus para uma trilha de gerenciamento de negócios. Se você queria uma posição de gerenciamento técnico, consulte os programas de engenharia de software, gerenciamento de engenharia de software e 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 possuam um forte componente econômico ou financeiro.
fonte
Essas outras respostas são ótimas, mas jogarei meus US $ 0,02. Mudei de um desenvolvedor júnior da minha empresa atual para o desenvolvedor sênior e, em seguida, o líder da equipe e agora o arquiteto. Demorou vários anos. Sempre que recebi uma promoção, foi porque eu já estava fazendo aspectos do trabalho, e minha gerência estava apenas reconhecendo isso e me dando o título apropriado. Portanto, meu conselho é não esperar para ser informado de que você é um líder técnico ou um gerente. Basta começar a assumir responsabilidades que as pessoas nessas funções têm. Depois de alguns meses ou um ano, você descobrirá que está basicamente fazendo o trabalho que está alvejando e poderá apontar isso para a sua gerência se eles não perceberem.
fonte
Não tentarei fornecer uma resposta completa, pois Thomas Owens já listou alguns conselhos realmente bons (+1 a isso).
Só queria adicionar algumas dicas / sugestões:
... e agora vou revisar os links que Thomas postou
fonte
Pessoalmente, não desejo deixar minha posição atual no momento, mas, dependendo de onde estamos no ciclo de lançamento, passo de 10% a quase 100% do meu tempo em tarefas que não sejam de codificação. Se você é paciente e observador, há muitas oportunidades que você pode aproveitar para fazer algo diferente de "apenas codificar" na sua posição atual. Por exemplo:
Informe o seu gerente que você está interessado nesse tipo de oportunidade e, assumindo que você está se saindo bem com suas responsabilidades atuais, ele orientará as oportunidades em sua direção quando elas surgirem. Iniciativa conta muito. A maioria dos gerentes permitirá que você observe, mesmo que não ache que você está qualificado no momento.
fonte
Se você deseja passar para uma função de gerenciamento de projetos, não faz mal fazer aulas noturnas e trabalhar em direção ao seu MBA.
Outra opção seria procurar a certificação do Corpo de Conhecimento em Gerenciamento de Projetos do PMBOK . Muitos lugares não o consideram, a menos que você tenha alguns anos de experiência real em liderança ou um dos dois itens listados acima.
O PMBOK é um teste extremamente difícil e exige muito estudo para ser aprovado. Eu também acho que eles têm requisitos em gerenciamento de projetos e experiência de liderança reais apenas para serem elegíveis para fazer o teste.
fonte
Parece-me que você pode querer trabalhar em direção ao gerenciamento de projetos. Um grande número de posições de PM no desenvolvimento de software também exige experiência em codificação.
Eu procuraria cargos em que você possa assumir responsabilidades que o levem à direção / liderança que você deseja. Subir a escada, pode parecer diferente com base em como as coisas funcionam onde você está trabalhando. Porém, mesmo com uma quantidade menor de experiência em codificação, as posições de gerente estão disponíveis se você tiver alguma experiência em liderança e gerenciamento.
fonte