Atualmente, estou orientando uma pequena equipe de 4 desenvolvedores juniores em uma pequena empresa de software. Eles são muito inteligentes e, muitas vezes, realizam suas tarefas com um trabalho de alta qualidade, mas tenho certeza de que ainda podem fazer melhor - na verdade, tenho exatamente o mesmo sentimento por mim :): -. Além disso, alguns deles são mais "juniores" do que outros.
Então, eu gostaria de encontrar uma maneira engraçada de melhorar suas habilidades em CS (design, codificação, teste, algorítmico ...), além da experiência que eles adquirem em seu trabalho diário. Por exemplo, eu estava pensando em organizar sessões semanais, não superiores a 2 horas, onde poderíamos nos reunir para trabalhar em exercícios desafiadores de CS. Um pouco como um dojo de codificação.
Tenho certeza que a equipe apreciaria isso, mas é realmente uma boa ideia? Seria eficiente em um contexto profissional? Eles já passam a semana inteira codificando, então como devo organizar isso para que eles obtenham alguns benefícios?
Qualquer feedback bem-vindo!
Respostas:
Aqui estão algumas idéias
Uma reunião de grupo de usuários na qual uma pessoa designada apresente isso melhoraria a apresentação / habilidades sociais da equipe
de vez em quando, fazendo uma tarefa não relacionada ao trabalho, como ir ao Dave & Busters para ter uma divertida sexta-feira ou sorte .. para melhorar a química da equipe
Qualquer uma das tarefas ou reunião deve ser inferior a 45 minutos apenas para ter todo o grupo interessado. Qualquer coisa que vá além da hora cairá completamente sobre os ombros do apresentador ou líder do grupo.
fonte
As pessoas podem muito bem ter suas próprias idéias sobre como querem aprender. Pessoalmente, prefiro fazer um curso ou trabalhar em um projeto em meu próprio tempo - e fiz os dois. Se todos os membros da equipe estiverem de acordo com as sessões de treinamento, siga em frente, desde que as pessoas da sua equipe não comecem a tratá-lo como "trabalho" ao longo do tempo ...
fonte
Eu acho que a única maneira de manter uma equipe bem treinada é contratar desenvolvedores que queiram continuar aprendendo.
Se não vier de dentro, não produzirá resultados duradouros.
se eles desejam aprender, então, se as atividades de aprendizado em equipe são eficazes ou não, dependerão principalmente de interesses e estilos de aprendizado.
fonte
Eu acho que o sistema dojo parece legal, e permita que eles continuem em casa, se quiserem. Adicionar algum tipo de recompensa pode ser útil, mas você pode enfatizar a cometição e não acho que isso seja bom para o trabalho em equipe. De qualquer forma, um lugar incrível para procurar problemas no computador é o Sphere Online Judge . Ele define um problema, um conjunto de resultados esperados e permite fazer upload de um arquivo com a solução para o problema. Se você acertar, seus pontos aumentam.
Boa sorte com isso!
fonte
Há várias habilidades que precisamos como desenvolvedores que não estão necessariamente diretamente relacionadas ao código. Um exemplo é apresentar e explicar coisas técnicas a pessoas não técnicas de uma maneira que elas possam entender. Algo que pode ser eficaz enquanto você coloca sua equipe no local desejado, é fornecer algo como lição de casa.
Toda semana, você dá a seus caras um problema para resolver. Para mantê-lo mais vantajoso para a empresa, mantenha os problemas em algo relevante para o que você está trabalhando. De preferência, algum ponto problemático que você ainda não descobriu a solução. Cada um de seus membros juniores se revezava na apresentação (de preferência uma por semana) enquanto você desempenha o papel de cliente. Essencialmente, você tem dois objetivos com essa abordagem:
Obviamente, comece cada sessão com um lembrete de que você fará perguntas específicas - e o objetivo não é ser mau, mas prepará-las para um cliente difícil.
fonte
Como gerente ou sênior, eu me esforçaria para continuar lançando desafios no trabalho "real". Tente dar às pessoas coisas para trabalhar que estão um pouco fora do seu alcance ou pelo menos as desafiam. Envie um de seus colegas para ajudar e orientar, se necessário.
Depois que alguém terminar algo, desafie-o a tentar uma abordagem nova / diferente.
Treine-os a descobrir as coisas no local, em vez de contornar coisas que ainda não sabem como fazer.
Integrar a aprendizagem ao próprio trabalho, os projetos paralelos tendem a ser ignorados com prazos no horizonte.
Às vezes, afirmar diretamente a necessidade de um determinado especialista pode ajudar como motivador.
fonte
Dê a eles 3 horas por semana para pesquisar / hackear o que eles estiverem interessados em programar. Idealmente, isso seria mais, mas acho que 3 horas é um bom começo. Pode ser tudo em um pedaço, pode ser dividido em pequenos segmentos de 30 minutos ao longo do caminho. Parece que esses programadores estão motivados o suficiente para manter as coisas sob controle.
Mas permitir que eles explorem seus próprios campos de interesse também retornará para ajudar a equipe. Uma pessoa que realmente gosta de dados pode pesquisar e escrever um aplicativo pequeno usando uma solução NoSQL que poderia ajudar um projeto que surgisse alguns meses depois. Outra pessoa pode corrigir um pequeno aplicativo utilitário para uma necessidade trivial (como analisar arquivos de log) que se torna um aplicativo básico em sua equipe. Até o conhecimento adquirido com a leitura do que as grandes empresas estão fazendo pode ajudar a avaliar as opções para o próximo projeto que surgir.
Estamos em um ambiente que está sempre mudando, e cada membro de sua equipe, com certeza, traz algo único à mesa, portanto, dê a eles a oportunidade de expandir de acordo com seus próprios termos. Eles ficarão agradecidos por não terem sido forçados a algo (mesmo que todas as intenções sejam boas) e você terá uma boa diversidade de comentários.
fonte
Outra técnica que vi que funciona é uma apresentação de almoço de um desenvolvedor / consultor sênior, uma vez por mês, aproximadamente. E não se esqueça de fornecer o almoço. A maioria dos desenvolvedores que conheço adora grub grátis. Você pode perguntar se eles preferem algum tópico específico.
fonte