fbpx

10 nov
O que são “Soft Skills” e como elas interferem na Engenharia de Software?

Artigo escrito pelo professor da Escola de Tecnologia Aplicada Carlos Futino

Habilidades

A formação profissional em qualquer área, inclusive na de Engenharia de Software, diz respeito a adquirir novas habilidades. Seja através de aulas, estudos individuais ou atividades profissionais, o profissional que deseja ter sucesso deve estar o tempo todo se aprimorando, e isso significa aprender habilidades novas ou melhorar o domínio que se tem das habilidades já possuídas.

Sempre que se aprende uma nova linguagem, uma nova técnica de levantamento de requisitos, uma nova tecnologia de bancos de dados ou uma nova tecnologia, estamos adquirindo ou melhorando habilidades técnicas. Cada profissional vai desenvolver suas habilidades conforme a área da engenharia a que vai se dedicar. Dessa forma, um engenheiro de testes vai desenvolver habilidades ligadas a técnicas e ferramentas de testes de software, enquanto um programador vai desenvolver habilidades ligadas a algoritmos e linguagens de programação.

Essas habilidades, de caráter técnico, são indispensáveis para o andamento da carreira de qualquer engenheiro de software. Nenhum profissional conseguirá desenvolver um trabalho de qualidade se não for capaz de realizar as tarefas inerentes ao trabalho. As habilidades técnicas, ligadas à natureza do trabalho de Engenharia de Software em si são conhecidas como “Hard Skills”, que pode ser traduzido de forma literal como habilidades rígidas.

Enquanto para tornar-se um profissional de sucesso é necessário que o indivíduo possua um conjunto robusto de “Hard Skills”, é preciso lembrar que a Engenharia de Software é um trabalho com grandes características sociais. O engenheiro de software não é um eremita que cria sistemas do nada. Softwares existem para resolver problemas de clientes, com quem o engenheiro terá que se relacionar, e são geralmente desenvolvidos por equipes multidisciplinares, o que também exige bastante relacionamento interpessoal.

Dessa forma, além de habilidades técnicas, o bom engenheiro de software precisa contar com uma série de habilidades sociais e interpessoais. Habilidades que dizem respeito a como cada pessoa reage a situações, como ele lida com outras pessoas e como ela lida com o trabalho em si. Um profissional de qualidade deve, por exemplo, demonstrar capacidade de comunicação, planejamento e negociação.

Essas habilidades, de caráter não-técnico, parecem, à primeira vista, menos necessárias que as “Hard Skills”. Afinal, é mais importante que o programador saiba programar do que que ele saiba comunicar-se com os colegas. Embora essa noção não esteja de todo errada (um programador que não sabe programar não é um programador), também está muito longe de estar correta. Mesmo profissionais com grande capacidade técnica vão ter capacidade reduzida se não souberem, por exemplo, trabalhar em equipe. As habilidades de natureza social são conhecidas como “Soft Skills”, ou habilidades flexíveis, em uma tradução literal.

Por que focamos mais em “Hard Skills”?

Se observarmos os currículos de engenheiros de software; as grades curriculares da maior parte dos cursos da área; a forma como a maioria dos profissionais da área se apresenta ou mesmo os requisitos de grande parte das ofertas de emprego ou estágio, veremos um foco muito maior em “Hard Skills “e pouca atenção às “Soft Skills”. Caso peçamos para qualquer engenheiro de software elencar quais suas habilidades, a maioria listará apenas habilidades técnicas. Por que isso acontece?

Para começar pelo óbvio, “Hard Skills” nos definem profissionalmente. Se um determinado profissional indica que tem várias habilidades na área de bancos de dados e Business Intelligence, é bem provável que ele será um bom engenheiro de dados. A área da engenharia em que temos condições de produzir melhor é definida pelas habilidades técnicas que mais dominamos.

Existem, no entanto, outros motivos. Primeiro, “Hard Skills” são mais fáceis de serem provadas ou verificadas. Em segundo lugar “Soft Skills” são mais difíceis de desenvolver. Observemos esses itens individualmente.

“Hard Skills” são mais fáceis de demonstrar ou verificar

Como demonstrar para um colega ou um potencial empregador domínio de uma determinada habilidade técnica? Existem diversas formas. Podemos apresentar certificados de cursos ou certificações em testes da área. Podemos também simplesmente demonstrar nossas habilidades na prática.

Por exemplo, caso um engenheiro queira demonstrar que está habilitado para programar em Java, ele tem algumas opções:

