Dicas / truques para gerenciar uma nova equipe com o novo código [fechado]

9

Como você se comporta em uma nova equipe em que você é o desenvolvedor mais sênior e a maioria dos outros membros da equipe são juniores a você há vários anos. A tarefa à frente da equipe é algo que ninguém mais, incluindo você, realizou em sua carreira antes.

A gerência insiste em aumentar a produtividade de toda a equipe e, como desenvolvedor sênior, você é responsável.

Alguma dica para sair trunfos em uma situação como esta? Claramente, toda a equipe precisa de tempo para aprender e não vamos esquecer as novidades da equipe. No entanto, os prazos também estão à frente ...

Fanatic23
fonte
Deve estar em pm.stackexchange.com
JBRWilkinson
5
@JBRWilkinson Eu discordo. Trata-se de ser um líder técnico de desenvolvedores juniores com um prazo apertado. Concordo que se trata de como gerenciar um projeto de desenvolvedores juniores, no entanto, ser um líder técnico é diferente de ser um PM.
Maple_shaft

Respostas:

13

Não permita que um prazo apertado ou a novidade do projeto interfira nas boas práticas de engenharia. Configure um repositório de software, concorde com um estilo de codificação, crie um conjunto de testes etc. A novidade da tarefa não deve ser tão grande assim, desde que você tenha pessoas de qualidade e que estejam dispostas a trabalhe duro e aprenda a tarefa pela frente.

Ou, de outra forma: você foi encarregado porque a gerência acredita que sua formação e experiência lhe deram as ferramentas necessárias para criar software de qualidade. De repente, não esqueça suas habilidades apenas porque esta tarefa parece assustadora agora.

chrisaycock
fonte
Certifique-se de que todos na equipe tenham a oportunidade de estimar todas as tarefas que serão designadas, para que tenham alguma adesão aos prazos. Como sua equipe ainda está aprendendo as regras, não comprometa ninguém por mais de cinco horas por dia, quando você transformar as estimativas em um tempo decorrido. E se os prazos não puderem ser cumpridos, verifique se a Gerência o conhece o mais rápido possível.
Dawood ibn Kareem
11
@ David - Como você trabalhou 5 horas (na verdade, não é um número ruim para usar, mas como sabemos)? Apenas admita que estimar um projeto desse tipo seja uma porcaria e conte à gerência.
mattnz
3
Eu acho que a maioria das pessoas é produtiva por cerca de 6 a 6,5 ​​horas por dia. Alguns conseguem mais do que isso, mas acho que essa é uma boa média. Mas como a equipe é nova, pelo menos uma hora por dia será gasto aprendendo. E eu acredito em estimativa - embora nem todo mundo seja bom nisso, deve ser melhor do que apenas entrar e programar sem saber quanto tempo uma tarefa levará.
Dawood ibn Kareem
Isso ajuda a obter apoio se você solicitar aos membros da equipe que desenvolvam suas estimativas antes de ver o tempo planejado e eles não excederem significativamente o plano. Tê-los estimado antes de ver outras estimativas também evitará influenciar a estimativa.
BillThor
@ BillThor: Certamente você faz o cara fazer o trabalho para estimar e usa os números dele como ponto de partida. Acabei de estimar um emprego e me disseram "Achamos que seria 1/3 disso". Por que eles se incomodaram em me perguntar se sabiam quanto tempo levaria?
mattnz
7

Primeiramente, comece a usar um sistema de controle de código-fonte a partir da primeira linha de código. Adquira o hábito de verificar o código cedo e frequentemente.

Segundo, decida sobre uma estratégia de teste . É claro que isso deve significar testes de unidade, mas você também deve considerar como automatizar os testes de aceitação.

Terceiro, estabeleça um servidor de integração contínua para que seu código seja construído regularmente e testado regularmente.

Depois disso, como equipe, estabeleça alguns padrões simples de codificação . Você deseja que seu código seja facilmente legível por todos. Realmente não importa quais são os padrões. Recuar com tabulações, recuar com espaços, chaves na mesma linha, qualquer que seja. Não importa o que sejam, apenas que todos os apliquem de forma consistente.

Como a equipe é formada principalmente por desenvolvedores juniores, planeje revisar o código frequentemente para garantir que eles não estejam adicionando muita dívida técnica ao seu sistema.

Por fim, considere usar o SCRUM . Se o fizer, contrate um treinador ou faça algum treinamento. Como todos vocês estão fazendo algo que nunca fizeram antes, é simplesmente impossível estabelecer prazos realistas. Com o SCRUM, seu gerenciamento terá visibilidade do que você faz diariamente, para que eles possam ver qual progresso está (ou não está) sendo feito. E, como seus prazos aparentemente foram dados a você, a SCRUM pelo menos garante que, se você não puder cumprir o prazo, pelo menos você estará entregando histórias completas em uma base incremental, o que sem dúvida é melhor do que chegar ao fim com um gigante sistema que não funciona.

