(Postado originalmente por: Adriano Maringolo Gomes)

A carreira no mundo de Desenvolvimento de Software é repleta de muitos desafios técnicos. Qualquer profissional dessa área sabe que a tecnologia muda muito rápido. Enquanto novas ferramentas aparecem no mercado, as existentes continuam evoluindo, o que demanda aprendizado e atualização em vários assuntos num curto período de tempo.

Enquanto muito se fala sobre as habilidades técnicas para um desenvolvedor – com tutoriais, reviews, cursos, vídeos, que surgem a cada minuto na internet – pouco se trata sobre habilidades não-técnicas para o nosso meio.

Abaixo eu listo 5 habilidades não-técnicas que, na minha opinião e experiência, são muito importantes para um desenvolvedor. Mas antes, um pouco de contexto.

Hard Skills vs Soft Skills

Essa nomenclatura é usada em qualquer área profissional, não apenas para Desenvolvimento de Software.

Hard skills (ou habilidades duras, numa tradução literal) são todas as habilidades que um profissional pode obter através de um aprendizado sistematizado, como um curso, um livro, um tutorial. São habilidades necessárias para executar uma determinada função. Por exemplo: um desenvolvedor precisa saber lógica de programação e posteriormente uma linguagem de programação para desempenhar suas tarefas; um advogado precisa saber a base da legislação e depois as leis específicas do país que vai atuar. Pode-se entender como conhecimento técnico.

Soft skills (ou habilidades macias, numa tradução literal) são habilidades mais difíceis de desenvolver pois são relacionadas ao comportamento, personalidade, emoção (ou inteligência emocional) e experiência – e podem ser um pouco subjetivas de acordo com o contexto. Alguns exemplos são: comunicação, liderança, organização, trabalho em equipe, ética, entre tantas outras. Apenas a prática pode desenvolver tais habilidades, apesar de haver muitos livros, vídeos e outros materiais falando sobre isso, apenas a experiência e o tempo vão ajudar o profissional.

Essas soft skills podem ser inerentes ao profissional. Inúmeras variáveis contribuem para isso: a educação na infância, experiências em viagens, amigos e por aí vai.

Existem profissionais que naturalmente são bons comunicadores, outros não. Mas não significa que uma habilidade não inerente não possa ser desenvolvida. A boa comunicação, assim como qualquer outra habilidade, existe em menor ou maior evidência em qualquer um, mas pode ser trabalhada de acordo com as necessidades.

As hard skills são mais objetivas. Quem aprende a ler, a escrever, a falar, vai ter essas habilidades em qualquer situação, mesmo que pouco as pratique e precise relembrar.

É importante explicar que, diferentemente das hard skills, as soft skills podem ser um pouco subjetivas de acordo com o contexto. Um gerente pode achar um desenvolvedor organizado enquanto outro gerente pode não ter a mesma opinião. Além disso, as soft skills, que dependem de diversas variáveis e aspectos psicológicos, também podem mudar dadas cenários diferentes. Num momento o profissional pode ser flexível, mas dada uma outra situação, pode apresentar um comportamento diferente.

Importância das soft skills ao longo da carreira

Recentemente li um artigo do FastCompany (How To Know Which Skills To Develop At Each Stage Of Your Career) que fala um pouco sobre a necessidade e importância do desenvolvimento de habilidades não técnicas ao longo de uma carreira.

O artigo possui vários gráficos interessantes que reproduzo abaixo em português (afirmo que a autoria das informações não é minha, apenas refiz os gráficos).

No artigo os pontos foram agrupados em: habilidades (hard skills), relacionamento (no artigo o termo usado é likeability, mas preferi traduzir assim) e fazer as coisas acontecerem.

Para ser contratado no início da carreira (um estagiário por exemplo) será levado em conta muito mais as habilidades técnicas do profissional e, como ainda (ou quase) não há experiência de trabalho, um pouco sobre as habilidades de relacionamento (saber trabalhar em equipe, ser simpático, respeitoso, gostar de aprender). Um recrutador vai querer saber se aquele candidato tem algum conhecimento necessário para executar as funções e se ele vai conseguir se relacionar bem com os pares e superiores.

