Conselho para programador solo cuja equipe se expandirá em um futuro próximo [fechado]

25

Há 4 anos, sou desenvolvedor solo de uma pequena empresa. Temos um punhado de produtos bem estabelecidos em um setor de nicho. Em breve, contrataremos 1-2 desenvolvedores, e isso provavelmente mudará a maneira como as coisas funcionam por aqui.

Embora não tenha um título "real", estarei "encarregado" dessa equipe. O que eu quero fazer é estabelecer um departamento de programação muito organizado e produtivo para a minha empresa. Consegui esse trabalho solo logo após a faculdade, por isso, enquanto me tornei proficiente como programador nesse setor, não tenho muita experiência em programação de equipes. Eu sinto que começar com o pé direito será a chave.

No momento, sou apenas eu, alguns computadores e um servidor SVN. Estou procurando qualquer orientação geral sobre como formar uma equipe desde o início.

bufferz
fonte
Uma coisa que falta nas boas respostas é: instruções sobre como os novos desenvolvedores irão configurar seu novo ambiente de desenvolvimento. Por exemplo, obtenha este SDK, instale esse IDE, instale o FooTest, configure o cliente YourSQL, obtenha esses scripts de compilação e coloque-os aqui, configure o NPM ou pip ou Maven, ou Webpack ou o que for ... Você deve criar um primeiro rascunho e depois o primeiro contratar testá-lo e editar.
user949300

Respostas:

14

Organize sua casa e garanta que tudo esteja configurado para um esforço colaborativo.

  • Controle de versão - você mencionou que já possui um servidor SVN, o que é ótimo. Certifique-se de ter estabelecido o repositório e organizado os projetos de maneira padronizada.
  • Construções automatizadas
  • Software de rastreamento de problemas / bugs
  • Testes de unidade / integração
  • Servidor de Integração Contínua

A configuração e integração dos itens a seguir em seu processo de desenvolvimento facilita a integração de pessoas, o acompanhamento do que está sendo feito e a prevenção de que as coisas fiquem "bagunçadas".

Mads Hansen
fonte
Embora todas as respostas para essa pergunta sejam ótimas, essa é a mais próxima do que estou procurando. Obrigado Mads.
bufferz
Eu tenho um que eu sugiro adicionar: Revisão de código. Isso ajudará as pessoas novas a aprender o sistema, ajudará você a entender as novas contribuições e poderá tornar todos um programador melhor. Configure o sistema com a ferramenta certa e com a mentalidade de que não é contraditório, mas uma ferramenta para aprendizado, aprimoramento e esclarecimento.
precisa saber é o seguinte
Também um wiki. E acostume-se a ciclos de feedback muito curtos. As confirmações acontecerão a cada cinco minutos, você obterá conflitos de mesclagem. Você precisará coordenar refatorações maiores. E não tenha medo de desistir quando os outros ganham velocidade, mas tem análises e programação de pares de ddo para evitar divergências. Ah, e defina metas claras.
Alexander Torstling
Ao pensar nisso, acho melhor ter alguém mais experiente mostrando o caminho. A codificação solo e a equipe são muito diferentes, e os métodos que funcionam podem ser muito contra-intuitivos para um solioísta.
Alexander Torstling
11

contrate alguém muito mais competente que você

... e com experiência em grandes projetos de software corporativo.

Eles ajudarão você a industrializar seus processos e você provavelmente aprenderá muito com eles.

Você ensinará a eles seu nicho de mercado.

Se você não conseguir encontrar essa pessoa, sugiro que você faça treinamentos relacionados ao gerenciamento de equipes. Eu sugiro que você tenha uma certificação Scrum como iniciante.

Comunidade
fonte
6

Pode ser óbvio, mas certifique-se de que você realmente gosta de trabalhar com os novos contratados. Tente arranjar algumas cervejas quando as duas começarem a tentar fazer com que a equipe se sinta como uma.

Você também precisará conscientizá-los de todos os padrões de codificação que você seguir e de quaisquer técnicas comuns usadas, comuns como repetidas em sua base de códigos.

Eventualmente, todos vocês devem ser capazes de responder ao processo e melhorar ... supondo que sigam outros conselhos e contratem alguém com as habilidades necessárias para complementar o seu.

Kevin D
fonte
4

Na falta de um título real, estarei "no comando" desta equipe.

Não cometa o erro de deixar seu desejo / ambição ficar "no comando" atrapalhar. Se sua empresa contrata desenvolvedores com mais experiência que você, os novos contratados podem ser muito mais adequados para a função de líder de equipe do que você.

Seu valor real para a equipe e a empresa é o seu conhecimento íntimo dos produtos, conforme implementados atualmente.

Stephen C
fonte
4

Isso é muito semelhante à situação em que estive há alguns meses atrás. O melhor conselho que posso dar é abandonar a arrogância típica de ser um programador e contratar o melhor do melhor que sua empresa pode pagar.

Fiquei "no comando" por um tempo, mas um membro da equipe com mais experiência se adiantou e, de bom grado, abandonei meus deveres administrativos para poder fazer o que sou melhor, escrevendo código de qualidade. Eu ainda sou um mentor da equipe como você será.

Se você fizer o que é melhor para a empresa nessa situação, será recompensado.

Scott
fonte
4

Haverá discussões técnicas acaloradas: novos programadores têm um viés, eles experimentaram algumas maneiras de fazer as coisas e, quando confrontados com uma nova maneira que eles não entendem, eles primeiro pensam que não faz sentido e precisa mudar . Os programadores que trabalham sozinhos há anos provavelmente são defensivos em relação ao seu trabalho, e também o trabalho deles será um tanto idiossincrático, devido ao número de problemas que resolveram sem discutir coisas com outras pessoas.

Esteja ciente desses preconceitos, dê boas-vindas às novas informações, não seja muito defensivo e não tome decisões precipitadas para mudar tudo também.

Há muitos aspectos positivos no trabalho em equipe, especialmente na revisão do código por um colega. Insista nisso para todos os membros da equipe, incluindo você desde o início.

RemcoGerlich
fonte
2

Como desenvolvedor sênior, você precisará de um gerente e começar a examinar as políticas de RH da sua empresa. (especialmente itens como direito a férias, procedimentos por licença médica e processo disciplinar, embora eu espero que você nunca precise disso)

Agora, dependendo das novas habilidades e habilidades dos contratados, comece a delegar alguns aspectos do seu trabalho atual, você precisará de tempo para gerenciar prioridades e agendamento.

Uma boa fonte de habilidades simples e básicas de gerenciamento sobre o que fazer e como, de maneira profissional, é http://www.manager-tools.com . Eles fazem podcasts regulares sobre conselhos de gestão e carreira, sem mencionar um catálogo considerável de material para você.

GrumpyMonkey
fonte
1

Muitas das dicas fornecidas são excelentes, gostaria apenas de acrescentar algumas da minha experiência em uma posição semelhante.

  1. Envolva-se nas decisões de contratação e não tenha medo de vetar candidatos que não o são. Você precisará trabalhar em estreita colaboração com a equipe e ela representará o seu para seus clientes e para a gerência.
  2. Estabeleça uma cultura de honestidade com os membros da sua equipe e espere honestidade deles, especialmente quando as situações forem difíceis.
  3. Aprenda a delegar e, em seguida, concentre-se em soluções e não em processos.
Eric Kigathi
fonte