Como lidar com a inexperiência?

Tomem o seguinte caso:

Você se tornou líder de implementação de uma equipe em um novo projeto, e a gerência colocou duas pessoas sem experiência(*) ou com experiência mínima em lógica e programação para te ajudar.

Considere que um projeto normalmente vira um desastre quando programadores codificam sem pensar na arquitetura, reuso, etc, estas sendo as últimas preocupações deles.
Considere também que o projeto deve ser entregue com um bom índice de manutenabilidade.

Que ações você adotaria para gerir essa situação?

(*) - Por exemplo, estagiários, funcionários que vieram de outro setor, concursados, ou gente com QI muito alto (o primo do chefão).

passei por uma situação assim e foi desastrosa, principalmente na hora de explicar alguns conceitos do tipo “não programem regras de negócios nas Actions”, por não terem experiencia não se preocupavam em fazer algumas coisas, porem consegui resolver o problema de uma maneira simples, comecei a ser “XIITA”, segui a risca os padrões do J2EE e fiz eles fazerem o mesmo, ou seja, consegui encapsular a caca q eles faziam, pode não ser a melhor, porem foi a solução q eu encontrei para lidar com a falta de experiencia deles, q acho nem ter sido o maior problema e sim a falta de interesse em fazer bem feito e entender o pq.

Nunca passei por isso por nunca ter trabalhado…
Mais acho que seria uma situação bem complicada^^

Sera que sou o inexperiente dessa historiaa? oo :smiley: :shock:

Boa tarde Bruno Laturner,

Antes de mais nada, neste tipo de situação primeiramente você necessita de requisitos muito bem definidos e bem explicativos para que os desenvolvedores sintam o mínimo de incompreensão possível.

Já me aconteceu algo deste tipo na empresa onde trabalho, neste caso adotei a fundo os conceitos de Eng. de Software e Qualidade de Software (manutenabilidade) , ou seja, não adianta você colocar a mão na cabeça desesperado e deixar como está. No meu caso adotamos a métrica de desenvolvimento ágil SCRUM e também o XP, que são os próprios desenvolvedores que irão ficar acima e por dentro do projeto e saberás como está o andamento do projeto e do desenvolvimento em si, pois, apesar da pouca experiência de alguns, os outros que possuíam experiência, ajudavam estes, mostrando a melhor forma de codificar ou de realizar algum requisito que não estivesse conseguindo faze-lo.
Existe também o XP (Extremming Programming) que um de seus ensinamentos é o desenvolvimento em pares que significa dois desenvolvedores fazendo à mesma tarefa, sendo que, um codifica e o outro auxilia nesta mesma codificação onde você como Líder Técnico poderia amenizar as “gambiarras” realizadas pelos desenvolvedores mais inexperientes acompanhando o decorrer do projeto.

Eu aconselharia você adotar o XP como descrevi a cima logo, você líder técnico, cada dia sentaria ao lado de cada desenvolvedor inexperiente e acompanharia o seu desenvolvimento como se fosse um deles, adotando as medidas de refactoring para cada código que pudesse ser aplicado.

  • “Bruno será que você não pode realizar este código da seguinte forma para que fique com melhor entendimento e compreensão!”

Desta forma além de você acompanhar o projeto diretamente ajudaria os desenvolvedores menos experientes a aprender a utilização do refactoring e da forma mais correta de se codificar algo dentro de um projeto, que com o tempo ele mesmo poderá realizar o que você estará realizando no momento.

Espero ter ajudado,

:lol:

Receitinha de bolo básica:

  1. Pair programming pra difundir conhecimento
  2. Code reviews para manter a qualidade do código
  3. Retrospectivas para avaliar os pontos que precisam melhorar

[quote=Bruno Laturner]Tomem o seguinte caso:

Você se tornou líder de implementação de uma equipe em um novo projeto, e a gerência colocou duas pessoas sem experiência(*) ou com experiência mínima em lógica e programação para te ajudar.