Para ser avaliado um profissional no nível Júnior (início da carreira) será levado em conta muito mais a evolução das capacidades técnicas do profissional, se ele conseguiu realizar suas atividades com qualidade, se contribuiu ativamente para o desenvolvimento do projeto, entre outros.

Para ser avaliado um profissional no nível Pleno serão levados em conta vários outros aspectos do profissional. As habilidades técnicas vão perdendo um pouco da relevância (pois se subentende que o profissional desenvolveu bem as mesmas num nível Jr). Nessa etapa é muito mais relevante as capacidades comportamentais de “fazer as coisas acontecerem” e de “relacionamento” – que serão explicadas abaixo. Ou seja, as soft skills são bem mais relevantes nessa fase.

Para ser avaliado um profissional no nível Sênior serão levados muito mais em conta os aspectos comportamentais. Já se espera uma boa bagagem técnica desse indivíduo (é a experiência das etapas anteriores), sendo bem mais importante desenvolver o “fazer as coisas acontecerem” e “relacionamento”. Apesar de não estar no gráfico acima, a liderança é uma soft skill bastante relevante nessa etapa da carreira.

Relacionamento: habilidades interpessoais, como as citadas no gráfico acima. São puramente soft skills.

Fazer as coisas acontecerem (getting things done): engloba soft e hard skills. Mas como mostrado acima, as habilidades comportamentais são mais relevantes nesse quesito.

Liderança: bastante relevante conforme o profissional ascende em sua carreira.

Carreiras em Y … ou em W

Existe o conceito em diversas áreas profissionais sobre a carreira em Y. Esse conceito indica que num determinado ponto do desenvolvimento de um profissional (de áreas técnicas), ele deverá optar por continuar na área técnica (se especializar em alguma tecnologia ou área) ou partir para a área gerencial (liderar times e projetos e não necessariamente trabalhar com a parte operacional).

Existe também um novo conceito em algumas áreas que é a carreira em W. Nesse conceito há a área técnica, a área gerencial e ainda uma opção mista entre as duas, a de liderança técnica. O profissional nesse último caso vai ser responsável por um time, vai ter um grande conhecimento técnico e fará dois papéis nessa equipe: o de gerenciar as pessoas e o de definir (e talvez executar) atividades técnicas.

Dependendo da opção que o profissional escolhe ele vai precisar desenvolver uma série de soft skills diferentes que auxiliarão a cumprir suas tarefas. No caso da área mista, vai ser necessário desenvolver um conjunto ainda maior de habilidades.

Finalmente, vamos falar das soft skills para devs

1. Resiliência

[Ser resiliente não é ser uma “parede” que não sai do lugar, mas sim ser emocionalmente firme perante as mudanças. Imagem: Freepik]

As coisas mudam. Na nossa área, mudam muito e rápido. Mudanças não são confortáveis na maioria das vezes.

Não apenas as tecnologias evoluem e surgem todos os dias, como também mudam equipes, clientes, gerentes. Pessoas cometem erros.

Quem trabalha como desenvolvedor e tem projetos com clientes sabe que eles mudam de ideia com bastante frequência, gerando retrabalho muitas vezes. Hoje o profissional pode estar em uma equipe, amanhã em outra, com pessoas e gerentes diferentes que, com certeza, terão personalidades diferentes.

Ser resiliente significa aceitar essas mudanças sem grandes traumas e reclamações, é saber que as coisas mudam diariamente, nem sempre são como desejamos e nem sempre estão no nosso controle. Mas não significa ser permissivo e conivente com injustiças, prejuízos, erros propositais ou falta de ética, apenas entender que algumas coisas mudam naturalmente e “bola pra frente”.

Um profissional não resiliente é aquele que reclama de tudo, que não aceita quando precisa mudar de equipe, que não compreende os erros dos outros e coloca defeitos nos trabalhos alheios. Não ter essa habilidade pode acarretar em conflitos entre os pares e com os superiores.

2. Flexibilidade

