Duas coisas que importam

Trabalhar em equipe é um fato, as vezes não é fácil. Muitas vezes construir um time requer tempo e um bom trabalho de coaching. Práticas ageis e/ou lean também pode te ajudar, mas muitas vezes isso não é o suficiente. Algumas empresas fazem um trabalho de RH mais forte na formação das equipe, já vi muitas esforços neste sentido com bom aproveitamento também.

Quando estamos participando de um projeto estamos em contato com todas os tipos de pessoas, as vezes de diversas culturas, timezones, idiomas e crenças, esta ultima palavra é que complica tudo muitas vezes. Estas crenças(assumptions) não são verdadeiras e isso pode levar a uma série de problemas e até mesmo anomalias(disfunções) na "equipe".



Formando um time


Muitas vezes você não tem todas as pessoas que precisa para um projeto, logo vem a necessidade de formar uma equipe, formar a equipe é um tarefa simples mas em nenhum momento é fácil. Ultimamente eu estou tento a possibilidade de me envolver mais com este tipo de tarefa, ajudar a formar equipes e também participar em processos de seleção.

Neste momento várias questões em vem a cabeça, que tipo de pessoa deve fazer perte do time? Desenvolvedores, sim, mas com qual experiência, com qual especialidade, com que tipo de habilidades? Estas perguntas não são nada fáceis de se responder, muitas vezes são existe uma unica resposta mas sim um conjunto de váriaveis que implicam em uma série de trade offs.

Prova Técnica


Esta é uma questão bem polemica, muitas pessoas acham que a prova técnica não prova nada, eu concordo com elas, outras dizem que prova muito e eu concordo também. Talvez você tenha ficado confuso com a ultima frase :D

Não vejo outra forma de avaliar o código de um desenvolvedor sem ver o código dele, existe uma exeção mas vou comenta-la no fim do post, vocês vão ter que esperar um pouco para esta ter esta resposta. Bom vou voltando a questão, ok prova técnica mas o que avaliar.

Na minha concepção API é algo que simplismente não importa por que na vida real qualquer desenvolvedor vai consultar o google ou o stack overflow ou outro site geek que tenha respostas certas e rasteiras.

Se API não importa, o que realmente importa? Para mim é saber se o desenvolvedor *pensa* no problema, entende o problemas e cria uma solução que soluciona este problema levando algumas coias em consideração como por exemplo:
  • Código Limpo
  • Simplicidade
  • Boa Lógica de Programação
  • Separação de Conceitos
  • Baixo Acoplamento e Alta Coesão
  • Extensibilidade/Flexibilidade
  • Otimização, se necessário for
  • Tratamento de Erros
Para mim um bom desenvolvedor é capaz de realizar um prova técnica sem utilizar frameworks ou bibliotecas por exemplo e atender perfeitamente estes requisitos, para mim estas coias importam e com certeza vão fazer a diferença.

Se você separar estes requisitos em dois grandes grupos vamos ter requisitos de implementação que existem no XP por exemplo e requisitos básicos de design(outra coisa que importa). Normalmente eu dou um bom tempo para realização deste tipo de avaliação como por exemplo 24h e o candidato pode realizar isso de cada e mandar a prova por email em um formato zip por exemplo.

A correria do dia a dia

Sei que muitos profissionais trabalham 8-10h diárias e ainda tem que ir para faculdade a noite e depois chegar em casa e ficar um pouco com a mulher :D Neste caso a prova pode parecer um pouco injusta certo? Bom ai tem 2 coisas, você pode deixar o candito escolher o dia de receber a prova, mas mesmo assim ele tera 24h para resolução e a outra coisa a se fazer é esperar que o candidato vai ter dedicação e mesmo com todas estas coisas vai dormir umas horas a menos e fazer um bom código, isso é comprometimento e valhe muito nos dias de hoje.

Nota boa na prova esta dentro?

Negativo, a prova é só uma ferramenta, ainda precisamos de 2 outras ferramentas que importam muito, a primeira é a avaliação do RH com os seus testes de risquinhos, comportamento, etc... A outra ferramenta é a converça técnica com o candidato, nesta convernça costumo ver se o cara realmente fez a prova e tento ouvir a pessoa, ver como ela se expressa e qual é a visão da pessoa das coisas, com isso posso ver as duas coisas que mais importam...

As duas coisas que importam

Além dos valores da empresa e outras coisas que sempre se leva em consideração, para mim existem duas coias que realemte importam. A primeira é a *confiança* mas essa só vem com o tempo, claro que uma boa indicação de uma pessoa que você confia ajuda muito e esta é a resposta que fiquei devendo antes.

Tirando isso o que mais importa para mim é a Adaptabilidade da pessoa. O quanto a pessoa consegue a se adaptar a projetos com pessoas diferentes, culturas diferentes, técnologias novas, velhas, legais, chatas, idioma, timezone, ambiente, horário, local de trabalho, forma de contratação.


Adaptabilidade é uma habilidade muito valiosa em um projeto, se você é multifuncional, pode trabalhar com resposábilidade diferentes durante o tempo e com esta habilidade você não é uma peça estática e sim dinamica. Ser dinamico é fundamental para o sucesso em uma empresa nos dias de hoje, este dinamismo não é só válido de projeto para projeto mas dentro de um mesmo projeto onde voce não tem medo das mudanças e consegue realizar mudanças rádicais de forma rápida e sem dor.

Pessoas que se adaptam fazem toda a diferença, quando você confia em pessoas e estas pessoas se adaptam e tem esta habilidade o time é completo e você tem todas as condições de vencer os desafios de um projeto.

Finalizando, confiança e adaptabilidade importam muito para mim em um time de desenvolvimento assim como outros valores e habilidades, mas estas são as habilidades essencias que vejo para trabalhar em projetos complexos, distribuidos e dinámicos.

Abraços.

Popular posts from this blog

Telemetry and Microservices part2

Installing and Running ntop 2 on Amazon Linux OS

Fun with Apache Kafka