1. Pode apresentar um certificado de curso em programação Java por uma instituição de treinamento reconhecida no mercado.
2. Pode apresentar sua certificação Oracle Certified Associate, Java SE 8 Programmer.
3. Pode simplesmente implementar um programa em Java, demonstrando assim sua capacidade de fazê-lo.

Da mesma forma, um potencial empregador que queira verificar se um candidato tem uma “Hard Skill” necessária, pode simplesmente pedir que ele demonstre possuir essa habilidade, utilizando qualquer uma das formas já citadas. Pode ainda fazer perguntas ou questionários para verificar o conhecimento do candidato.

Por outro lado, “Soft Skills” não podem ser verificadas de forma tão simples. Não existem autoridades certificadoras de iniciativa ou ética, por exemplo. E o fato de um engenheiro ter sido aprovado em um curso de, digamos, raciocínio lógico, não garante que ele tenha essa habilidade.

Da mesma forma, demonstrações de “Soft Skills” são muito complexas de serem analisadas. A maioria das habilidades não técnicas não podem ser facilmente avaliadas em curtos períodos, como uma entrevista de emprego, por exemplo. Na verdade, a maioria das “Soft Skills” podem ser convincentemente simuladas em espaços de tempo pequenos. Não é difícil para um candidato, por exemplo, fingir que tem ótimas habilidades de cooperação por alguns dias, mas se isso não é real ele não conseguirá manter a imagem indefinidamente.

Para verificação rápida de “Soft Skills”, as técnicas provavelmente mais eficientes são perguntas bem-feitas e observação das reações dos candidatos diante das perguntas ou em dinâmicas. Perguntas diretas, no estilo “Você se considera um profissional inovador?” não costumam dar bons resultados, visto que o candidato geralmente dará a resposta que se espera ouvir. As perguntas devem ser direcionadas a como o profissional trabalha e como ele resolveria ou resolveu situações que exigiam as “Soft Skills” desejadas, ou direcionadas a provocar reações específicas no candidato. Dinâmicas devem colocar os candidatos em situações que exigem as habilidades necessárias, para que se possa observar de forma simples como os candidatos se comportam.

Esses métodos, no entanto, são bem menos precisos e, portanto, bem menos eficazes do que os métodos de avaliação de “Hard Skills”.

“Soft Skills” são mais difíceis de desenvolver

O processo de aquisição ou melhoria de habilidades é conhecido como “desenvolvimento de habilidades”. Como podemos desenvolver “Hard Skills” e “Soft Skills”? “Hard Skills” podem ser desenvolvidas através de aulas, treinamentos, cursos e outras técnicas tradicionais. O aprendizado de uma nova linguagem pode se dar simplesmente pela leitura de manuais e tutoriais. Embora não seja necessariamente fácil, existem técnicas específicas e conhecidas que nos permitem desenvolver essas habilidades.

“Soft Skills” por outro lado são mais complexas de desenvolver. Embora existam cursos, palestras e outras atividades voltadas para o desenvolvimento dessas habilidades, a eficácia delas é menos previsível do que com atividades tradicionais. Atividades de coaching, por exemplo, podem ter efeito muito positivo para algumas pessoas, enquanto resultado praticamente nulo para outras.

Além disso, “Soft Skills” têm impacto muito maior da personalidade do profissional. Um engenheiro de software tímido, por exemplo, pode ter dificuldade de absorver ou demonstrar capacidade de liderança. Isso pode, ainda, tornar o profissional resistente a desenvolver certas habilidades, visto que envolve lidar com limitações da própria personalidade. Pessoas com autoimagem exacerbada podem, por exemplo, ter problemas para resolver conflitos e se recusarem a entender que isso seja um problema.

“Soft Skills” importantes e seu impacto na engenharia desoftware

Por ser uma atividade social, várias “Soft Skills” têm alto impacto no trabalho do profissional de software. A importância de cada habilidade é subjetiva e variável.

Vários estudos podem ser encontrados sobre as “Soft Skills” mais importantes no mercado de Tecnologia da Informação. Um artigo de Gerardo Matturo analisa as habilidades mais pesquisadas na academia, enquanto trabalhos de Faheem Ahmed e Abigail Sanders analisam as habilidades mais requeridas no mercado. Apesar de terem abordagens e metodologias diferentes, os trabalhos encontram algumas “Soft Skills” em comum entre as mais citadas.

Observemos essas habilidades e suas características individualmente:

