A capacidade de programar não é o único talento que torna um engenheiro de software excepcional.
É muito provável que você tenha contratado a maioria de seus engenheiros com base na capacidade deles de desenvolver com sucesso as ferramentas de que sua empresa precisa para funcionar ou os aplicativos que pretende oferecer aos clientes. Essa habilidade depende diretamente de sua aptidão para linguagens e frameworks específicos voltados para os projetos para os quais foram contratados.
No entanto, se suas práticas de contratação forem baseadas apenas em habilidades de programação, você provavelmente estará perdendo alguns candidatos excelentes. Isso, ou você pode acabar contratando alguém com um conhecimento incrível de qualquer idioma, mas que carece de muitas das outras habilidades “soft” necessárias para atuar em sua empresa ou em equipe.
O que é uma habilidade “suave”?
As habilidades interpessoais são frequentemente chamadas de habilidades comuns ou essenciais e são traços e características de personalidade enraizados no comportamento e atitude de uma pessoa. Embora essas habilidades não sejam tão quantificáveis quanto as habilidades básicas (como o conhecimento de uma linguagem de programação específica), elas são igualmente valiosas e, na maioria das vezes, têm um impacto muito positivo na produtividade e na interação com outros membros da equipe.
Agora que você sabe o que é uma habilidade interpessoal, o que deve ser observado ao contratar novos engenheiros de software? Vamos dar uma olhada em algumas das habilidades interpessoais mais importantes que você deve buscar.
Comunicação
Se seus desenvolvedores não conseguirem se comunicar bem, eles não serão capazes de trabalhar em equipe, trocar ideias com as partes interessadas, explicar problemas que descobrem no design ou no código, ou fazer parte da eliminação de bugs ou dos esforços de marketing do projeto. A capacidade de comunicação é absolutamente essencial para qualquer membro da equipe.
Isto é especialmente verdade tendo em conta quantas empresas optaram por um ambiente de trabalho remoto. Por isso, as reuniões agora são realizadas via Zoom (ou outras plataformas), onde os membros da equipe podem se colocar à disposição para comunicar problemas ou colaborar. Com uma comunicação eficaz, um membro da equipe é mais capaz de ajudar a encurtar o ciclo de vida do projeto e fazer com que tudo funcione de forma mais eficiente.
Colaboração e trabalho em equipe
Nem é preciso dizer que seus desenvolvedores devem ter essas habilidades sociais. Sem a capacidade de colaborar e trabalhar de forma eficaz em equipe, esses funcionários serão desafiados a funcionar e ajudar a concretizar o projeto. Para ser um bom jogador de equipe, um contratado precisa ser capaz e estar disposto a ir além do que lhe é pedido e tomar todas as medidas necessárias para ajudar sua equipe a realizar o trabalho.
Essa colaboração deve ir além do compartilhamento de código no GitHub e da ajuda na depuração. Esses membros da equipe devem ser capazes de compartilhar e receber conselhos daqueles que estão acima deles, abaixo deles e no mesmo nível. Além disso, os membros de uma equipe também devem respeitar o trabalho, a ética e as necessidades de seus colegas desenvolvedores.
Gestão e Organização do Tempo
Se seus desenvolvedores não conseguirem lidar com o gerenciamento do tempo de maneira eficaz, eles terão problemas para cumprir os prazos. O mesmo se aplica às suas habilidades organizacionais. Ambas as características podem ajudar muito os desenvolvedores a se tornarem membros de equipe eficazes e produtivos.
Quando alguém trabalha com um colega de equipe que possui habilidades eficazes de gerenciamento de tempo, sabe que pode contar com ele para realizar sua parte no trabalho. Sem essas habilidades, os colegas de equipe ficarão frustrados e terão que compensar constantemente aqueles que não conseguem administrar seu tempo.
Inteligencia emocional
Ao contratar um desenvolvedor com inteligência emocional sólida, você contrata alguém com a capacidade de absorver e interpretar com sucesso não apenas suas próprias emoções, mas também as emoções dos outros. Com essa habilidade, um desenvolvedor é mais capaz de lidar com a inevitável pressão emocional que muitas vezes acompanha os desenvolvedores.
Os prazos se aproximam, a pressão aumenta, os ânimos aumentam. Com um alto nível de inteligência emocional, um desenvolvedor é mais capaz de lidar com qualquer coisa que surja em seu caminho, sem quebrar ou atacar. Uma grande parte da inteligência emocional é ter fortes habilidades de escuta ativa. Uma pessoa que consegue ouvir ativamente a outra é capaz de processar o que vivencia de forma produtiva e eficiente.
Culpabilidade
As coisas dão errado. Isso é inevitável. Quando algo dá errado (seja um erro no código ou um prazo perdido), a última coisa com a qual você precisa lidar é uma equipe de desenvolvedores jogando o “jogo da culpa”. Você precisa contratar desenvolvedores que estejam dispostos a admitir seus erros, para que a equipe possa seguir em frente, resolver o problema e cumprir o prazo.
Sem culpabilidade, você encontrará funcionários gastando muito tempo apontando a culpa para os outros. Seus engenheiros devem compreender que não há problema em admitir erros e (exceto em circunstâncias extremas) que não perderão o emprego por aceitarem responsabilidades.
Resolução criativa de problemas
Alguns problemas são facilmente resolvidos com lógica e razão. Isto é especialmente verdade no domínio do desenvolvimento de software. Mas de vez em quando uma solução criativa não apenas resolverá o problema, mas também gerará um resultado final ainda melhor.
Pessoas criativas realizam trabalhos criativos. Se você deseja uma equipe de desenvolvimento que seja capaz de ultrapassar limites e pensar bem fora da caixa dos problemas padrão, você precisa procurar desenvolvedores capazes de resolver problemas de forma criativa.
Adaptabilidade e Versatilidade
Se você contratar alguém rígido e incapaz de se adaptar a diferentes circunstâncias, descobrirá que contratou um desenvolvedor que atrapalhará o progresso. Nem tudo corre como planeado e a lei de Murphy nunca deixa de mostrar a sua cara feia.
Quando um projeto sai dos trilhos, você precisa de desenvolvedores que possam acompanhar as mudanças lançadas sobre eles por meio de mudanças nas necessidades, um problema que surge no código apresentado por outro membro da equipe ou um problema que surge com uma API quebrada. Ao contratar desenvolvedores adaptáveis e versáteis, você pode ter certeza de que esses projetos serão concluídos, não importa o que aconteça.
Paciência
As coisas nem sempre acontecem da noite para o dia. Às vezes, um projeto fica em espera enquanto espera pelo trabalho de uma equipe ou de terceiros. Quando isso acontece, seus desenvolvedores precisam mostrar paciência. Só porque um membro da equipe chegou à linha de chegada muito antes dos outros, não significa que eles possam apressar o trabalho e esperar que seja de qualidade.
Cada membro da equipe deve compreender que nem todos os desenvolvedores trabalham no mesmo ritmo. Além disso, quando o projeto estiver fora das mãos dos desenvolvedores e estiver nas mãos, digamos, do marketing ou da administração, eles terão que exercitar seriamente a paciência.
Isto é especialmente verdade no domínio do DevOps, onde mais do que apenas desenvolvedores estão trabalhando em um projeto. Aqueles que estão em operações podem não compreender totalmente um problema tão rapidamente quanto um desenvolvedor, então paciência (como dizem) será uma virtude.
Conclusão
Lembre-se de que programar não é a única habilidade que seus funcionários deveriam ter. Sim, provavelmente é melhor dar maior prioridade às competências que terão um impacto imediato e direto num projeto, mas nunca deve subestimar estas competências interpessoais que podem tornar um funcionário mais eficaz, eficiente, produtivo e mais fácil de trabalhar.