Executando verificação de segurança...
3

Filipe, você enxegar um cenário onde exista uma equipe apenas com seniores, ou então já participou/viu uma equipe assim?

Minha pergunta é motivada por um vídeo do Akita. Busquei a parte específica que veio à minha mente, mas não achei. Se não me engano, ele comentou que toda equipe precisa ter juniores, porque nenhum sênior quer fazer as "tarefas simples" que são repetitivas para ele, mas que para um júnior seria bom fazer.

De qualquer forma, na minha busca achei este vídeo do Akita (blog post), no qual ele comenta sobre revisão de código, juniores e seniores:

Dado tudo que eu falei, se tem uma recomendação que eu faria primeiro a qualquer empresa, de qualquer tamanho, é que nenhum código deve ser imune à revisão, não importa de quem seja. Todo código deve ser revisado por alguém da equipe, de preferência mais de uma. Todo júnior precisa que alguém aponte o que ele fez de errado, o mais rápido possível. Todo sênior precisa se acostumar a orientar os outros e revisar o código é o primeiro passo. E pra escalar não tem nada melhor que pressão peer to peer, todo mundo olhando todo mundo. Se isso for rotina, fica muito fácil pra equipe inteira notar muito rápido quem está entregando código, em qual qualidade e com que frequência, e não deixar os problemas graves se acumularem a níveis ingerenciáveis.

Carregando publicação patrocinada...
2

Rafael, excelente questionamento! Imagino que em uma equipe com muitos sêniors há uma grande chance de dar problema, mas mais pelo fato de cada um querer puxar o barco para um lado (por exemplo, nas decisões de arquitetura e modelagem).

Agora, já trabalhei com equipes pequenas que deram muito certo, pois todos tinham uma maturidade muito alta sobre o design da aplicação... e a maturidade neste ponto vai além da parte técnica e entender que qualquer tarefa importa, se ela for importante.

Então disso eu separo pessoas seniores em duas categorias: seniores maduros e seniores imaturos. Um senior imaturo vai de fato querer se escapar das tarefas chatas, simples, e não irá fazer nada para parar de ficar desmotivado com o próprio trabalho ou sobre a situação que se encontra. Já um sênior maduro topa fazer todas as tarefas, as legais, as chatas e as simples caso essas tarefas sejam importantes, como por exemplo, impactem no usuário final. Na cabeça de uma pessoa madura, não existe tarefa chata quando há impacto real (seja direto ou indireto). E se não há impacto algum, nem indireto, porque essa tarefa está sendo feita? Até uma refatoração tem impacto: direto em quem trabalha com o software e indireto no cliente que usa o software e vai conseguir receber atualizações e novas features mais frequentemente no futuro.

Veja nesse tweet um ângulo adicional sobre a postura madura que comentei:

Tweet sobre postura madura em desenvolvimento de software

E sobre o quote do Fábio Akita, nada do que eu comentei exclui sobre a relação entre um Junior e Code Review, nesse caso acho algo extremamente saudável para transporte de conhecimento 🤝 mas por fim, é tudo uma questão de trade off 👍