Habilidades de Comunicação

Em qualquer função que o engenheiro de software assumir, a comunicação com colegas de equipe ou clientes será extremamente necessária para completar o trabalho. O profissional precisa discutir problemas e soluções com os demais membros da equipe, negociar distribuição de tarefas com gerentes e, dependendo da função, discutir as necessidades dos clientes com eles.

Assim, a habilidade de expressar ideias de maneira clara e, preferencialmente, concisa, seja oralmente ou por escrito, é vital para manter um bom trabalho em equipe e um bom levantamento de requisitos. Habilidades de comunicação podem ser desenvolvidas através da leitura e de cursos de redação e oratória.

Trabalho em Equipe

O desenvolvimento de software é comumente um trabalho coletivo. Em atividades assim, o trabalho de cada membro depende do trabalho e da atitude de outros membros da equipe.

Dessa forma, o engenheiro de software deve ter a capacidade de trabalhar de forma efetiva como membro da equipe e colaborar com os colegas para alcançar os objetivos do projeto.

Habilidades de trabalho em equipe podem ser desenvolvidas na prática, participando de diversos projetos. Pode, também, ser desenvolvida através de cursos ou atividades de coaching.

Vale ressaltar que a habilidade de trabalho em equipe é altamente influenciada pela personalidade do profissional. Por isso, pode estar entre as mais complexas de se desenvolver.

Habilidades Interpessoais

Habilidades interpessoais, às vezes chamadas de competência social, são as habilidades que usamos no dia a dia ao interagir com outras pessoas. São características como empatia, respeito e civilidade, entre outros.

Essas habilidades são claramente importantes em qualquer área de trabalho, em especial nas áreas que envolvem grande interação social. Dessa forma, engenharia de software, sendo um trabalho social, é altamente afetada por elas.

Não é difícil ver como a capacidade de interagir com outros pode interferir no trabalho do engenheiro. Manter um bom relacionamento com superiores, colegas e clientes é indispensável para o bom andamento dos projetos de software.

Habilidades interpessoais são, provavelmente, as mais intimamente ligadas à personalidade do profissional. Assim, podem ser bastante difíceis de desenvolver.
Algumas pessoas chegam a dizer que essas habilidades são inatas, mas isso não é de todo verdade. Embora uma parte importante do desenvolvimento delas se dê antes da vida profissional, na infância e juventude, é possível desenvolvê-las na vida adulta. Isso geralmente envolve reflexão pessoal e pode ser auxiliado por psicólogos ou coachees.

Solução de Problemas

Desenvolvimento de software envolve encontrar e resolver problemas, sejam os problemas do cliente resolvidos pelo produto, os problemas de desenvolvimento surgidos durante o projeto, ou mesmo os problemas internos da equipe.

Por isso, o engenheiro de software deve ser capaz de localizar problemas e a estudá-los de forma crítica e analítica, levando assim a sugestão de possíveis soluções. Deve, também, ter a capacidade de avaliar diferentes soluções para poder escolher a melhor proposta possível.

Para desenvolver habilidades de solução de problema deve-se exercitar o raciocínio lógico, em especial o raciocínio analítico. Existem diversas atividades que permitem exercitar seu raciocínio, desde atividades formais até mesmo alguns jogos de lógica.

Essa também é a “Soft Skill” que mais pode ser ajudada por ferramentas. Aprender a lidar com ferramentas de decisão, como mapas mentas ou diagramas de fluxo podem auxiliar bastante na capacidade do profissional. Vale ressaltar que o conhecimento dessas técnicas e ferramentas conta como uma “Hard Skill”, fazendo da solução de problemas uma “Soft Skill” que pode se valer de “Hard Skills” para sua aplicação.

Conclusão

Assim, podemos observar que é importante estudar e desenvolver “Soft Skills” da mesma forma que se desenvolvem as “Hard Skills”. Vimos também que essas habilidades podem se apresentar mais difíceis de desenvolver e exigir esforços diferentes dos que a maioria dos profissionais de Engenharia de Software está acostumado.

Deixe um comentário

Seja o Primeiro a Comentar!

avatar

Compartilhe com um amigo

Tags

Está com dúvidas?
Estamos aqui pra ajudar! Envia um e-mail ou chama no whatsapp: (86) 3133-7070
Entrar em contato!
© 2017 iCEV Instituto de Ensino Superior
Esse domínio pertence ao Grupo Educacional Superior CEV
CNPJ: 12.175.436/0001-09