Considere que um projeto normalmente vira um desastre quando programadores codificam sem pensar na arquitetura, reuso, etc, estas sendo as últimas preocupações deles.
Considere também que o projeto deve ser entregue com um bom índice de manutenabilidade.

Que ações você adotaria para gerir essa situação?

(*) - Por exemplo, estagiários, funcionários que vieram de outro setor, concursados, ou gente com QI muito alto (o primo do chefão).[/quote]

Dê uma de arquiteto, tente criar você mesmo o esqueleto do negócio e peçam para eles só preencherem o resto. Tenha por perto um código bem horroroso de outro projeto, explique todos os tipos de problemas que a arquitetura ruim ocasiona/ocasionou e explique que é importante que vocês se esforcem para que esse projeto não siga o caminho do outro.
Vigie de perto o código que eles fizerem e corrija o que achar de errado. Quando fizerem algo errado, senta junto e explica o problema.
É importante saber ouvir também e manter sempre uma postura de amigo, de igual para igual.
E seja claro: Não adianta nada correr com o prazo se for necessário refazer um monte de coisas depois.

Já vi , e já tive alguns projetos afundados por inexperiência de programadores…

Hoje prefiro pagar mais caro a pegar programadores “cheirando leite”

Eu te digo, o resultado do seu trabalho é FRUTO da SUA EQUIPE…

Nao adinata você se esforçar ao maximo se a SUA equipe não acompanhar…

No final OU voce estoura todos os prazos possiveis e imaginaveis , ou vai apresentar um produto sem o menor nivel de coesão.

[quote=chun]Já vi , e já tive alguns projetos afundados por inexperiência de programadores…
[…]
Eu te digo, o resultado do seu trabalho é FRUTO da SUA EQUIPE…

Nao adinata você se esforçar ao maximo se a SUA equipe não acompanhar…
[/quote]

Cabe ao programador experiente evitar que a inexperiencia de alguns prejudique o projeto. Como foi dito, o resultado eh fruto da equipe (e voce tambem faz parte dela), nao apenas de uma pessoa.

[quote=s4nchez][quote=chun]Já vi , e já tive alguns projetos afundados por inexperiência de programadores…
[…]
Eu te digo, o resultado do seu trabalho é FRUTO da SUA EQUIPE…

Nao adinata você se esforçar ao maximo se a SUA equipe não acompanhar…
[/quote]

Cabe ao programador experiente evitar que a inexperiencia de alguns prejudique o projeto. Como foi dito, o resultado eh fruto da equipe (e voce tambem faz parte dela), nao apenas de uma pessoa.[/quote]

Segundo ele a EQUIPE TODA é inexperiente…
Sem chances.

Aqui na empresa ja passei pelos doi lados…

Quando eu era o “Novato”, tive um membro da equipe como “tutor” este foi nomiado pra me ajudar sempre que precisava, (claro que podia pedir ajuda aos demais, porém este sempre acompanhava meus passos), sempre que eu fazia um código inapropriado ele me alertava dizendo que não tava certo fazer daquela maneira e mostrava a maneira correta de se fazer. Toda vez que eu “commitava” algo era “revisado” (por cima é claro) só para ver se eu não tava fazendo alguma besteira.

Agora eu ja estou do lado de quem esta ajudando um “novato”, e sempre tento resolver suas duvidas quando elas surgem.
De vez em quando chego na mesa perguntando " e ai tudo certo? ta levando?" e do uma acompanhada, se surge modo que da pra melhorar o código, tento mostrar este modo.

Com o tempo vai ficando cada vez mais idependente, e as duvidas diminuindo em um processo natural.

[quote=jingle]Aqui na empresa ja passei pelos doi lados…

