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

42

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?

mosquito
fonte
Que tipo de educação você tem? Há quanto tempo você está na sua posição atual?
Thomas Owens
Sou bacharel em Ciência da Computação. Estou na minha posição atual há cerca de um ano.
1
@slandau Eu explicitamente explicito que você não está procurando um cargo de gerente de projetos. enquanto isso pode aparecer como a direção óbvia; sua descrição e seus desejos diferem de um cargo de gerente geral e não acredito que um cargo de gerente geral será o que você procura.
Aaron McIver
1
@AaronMcIver Depende de onde você trabalha. Alguns PMs são comerciais, outros são de natureza mais técnica. Em alguns lugares, "gerente de engenharia" pode ser um título mais comum ou, em outros, pode ser simplesmente "engenheiro de software".
Thomas Owens
2
Bem, em primeiro lugar, dar-se a sua alma ... :-)
Paul Tomblin

Respostas:

41

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.

Thomas Owens
fonte
1
Sim, mas como você realmente muda do engenheiro de software sênior para o gerente? Quero dizer, supondo que sinto que conheço todas as coisas que você listou acima, o que faço agora para provar que posso fazê-lo, considerando que não tenho uma experiência oficial em função de gerente e apenas a sensação de que realmente conheço todas essas coisas? Como alguém dá esse passo?
trusktr
19

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 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.

RationalGeek
fonte
2
Fui demitido por fazer exatamente o que você disse em uma empresa (e o gerente que me demitiu mais tarde também deixou a empresa). Não foi um bom ajuste. Parecia que era sempre uma luta para chegar às primeiras posições da empresa, muito competitiva e egocêntrica. É muito melhor estar em uma empresa em que quando as pessoas tomam a iniciativa de tentar realizar coisas maiores do que antes, recebem apoio, incentivo e orientação daqueles que já são mais altos.
trusktr
9

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:

  1. Não espere que alguém o faça liderar; apenas comece a fazê-lo. Não quero dizer que vá contra o seu chefe atual, mas tome a iniciativa de ajudá-lo. Se seu chefe é parecido com o meu, ele geralmente está sobrecarregado com muitas tarefas / reuniões em seu prato. Se ele perceber que você está fornecendo orientação onde ele pode não ter tempo suficiente para acompanhar, ele provavelmente ficará mais do que feliz em delegar alguma responsabilidade administrativa a você. Com o tempo, se você fizer isso da maneira certa, seu chefe delegará cada vez mais a você (menos para ele se preocupar) e provavelmente o apoiará a assumir mais responsabilidades até um ponto em que você seja o líder oficial.
  2. Lembre-se de que a formação de equipes e a liderança são mais sobre sociologia do que tecnologia (de um dos livros populares de metodologia de software, talvez Brooks). Como líder, seu objetivo é entender as pessoas e como elas se comportam, o que é muito diferente de entender como os computadores funcionam. Sem essa percepção, os bons engenheiros são os 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. De fato, 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 Management 3.0

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

DXM
fonte
Esse é um péssimo conselho, sugerindo que alguém faz algo que seu chefe não pediu que eles façam; a maioria dos chefes desaprova as pessoas que fazem coisas que não foram convidadas a fazer.
Professor de programação
Respondi a essa pergunta há 5 anos, quando era desenvolvedor. Agora, voltando ao assunto, eu o leio da perspectiva de um gerente. @ Bonner - você está certo. existem diferentes gerentes com estilos diferentes por aí. Alguns vão desaprová-lo se você fizer algo que não lhe disseram para fazer. Nesse caso, meu conselho para você é fugir desse gerente. Desde que me tornei líder, tudo que fiz foi ensinar meus colegas a pensar de forma independente e me tornar substituível. Peço a cada um que equilibre o foco estreito de suas próprias tarefas, mas também olhe para frente e veja uma imagem mais ampla.
DXM
5

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:

  • Ofereça-se 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 comitês multifuncionais.
  • Fale sobre as idéias que você tem.
  • Convide-se para planejar reuniões para os próximos recursos.

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.

Karl Bielefeldt
fonte
4

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.

maple_shaft
fonte
3
Talvez seja só eu, mas eu tenderia a ter um diploma de gerenciamento de engenharia de software ou um diploma de gerenciamento de engenharia, especialmente se você quisesse entrar em gerenciamento técnico ou liderança. Eu vi engenheiros obterem um MBA e serem empurrados para o lado comercial de um programa de software, não gerenciando nem liderando os engenheiros.
Thomas Owens
@ThomasOwens, é uma boa nota. Sempre hesitei em fazer um MBA, pois não tinha certeza se isso se traduziria na maioria dos lugares técnicos ou não.
Slandau 28/10/11
O exame PMP não é tão difícil.
Idiotas 28/10
@ Moron Estou seguindo o que algumas PM me disseram sobre a experiência deles, nunca aceitei. Mas agora que penso nisso, essas duas pessoas não eram tão brilhantes.
maple_shaft
2

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.

D ..
fonte
Isso foi afirmado na pergunta original: "... que tipo de coisas ou oportunidades devo procurar que me ajudem a progredir minha carreira para uma função mais gerencial, em vez de uma função de codificação ...". @slandau está procurando conselhos sobre como fazer isso.
Thomas Owens
1
Sim eu concordo. Você tem alguma dica de como eu começaria a trabalhar nesse sentido?
slandau
Sim, acidentalmente apertei o botão de postar antes de pretender.
D ..
@D .., eu tenho alguma experiência em liderança, mas tudo foi em projetos paralelos e projetos que eu fiz na faculdade ... não tenho certeza se isso é suficiente. É isso?
Slandau 28/10
Provavelmente não, você quer se inclinar para qualquer experiência profissional que lhe dê isso. Você pode achar mais fácil trabalhar em uma função de desenvolvedor sênior em alguns lugares. Eu ficaria de olho nas posições abertas, fazendo o que você quer, observando os requisitos e aproveitando qualquer oportunidade possível para obter os mais comuns. A maioria dos lugares em que trabalhei tem sido pequena, e me permitiu avançar ordenadamente para o próximo nível sem muito esforço. Olhe para o seu emprego atual ... você pode subir lá? Talvez você tenha um caminho definido a partir de onde está agora, do qual pode tirar proveito.
D ..