[A flexibilidade como soft skill não é essa da foto. Imagem: Freepik]

A resiliência anda junto com outra habilidade, a flexibilidade. Sendo resiliente você aceita a mudança, sendo flexível você se adapta a ela.

Essa skill é importante para desenvolvedores pelos mesmos motivos levantados acima. As coisas mudam e se o profissional não se adapta à diferentes condições, ele está fadado a ser deixado de lado, a trabalhar sempre com as mesmas coisas e rotinas.

Na minha experiência, entendo que a flexibilidade em relação à pessoas é fundamental pra manter um bom relacionamento numa equipe. E é uma das habilidades mais difíceis. Cada um tem um perfil, uma bagagem, seus problemas e não podemos mudar isso. Só podemos mudar a forma de se relacionar com essa pessoa e nos flexionarmos (aceitando defeitos, limitações e erros) para manter a harmonia. (Veja um pouco sobre empatia).

Novamente, flexibilidade não significa permissividade com injustiças, erros propositais ou falta de ética.

3. Autodidatismo

[Aprender online atualmente é acessível para a maioria dos profissionais da área. Imagem: Freepik]

Como dito anteriormente, as tecnologias mudam muito e rápido. Procurar se atualizar é um ponto crítico para os desenvolvedores. Não buscar novos conhecimentos significa falta de flexibilidade e vai desfalcar o profissional.

Aquele desenvolvedor que não busca se atualizar sempre vai ficar parado no tempo e acaba trabalhando com tecnologias que ficam ultrapassadas rapidamente. Além disso, fica desnivelado em relação ao mercado de trabalho. Já conheci desenvolvedores que demoraram seis meses ou mais para voltar a trabalhar depois de ficarem desempregados, justamente porque trabalhavam com tecnologias antigas e não encontravam vagas (no nosso mercado, existem muitas vagas abertas e é difícil um bom desenvolvedor ficar tanto tempo parado).

Atualmente existem muitos meios para buscar o autodidatismo, mas o principal deles é a Internet. Existem milhares de vídeos no Youtube, artigos no Medium, cursos no Udemy (não tão caros) e Coursera (grátis), fóruns, grupos e por aí vai. Opções não faltam.

4. Organização

[Organização não é apenas manter a mesa em ordem. Imagem: Freepik]

Para ser um bom autodidata o desenvolvedor precisa de organização.

Organizar não no sentido material (arrumar as coisas na mesa) e sim saber utilizar bem seu tempo, priorizar e cumprir prazos de tarefas e arrumar aquelas horas pra estudar uma nova tecnologia.

Para o desenvolvedor, que escreve bastante código, ser organizado significa ainda produzir um código limpo e intuitivo, que outra pessoa possa ler e compreender. Também é saber se reportar ao gerente e pares de equipe.

5. Colaboração / Trabalho em equipe

[Saber ajudar e ser ajudado é requisito para o desenvolvedor. Imagem: Freepik]

Trabalhar em equipe também demanda flexibilidade, resiliência e organização.

Numa equipe existem vários perfis (que às vezes podem entrar em conflito) e ideias diferentes. Saber ouvir opiniões, respeitar diferenças, integrar esforços, pensar que outros vão precisar compreender o que você fez e que dependem de você são critérios para trabalhar bem numa equipe colaborativa.

O pensamento da equipe deve ser caminhar numa mesma direção e isso muitas vezes depende de um bom líder (não necessariamente o gerente), mas cada um tem seu papel e deve estar disposto a cumpri-lo, sabendo que sua parte é importante para o resultado final.

Outras skills

Claramente existem muitas outras habilidades importantes para um desenvolvedor, porém acredito que as listadas acima sejam as mais importantes e devem ser trabalhadas, pois a deficiência em alguma delas pode acarretar um prejuízo grande para o profissional e aqueles que trabalham com ele.

Outras skills que acho relevantes (não apenas para devs) para citar aqui são:

  • Senso crítico
  • Criatividade
  • Comunicação
  • Liderança
  • Ética

Como desenvolver soft skills?

