Quais são as principais coisas que um programador espera do programador sênior?

41

Recentemente, li os 5 tipos de chefes a seguir e como lidar com eles , que descreve os trajes do pior chefe. Eu apenas comecei a liderar uma pequena equipe de desenvolvedores de software.

Gostaria de saber quais são as principais coisas que um programador espera do programador sênior ou quais são as coisas que devemos evitar ao gerenciar uma equipe.

Além disso, gostaria de saber como manter os programadores satisfeitos e criar um ambiente produtivo e completo para minha equipe.

Avatar
fonte
19
joelonsoftware.com Leia o máximo do blog dele quanto tiver tempo.
usar o seguinte código
@ P.Brian.Mackey link impressionante!
Avatar
2
Que o programador sênior tem um avatar Miyazaki relacionadas talvez não seja uma obrigação, mas certamente uma grande vantagem :-)
leonbloy
1
Interessante ... Meu chefe marcou um 4 de 5 no teste ... Eu deveria alertá-lo das boas novas;)
Aeo

Respostas:

79

Coisas que parecem funcionar bem para mim:

  • Ofereça um trabalho significativo e incentive a propriedade - mesmo quando surgir um problema, não o resolva, converse com ele e forneça idéias à pessoa para que ela possa resolvê-lo.
    • editar - adição - isso também deveria incluir + ficar fora de detalhes. Suponha que seu pessoal saiba o suficiente para realizar a tarefa sem microgerenciamento ou o requisito de fazer check-in constantemente. Crie um conjunto de diretrizes para quando eles devem fazer check-in - o que só deve acontecer quando o trabalho estiver concluído ou se estiver realmente confuso que haja uma intervenção séria. necessário. Se possível, fique longe de precisar estar sempre informado sobre problemas de suporte entre equipes.
  • Seja honesto - isso tem vários corolários:
    • Seja honesto consigo mesmo - "Não terei tempo até terça-feira", "Eu nunca fiz isso, eis o meu melhor palpite", etc.
    • Seja honesto com a equipe e onde eles se encaixam na empresa - se você souber algo sobre o negócio, diga a eles se puder e diga a eles o que você sabe como fatos diretos.
    • Seja honesto ao dar feedback - não medite palavras ou pedal suave se você tiver um feedback negativo. Isso é diferente de "brutalmente honesto" - você ainda pode ter compaixão, mas se algo estiver errado, diga.
    • Seja honesto quando souber que o trabalho tem mais a ver com redtape do que com algo significativo. Na vida de todos, algum trabalho sem sentido cairá. Não finja que é significativo. Chame como é, para que todos possam se concentrar em superar isso e obter algo útil.
  • Escute . Pelo menos 50% do seu trabalho está ouvindo, talvez mais. De repente, você se tornou responsável não apenas pelo trabalho técnico, mas pelas pessoas que o fazem. Você precisa ouvir para aprender não apenas sobre os problemas que a equipe está enfrentando, mas também como seu pessoal aborda o problema e quais são as deficiências da equipe como um grupo.
    • Um importante corolário - ouvir diretamente pode levar ao ponto 1 - oferecendo um trabalho significativo - os engenheiros são ótimos em encontrar maneiras de facilitar o desenvolvimento. Você não pode aprovar tudo, mas, quando a idéia é boa, dê a tarefa ao engenheiro, e eles essencialmente fizeram você trabalhar para você - eles criaram o trabalho significativo e disseram exatamente o que é.
  • Diga "obrigado" . Eu sei, parece óbvio. Embora todos gostemos de dinheiro, melhores ferramentas, um ambiente de trabalho mais agradável e promoções - a maneira de chegar a essas coisas é através de uma série de bons esforços, cada um dos quais merece um "obrigado". "Obrigado" é totalmente gratuito, você nunca ficará sem eles, e saber que seu gerente viu e apreciou seu trabalho duro é definitivamente motivador.
  • Gaste um tempo com o quadro geral , mesmo que isso signifique sacrificar parte do trabalho diário que o levou a ocupar o cargo. Provavelmente, é verdade que você pode codificar melhor do que algumas pessoas, mas se você não gastar um tempo decente no cenário geral - a equipe, a direção geral do projeto, o estado da sua base de código, a eficiência de seus processos , o ambiente da sua equipe - então você não fará o trabalho que eles precisam.
  • Aprenda a ser um amortecedor para sua equipe . As equipes de engenharia funcionam melhor quando têm tempo para fazer ... engenharia. Burocracia corporativa não é engenharia. Tudo o que você pode fazer para realizar as irritantes reuniões de 1 por ano / mês / semana com pessoas externas é melhor. NOTA: Isso não significa reuniões ágeis com as partes interessadas - isso é engenharia, sua equipe precisa estar lá para isso. Refiro-me à reunião com instalações que desejam colocar uma maquinaria alta e estridente perto de sua equipe, ou o grupo de processos que deseja que sua equipe preencha os papéis em triplicado antes que qualquer código seja verificado. Você é o sistema de absorção de falhas.
  • Suponha que as pessoas problemáticas não sejam más , são pessoas que querem fazer o bem, mas ainda não descobriram como. Você não será capaz de consertar todo mundo, mas muitas vezes os primeiros erros completos são tanto um fator de falha de comunicação quanto incompetência ou malícia deliberada. Se você começa com a suposição de que as pessoas não são más, você tem uma esperança decente de evitar vários arquétipos de chefes maus da lista acima.