Quando eu era o “Novato”, tive um membro da equipe como “tutor” este foi nomiado pra me ajudar sempre que precisava, (claro que podia pedir ajuda aos demais, porém este sempre acompanhava meus passos), sempre que eu fazia um código inapropriado ele me alertava dizendo que não tava certo fazer daquela maneira e mostrava a maneira correta de se fazer. Toda vez que eu “commitava” algo era “revisado” (por cima é claro) só para ver se eu não tava fazendo alguma besteira.

Agora eu ja estou do lado de quem esta ajudando um “novato”, e sempre tento resolver suas duvidas quando elas surgem.
De vez em quando chego na mesa perguntando " e ai tudo certo? ta levando?" e do uma acompanhada, se surge modo que da pra melhorar o código, tento mostrar este modo.

Com o tempo vai ficando cada vez mais idependente, e as duvidas diminuindo em um processo natural.

[/quote]

Quanto tempo voce levou de “novato” para o atual estagio ?

Pensei que o autor do topico havia sugerido que o programador experiente fazia parte da equipe:

[quote=Bruno Laturner]
Você se tornou líder de implementação de uma equipe em um novo projeto, e a gerência colocou duas pessoas sem experiência(*) ou com experiência mínima em lógica e programação para te ajudar[/quote]

Atualmente estou 2 anos na empresa…

[quote=jingle][quote]
Quanto tempo voce levou de “novato” para o atual estagio ?
[/quote]

Atualmente estou 2 anos na empresa… [/quote]

Qual projeto que pode esperar 2 anos para amadurecimento de um programador ?

Repito… o resultado do projeto é o resultado do lider + sua equipe…

20% lider
80% equipe.

[quote=chun][quote=jingle][quote]
Quanto tempo voce levou de “novato” para o atual estagio ?
[/quote]

Atualmente estou 2 anos na empresa… [/quote]
Qual projeto que pode esperar 2 anos para amadurecimento de um programador ?
Repito… o resultado do projeto é o resultado do lider + sua equipe…
20% lider
80% equipe.[/quote]

Desculpe interpretei mal sua pergunta achei que estava pedindo quanto tempo eu estava na empresa, o estagio até se tornar mais idependete demorou ±3 mês, que foi quando comecei a receber projetos própios.

concordo com sua analise de :

E falei mesmo. O único membro experiente da equipe, com condições atuais de arquitetar, refatorar, além de ter mais conhecimento das regras de negócio e infra é o líder, os outros 2 são novatos mesmo.

Aliás, outro papel deste líder é aumentar o nível dos outros integrantes, pelo bem da equipe e também pelo bem das outras que eles formarão no futuro.

Obs: Só pra deixar claro, não sou o lider da suposta equipe, até por que ela não existe no presente. Porém já tive esse papel, em breve poderei ter novamente, nestas mesmas condições. Por isso a pergunta, para me preparar até lá.

E falei mesmo. O único membro experiente da equipe, com condições atuais de arquitetar, refatorar, além de ter mais conhecimento das regras de negócio e infra é o líder, os outros 2 são novatos mesmo.

Aliás, outro papel deste líder é aumentar o nível dos outros integrantes, pelo bem da equipe e também pelo bem das outras que eles formarão no futuro.

Obs: Só pra deixar claro, não sou o lider da suposta equipe, até por que ela não existe no presente. Porém já tive esse papel, em breve poderei ter novamente, nestas mesmas condições. Por isso a pergunta, para me preparar até lá.[/quote]

Bem, a palavra “líder” já define o que o cara tem que fazer, não é?

O lider tmb vai programar ?

Além de PP, sugiro criar um mini-curso sobre algoritmos, orientacao a objetos, padroes de projeto para elevar o conhecimento da equipe…

Pega a apostila da Caelum a (FJ11) e ensina para eles… ((;

Ou pelo menos o que deveria fazer né.

Com certeza! É de se esperar que entre arranjar tempo pra gerir a equipe, ele também produza algo, alias, até mais que os novatos. Senão bye bye prazos.