Como posso progredir de um desenvolvedor de software para um gerente de software ou líder de equipe? [fechadas]

41

Sou desenvolvedor de software (em tempo parcial ou integral) há quase três anos. Eu sempre fui o tipo de pessoa que tem esse talento para assumir a liderança nas coisas e fornecer à organização algo que seja feito. Desde que cheguei ao projeto de design sênior na faculdade, senti que essa era a minha verdadeira vocação, não estar sentada atrás de um código de mesa. Agora, eu sei que preciso entender como codificar para que outros desenvolvedores realmente me respeitem. Além disso, eu realmente amo codificação. Eu trabalho em vários projetos paralelos em casa fora do trabalho, continuo com as melhores práticas de codificação e tento continuar meu conhecimento do domínio.

Minha principal questão é: que tipo de coisas ou oportunidades eu deveria estar procurando? Isso me ajudará a progredir em minha carreira para um papel mais gerencial, em vez de um papel de codificação. Como eu disse, eu adoro codificar, no entanto, eu adoraria ainda mais poder projetar coisas em alto nível, e organizar a equipe de forma a fazer as coisas, monitorar seu progresso, e ajudar com técnicas decisões aqui e ali. Esses tipos de coisas realmente me fazem feliz, em vez de ficar apenas sentado atrás de uma mesa, escrevendo o dia todo.

Obviamente, um dos meus principais sonhos é produzir algum tipo de software por conta própria, que eventualmente explodiria e aumentaria, e então começaria a contratar uma equipe e faria tudo sozinho, mas sinto que as chances disso acontecerem são muito piores do que apenas alterar um pouco a minha carreira para chegar onde quero ir. Eu sinto que posso conseguir a mesma satisfação fazendo isso por um empregador ao invés de mim mesmo. Mesmo que eu não tenha me sentido assim antes, eu sinto que tem sido principalmente porque eu não estou fazendo o que eu realmente quero fazer.

Alguma dica, ponteiros ou coisas para manter em mente? Alguém que fez exatamente isso e, em caso afirmativo, como você fez isso?

    
por gnat 28.10.2011 / 15:48
fonte

6 respostas

40

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.

    
por 28.10.2011 / 16:30
fonte
19

Essas outras respostas são ótimas, mas eu adicionarei meus $ 0,02. Eu mudei de um desenvolvedor júnior na minha empresa atual através das fileiras para desenvolvedor sênior e, em seguida, líder de equipe e agora arquiteto. Levou vários anos. Sempre que recebi uma promoção, era porque eu já estava fazendo os aspectos do trabalho, e minha gerência estava apenas reconhecendo isso e me dando o título apropriado. Então, 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 nesses papéis têm. Depois de alguns meses ou de um ano, você descobrirá que basicamente está fazendo o trabalho que está mirando, e pode apontar isso para o seu gerenciamento, se eles não o notarem.

    
por 28.10.2011 / 19:59
fonte
9

Eu não tentarei fornecer uma resposta completa, já que Thomas Owens já listou alguns conselhos realmente bons (+1 para isso).

Só queria adicionar algumas dicas / sugestões:

  1. Não espere que alguém o faça liderar; apenas comece a fazer isso. Não quero dizer que vai contra seu atual chefe, mas sim tomar a iniciativa de ajudá-lo. Se o seu chefe é parecido com o meu, ele geralmente está sobrecarregado com muitas tarefas / reuniões em seu prato. Se ele perceber que você está dando instruções onde ele pode não ter tempo suficiente para acompanhar, provavelmente ficará mais do que feliz em delegar alguma responsabilidade de gerenciamento a você. Com o tempo, se você fizer isso corretamente, seu chefe delegará mais e mais para você (menos para ele se preocupar) e ele provavelmente o apoiará para assumir mais responsabilidade até um ponto em que você é o líder oficial.
  2. Tenha em mente que a formação de equipes e a liderança são mais voltadas para a sociologia do que para a tecnologia (de um dos livros populares de metodologia de software, talvez Brooks). Como meta, seu objetivo é entender as pessoas e como elas se comportam, o que é muito diferente do que entender como os computadores funcionam. Sem essa percepção, os bons engenheiros fazem alguns dos piores líderes de equipe porque não fazem essa mudança mental e percebem que você não pode controlar as pessoas da mesma maneira que controla as máquinas. Na verdade, a única abordagem que parece funcionar não é controlar as pessoas, mas orientá-las. Leia, leia e continue lendo livros / artigos / blogs sobre liderança. Um livro que eu poderia recomendar é o Gerenciamento 3.0

... e agora vou revisar os links que Thomas postou

    
por 28.10.2011 / 19:34
fonte
4

Se você quer se mudar para uma função de gerenciamento de projetos, então não faz mal nenhum ter aulas noturnas e trabalhar para o seu MBA.

Outra opção seria examinar a certificação do Conjunto de conhecimentos em gerenciamento de projetos do PMBOK . Muitos lugares não o considerarão, 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 requer muito estudo para passá-lo. Eu também acho que eles têm requisitos sobre gerenciamento de projetos reais e experiência de liderança apenas para serem elegíveis para fazer o teste.

    
por 28.10.2011 / 16:12
fonte
4

Eu pessoalmente não tenho desejo de deixar minha posição atual no momento, mas dependendo de onde estamos no ciclo de lançamento eu gasto de 10% a quase 100% do meu tempo em tarefas diferentes de codificação. Se você é paciente e atento, há muitas oportunidades que você pode fazer para fazer algo diferente de "apenas codificar" em sua posição atual. Por exemplo:

  • Voluntário para orientar um novo membro da equipe.
  • Torne-se um especialista em novas ferramentas, processos ou tecnologias que a empresa está considerando adotar.
  • Voluntário para comissões interfuncionais.
  • Fale sobre as ideias que você tem.
  • Convide você mesmo para criar reuniões para os próximos recursos.

Deixe seu gerente saber que você está interessado nesses tipos de oportunidades e, supondo que esteja se saindo bem com suas responsabilidades atuais, ele direcionará as oportunidades para você quando elas surgirem. Iniciativa conta muito. A maioria dos gerentes, pelo menos, permite que você observe, mesmo que não esteja qualificado no momento.

    
por 28.10.2011 / 16:35
fonte
2

Isso me parece 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 requer experiência em codificação.

Eu procuraria posições em que você pudesse crescer em responsabilidades que lhe darão o gerenciamento / líder que você deseja. Subindo a escada, pode parecer diferente com base em como as coisas funcionam onde você está trabalhando. Mas, mesmo com pequenas quantidades de experiência de codificação, as posições de PM estão disponíveis se você tiver alguma experiência de liderança e gerenciamento.

    
por 28.10.2011 / 15:52
fonte