E provavelmente o mais importante ... respeito . Se você honestamente não pode respeitar os membros de sua equipe, precisa trabalhar para mudar isso (seja ensinando as pessoas ou mudando seu quadro de funcionários). Dê respeito ao primeiro dia e você receberá de volta, trate as pessoas com falta de respeito e nunca receberá respeito em troca.

Em conjunto, se você fizer a maioria dessas coisas, na maioria das vezes, sua equipe lhe dará o benefício da dúvida quando você mostrar que é humano e estragar tudo sozinho. :) Todo chefe tem suas próprias desvantagens, e trata-se de elaborar um relacionamento com sua equipe, onde eles possam ajudá-lo a compensar suas fraquezas, assim como ajudá-los com as deles.

bethlakshmi
fonte
1
ótima resposta, eu acrescentaria a isso a liberdade . Nada pior do que ser microgerenciado ou ter que pedir permissão para cada pequeno detalhe.
Agradl '
3
Verdadeiramente impressionante .. Desejo Stackexchange poderia fornecer suporte para seguir usuários (a curta nota para Joel e Jeff) :)
PrinceCoder
2
WAAOW !! ... que foi uma das melhores respostas que eu já vi @Stackexchange
explorest
uau, e uau. e porque eu tenho que digitar mais alguns caracteres para enviar este comentário, uau.
Amir Afghani
2
@PrinceCoder, todo usuário tem seu próprio feed. Você pode acompanhar isso em alguns leitores de RSS.
svick
12

Bem, uma das maiores coisas a aprender é que muitas vezes você não será capaz de mantê-los felizes, pois simplesmente não terá a capacidade de dar o que eles querem.

Os melhores gerentes para os quais trabalhei foram os mais honestos, que defenderão sua equipe de toda a porcaria que a alta gerência tenta jogar contra eles e, acima de tudo, OUVIR sua equipe.

ozz
fonte
2
Há uma grande diferença entre um gerente e um programador sênior. Ainda não encontrei um gerente como você descreve. Por favor, diga-me onde posso encontrá-los.;
fretje
É justo o que diz o título, mas a questão continua a falar sobre chefes. Eu tive muitos bons gerentes / líderes em desenvolvimento na minha carreira.
ozz
+1 @ James alguém editou o título que parece. Por perguntas destaca-se sobre os líderes / gerentes. A palavra "chefe" parece feroz, então escolho a palavra programador sênior.
Avatar
6

Acredito firmemente que uma das partes mais críticas de ser sênior ou líder é a disponibilidade para os juniores. Os idosos e os líderes geralmente têm tarefas que somente eles têm o direito de realizar (não damos aos juniores direitos de gravação para encenação e prod, por exemplo). Além disso, uma parte significativa do seu trabalho é orientar as pessoas mais novas, o que significa responder perguntas e não ignorá-las. Quanto mais velho você for, maior será a probabilidade de ser interrompido por outras pessoas que precisam de algo de você. Você precisa desistir do sinal "não perturbe" e aprender a trabalhar com interrupções.

Ouvir é importante.

Por favor e obrigado você é importante e não custa nada.

Não espere mais do que você está disposto a dar. Se você quer que eu trabalhe até as 3 da manhã, é melhor você estar lá ao meu lado também. Nada é mais desanimador do que trabalhar para alguém que sai pontualmente todos os dias imediatamente depois de lhe dar uma tarefa que precisa ser executada às sete da manhã.

Ser justo. Não jogue favoritos (especialmente não jogue favoritos, dando a sua namorada ou namorado as melhores coisas). Trate todos os funcionários com respeito (mesmo as pessoas que você não gosta).

Seja decisivo. Não deixe as decisões de lado para que ninguém possa progredir ou piorá-las a cada cinco minutos.

Defenda seu povo. Você não vencerá todos eles, mas as pessoas enfrentarão alguém que os apoiará na cadeia.

Esteja disposto a ser o vilão quando necessário. Uma maçã podre pode destruir uma equipe de desenvolvimento, não se apegue a essa pessoa porque você não deseja confrontar o mau comportamento dela (isso se aplica mais aos líderes e supervisores oficiais). Quando você tiver más notícias, conte à equipe, não guarde em segredo (elas descobrirão eventualmente e depois ficarão furiosas com as más notícias e a manutenção secreta). Você não está lá para ser popular, mas para fazer o trabalho. Qualquer pessoa em uma posição de gerência ou quase-gerência deve estar disposta a ser impopular.