Bryan Oakley
fonte
2
+1 para controle de versão e revisão de código com antecedência e frequência.
JMQ
2
Sou da opinião de que o controle de origem é um processo tão necessário que deve ser feito independentemente da composição da equipe, independentemente de qualquer coisa.
Maple_shaft
6

Além da resposta de @chrisaycock ... Não subestime o tempo que você precisará alocar para orientação / treinamento etc. Como líder, você precisará aprender a deixar de lado os detalhes e confiar em sua equipe. Seu trabalho é tornar-se o facilitador, remover os bloqueios de estradas e executar interferências quando o gerenciamento cutuca a cabeça. Em uma equipe "normal", com cerca de 7 ou 8 anos, o líder não programa mais. Na sua situação, isso cai para 3 ou 4 (Talvez até menos), você não é um recurso de programação para o projeto.

mattnz
fonte
+1 na alocação de tempo para orientação e treinamento. Um líder tecnológico eficaz torna os desenvolvedores juniores produtivos.
Maple_shaft
"Você não é um recurso de programação para o projeto". Eu me pergunto se a gerência dele se sente da mesma maneira, heh. Espero que você não seja o programador "herói" do projeto.
JMQ
Fiquei com a impressão de que o OP era simplesmente o desenvolvedor mais sênior e não tinha título ou deveres especiais (ou seja, ele não é um "líder técnico" ou "arquiteto"). Nesse caso, ele certamente é um recurso de desenvolvimento e provavelmente é o mais produtivo.
TMN
@ TMN: Eu estava refletindo a realidade do que acontece em uma equipe com um cara qualificado / experiente e todos os outros significativamente menos qualificados. Sem dúvida, o cara experiente, se codificar, será o mais produtivo e deve codificar. A EQUIPE será mais produtiva se não o fizer. Em uma organização não esclarecida, os gerentes medem o desempenho individual, para que o cara de ponta pareça mal fazendo o que é melhor - fazendo a EQUIPE funcionar e ganhando pouca recompensa por isso. É melhor deixar os juniores secos e parecer ótimo.
mattnz
1

Concentre-se na comunicação em duas áreas.

Não é fácil fazer isso, e essa é uma das razões pelas quais esse trabalho é difícil. Se cumprir o prazo significa recursos de corte, repasse isso. A única coisa que você está tentando evitar em tudo isso é o código rápido para estabelecer um prazo. Esse é o começo do fim de uma base de código que não vai durar bem e o começo da dívida técnica que engasga.

2) Comunicação entre equipes. Estabeleça práticas formais como Bryan e outros recomendam. Certifique-se de reunir-se regularmente em equipe, por exemplo, uma vez por semana , além dos exercícios diários. Ganhe respeito e confiança ao ouvir , sua ferramenta mais importante. Certifique-se de se concentrar em ajudar. Evite críticas negativas a todo custo. Quando necessário, use críticas e incentivos positivos, por exemplo, "isso é ótimo, uma vez que você pode considerar que X é" acabado ", não é o que precisamos, você precisa fazer X em vez disso"

viciado
fonte
0

O que fiz foi identificar os capazes e dividir e conquistar. Pego os 2 ou 3 melhores e os faço capitães. Os outros são então divididos igualmente em equipes, seguindo os capitães de suas próprias equipes.

Dou aos capitães pedaços ou módulos para fazer um programa.

Os capitães dão aos novatos tarefas de programação ou pesquisa menores o tempo todo, explicando a si mesmos o que estão fazendo, para que a orientação aconteça.

Tento organizar a sala para que todos estejam no mesmo espaço aberto, mas cada equipe tenha seu próprio círculo de computadores. Eu gosto de estar longe de todos, para que as coisas se movam rapidamente.

Isso funciona bem para cerca de 10 a 20 programadores até agora. Os grupos menores estão melhor em um grupo e eu ainda não trabalhei com nada maior.

Jason Sebring
fonte
Divide & Conquer tem suas armadilhas. Eu já vi isso acabar como toda subequipe reinventando a roda (mal) para problemas semelhantes que toda a equipe enfrenta.
NWS
Sim, se você estiver em prédios separados, especialmente, então eu tento manter todos em um espaço aberto e caminhar regularmente. O que faço é criar assinaturas principais da API e definir as equipes para construí-las para que tudo se conecte.
Jason Sebring