Essas habilidades não são úteis apenas no ambiente de trabalho, mas auxiliam nos relacionamentos em todos os aspectos da vida.

O ser humano está em constante movimento e mudança. Aquele que reconhece que necessita melhorar pessoal e profissionalmente possui um dos melhores diferenciais competitivos e se torna diferente e mais produtivo a cada dia.

O desenvolvimento de soft skills é um exercício a ser feito diariamente e abaixo seguem algumas dicas de como praticar:

  • Autoconhecimento

Conhecer a si mesmo é uma ótima forma de entender aquelas habilidades que necessitam melhorar.

Fazer uma série de perguntas a si mesmo e responder honestamente pode ajudar muito. Por exemplo:

  • Eu aceitei bem as últimas mudanças que ocorreram no projeto? Minha atitude foi correta quando tal mudança ocorreu?
  • Eu me adaptei à realidade da minha equipe para trabalhar com harmonia?
  • Estou tentando aprender novas tecnologias e me aprofundando no que eu já sei?
  • Eu estou cumprindo os prazos e sabendo priorizar minhas tarefas? Estou entregando um trabalho que os outros vão entender?
  • Estou ajudando meus colegas de equipe a alcançar o resultado esperado? Estou aceitando as dificuldades e limitações deles?

É provável que algumas dessas respostas seja “não”. Não tem problema. É o objetivo dessa autoavaliação tentar encontrar pontos onde é necessário trabalhar e melhorar.

Mas se todas as respostas foram “não”, atenção! Pode ser que haja algum fator de desmotivação muito grande (com o projeto, com as pessoas, com a área de atuação) e isso precisa ser entendido para tomar a melhor decisão para a carreira.

Lembre-se que humanos são falhos e precisam constantemente melhorar e se corrigir. Não adianta esperar de si mesmo um comportamento impecável.

  • Feedbacks

Após uma autoavaliação, pedir e ouvir feedbacks dos pares e superiores também é enriquecedor.

Mas dar um bom feedback também é uma habilidade. O propósito deve ser sugerir pontos positivos ou de melhoria sem ressaltar apenas os defeitos, sem magoar e sempre buscando uma construção e não destruição da confiança profissional.

Saber ouvir um feedback também é uma habilidade, seja um elogio ou uma crítica. Compreender uma crítica e analisar se ela é real ou não, e se colocar numa posição humilde e resiliente para aceitar as deficiências reportadas é necessário. E também se deve entender que podemos não conseguir identificar um problema em nós mesmos, por isso é fundamental estar com a mente aberta para analisar o que os outros falam.

Manter feedbacks é um questão cultural nas empresas, portanto pode não ser um hábito em todos os ambientes. Caso não seja, pedir opiniões ou fazer reuniões com esse intuito, com uma certa frequência, pode ser uma alternativa.

  • Buscar materiais de estudo e auxílio externo

Materiais certamente não faltam. Existem milhares de blogs, artigos, vídeos e livros que podem ser consultados gratuita e facilmente na internet, basta digitar algo assim no Google: “como ser resiliente no trabalho”, “como ser autodidata” e por aí vai. Existem também muitos livros, vários best-sellers sobre o desenvolvimento de habilidades, é só entrar numa livraria e é possível achar vários logo na entrada.

Se são habilidades mais difíceis para desenvolver sozinho, busque ajuda. Peça a um colega ou superior que te ajude a ser mais organizado, que te avise quando você for pouco flexível no dia-a-dia.

Ainda é possível contar com a ajuda de vários profissionais especializados como psicólogos, coaches profissionais e mentores que podem trazer algum direcionamento e exercícios para desenvolver tais habilidades.

O que acha dessas habilidades sugeridas? Tem mais alguma importante para um desenvolvedor que não entrou na lista? Deixe suas opiniões nos comentários!

Referências:

NaPratica.org – O que são soft skills e como desenvolvê-las para crescer na carreira

FastCompany – How To Know Which Skills To Develop At Each Stage Of Your Career

Exame VocêRH – Depois da carreira em Y, empresas adotam a carreira em W