Aprenda a vender idéias para os superiores e ensine essas habilidades aos seus desenvolvedores.

Entenda a importância do domínio comercial e torne-se especialista nele, bem como na programação.

HLGEM
fonte
3

As palavras-chave aqui são confiança e responsabilidade.

Você só precisa confiar que os membros de sua equipe são competentes e focados em concluir suas tarefas. Ao não se intrometer demais, você está essencialmente deixando que eles "possuam" a responsabilidade pelo trabalho deles.

IMHO, isso por si só faz maravilhas na criação de uma atmosfera saudável.

Jas
fonte
2
Desde que sejam decentemente competentes e motivados. Se a equipe é herdada como está, infelizmente isso não é um dado. Se você selecionou os membros, é claro que é uma história diferente.
Péter Török
1
Bem, na minha opinião, mesmo aqueles que não são muito competentes, quando recebem uma responsabilidade total, também conhecida como "propriedade" de uma parte do projeto, farão tudo o que for necessário para concluir sua peça. Eu nem me importo se uma parte do código é coletada fazendo perguntas em fóruns e quadros, desde que o trabalho seja feito.
Jas
infelizmente, encontrei contra-exemplos :-( No pior caso que já vi, um desenvolvedor não produziu absolutamente nada quando recebeu liberdade e total responsabilidade por cerca de dois meses - como se viu, ele nem estava entrando no local de trabalho. algumas pessoas simplesmente não estão puxando seu peso em uma equipe, e se você deixá-los correr livremente, sem um exame minucioso, você só piorar as coisas Se você não se livrar dessas pessoas no tempo, eles podem danificar toda a equipe..
Péter Török
@ Péter Török - claro, todo mundo conhece algumas dessas pessoas em todas as empresas (na verdade, lendo isso, achei que você conhecia o mesmo cara que eu :). Mas, pela minha experiência, a maioria das pessoas se concentra e tenta dar o melhor de si.
21411 Jas
Eu concordo, a maioria das pessoas tenta fazer o seu melhor. (Ou devo dizer todos tenta fazer seu / sua melhor - apenas para alguns, "melhor" não atingiu o limiar de noticeability :-) Deve ainda estar alerta para perceber as exceções no tempo? - porque não são exceções. Assim como no código de produção, devemos tratar os casos de erro corretamente, mesmo que sejam raros em circunstâncias normais.
Péter Török
3

Bem, na IMO, espero que o desenvolvedor sênior / líder / o que quer que seja esteja do lado da equipe de desenvolvimento contra coisas como prazos idiotas, nenhum recurso além do esperado para construir Roma, horas extras obrigatórias etc. etc., tudo o que reduz a produtividade e deixa as pessoas infelizes.

A principal coisa que a OMI deve evitar é ser um "sim-homem" para a alta gerência e sempre concordar, não importa o que eles digam (em outras palavras)

Wayne Molina
fonte
+1: Certo. E se você se reportar a um 'Sim-Homem', saia o mais rápido possível.
Jim G.
1
Infelizmente, existem muitos ambientes em que o programador sênior / líder / gerente não passa de um Sim-Homem (ou como eu prefiro chamá-los de "Smithers"), e a pior parte é que na maioria das vezes você não o conhece. até depois de aceitar o trabalho.
Wayne Molina
3

Habilidades das pessoas. Às vezes, as pessoas recebem o título "Sênior" e esquecem que não são oniscientes. Eles acham que a promoção é um comentário sobre suas habilidades técnicas supremas e sua genialidade latente. Na realidade, eles são gerentes de nível super baixo agora. Eles devem entender como e quem motivar, quem deixar, como comprometer e quando escutar.

Propriedade. Os piores programadores seniores não se apropriam do que eram "seniores". Eles se voltam para as táticas de trapacear no trabalho e culpar os jogos que levaram à sua promoção (mais do que provável enquanto dançavam no túmulo da pessoa que jogavam sob o ônibus). Agora, eles precisam entender o que há de mais importante no sling e que é sua responsabilidade possuir o design, o plano e uma grande parte do trabalho.

Experiência. Espero que os desenvolvedores seniores tenham visto tudo duas vezes. Eles devem entender o domínio e a tecnologia. Eles devem atacar agressivamente os riscos e ser capazes de detectar tempo desperdiçando arenques vermelhos.

nsfyn55
fonte
2

Consistência é uma das coisas mais importantes. Se os desenvolvedores puderem prever como você agirá, eles ficarão mais felizes. Mesmo se você for constantemente uma ferramenta total, é melhor que algumas vezes seja legal e outras seja uma ferramenta. Dito isto, não seja uma ferramenta.

Erin
fonte
2

Conhecimento e comunicação. Conhecer a fonte e muito, muito mais importante, ser capaz de explicá-la a qualquer pessoa, de uma maneira que ela entenda e retenha.

Covar
fonte