O que faz excelentes profissionais de engenharia de software?

Neste artigo você vai ver:

Em algum momento de sua trajetória você já deve ter se perguntado: o que faz as pessoas serem excelentes profissionais de engenharia de software? Quais são as características que esse indivíduo deve ter?

Muitas vezes as respostas para essas perguntas podem ser vagas como saber codar, se comunicar e trabalhar em equipe

Ora, se eu não sei definir bem quais são as características de excelentes profissionais, como posso formar essa pessoa? Como posso exigir habilidades que nem eu sei quais são? 

Nós podemos ter ferramentas, processos bem definidos, linguagens de programação de alta performance… Mas muitas vezes esquecemos do básico: quem desenvolve software são pessoas. Nada disso funcionará se as pessoas não tiverem habilidades para desempenhar o seu papel.

Baseado nessa inquietação, foi desenvolvido o estudo “What Makes A Great Software Engineer?”, que busca entender principalmente: “O que especialistas em engenharia de software acham que são atributos de excelentes profissionais da área?

Este post de blog é uma releitura desse artigo e tem como objetivo responder a pergunta anterior. 

Se você gostou da ideia, já compartilhe nas suas redes sociais! ?

Como aconteceu o estudo?

Antes de começar a explicar o resultado é necessário entender brevemente como o estudo foi realizado. Uma equipe de pesquisa entrevistou 59 pessoas engenheiras de software de diferentes divisões de uma empresa gigante de tecnologia.

Vale salientar que todas elas possuíam larga experiência com desenvolvimento de software e foram consideradas especialistas por pares. Em inglês, seus cargos eram: 

  • SDE  II
  • Senior  SDE 
  • Senior  Dev  Lead, Architect  
  • Technical  Fellow 
  • Partner  Dev  Manager
  • Partner  Dev   Lead,  Principal  Dev  Lead
  • Senior   Dev  Manager
  • Principal  SDE

Além disso, trabalhavam em grandes projetos de desenvolvimento, por exemplo: 

  • um buscador;
  • um pacote de escritório;
  • um sistema operacional;
  • um videogame;
  • ferramentas;
  • entre outros. 

Muitos dos atributos são aplicáveis a profissões e alguns simplismente são qualidades de uma boa pessoa. O objetivo foi identificar, dentre todos os atributos possíveis, o conjunto que especialistas consideram importante para a engenharia de software.

Resultados

A análise do artigo encontrou um conjunto de 53 características que fazem parte de excelentes profissionais de engenharia de software. Neste artigo, vamos apresentar as que mais chamaram a atenção.

No entanto, a lista completa poderá ser conferida no artigo, assim como a descrição de cada característica com um exemplo. 

  1. Atributos da personalidade 

Foram encontrados um total de 18 atributos de personalidade (para observar todos os fatores, ver Tabela 2 do artigo original, página 4). Um detalhe dessas características é que, para a equipe de pesquisa, elas são formadas por atributos que são intrínsecos às pessoas, e, portanto, são resultado de suas experiências, educações e compartilhamento de vivências, difíceis de serem alterados.

A seguir, três características que vamos destacar:

Pessoas que buscam melhorias

Quem participou descreveu excelentes profissionais como pessoas que não se conformam com o status quo e constantemente procuram melhorar a si mesmas, seus produtos e/ou seu entorno.

Paixão pela área

As pessoas entrevistadas descreveram também a paixão pela área em que estão trabalhando como ponto positivo, quer dizer, não buscam somente por recompensas, como dinheiro. 

Aqui vale ressaltar que não tem problema em buscar recompensas, o ponto é realmente gostar do que está fazendo. 

Mente aberta

Também descreveram boas pessoas engenheiras como indivíduos de mente aberta, que permitem que novas informações mudem sua maneira de pensar, não tomando o entendimento atual como algo que nunca pode mudar. 

Além desses fatores, outros interessantes foram encontrados, como: 

  • orientação a dados;
  • ser indivíduo sistemático;
  • produtividade;
  • perseverança;
  • trabalho duro (dedicação); 
  • curiosidade; 
  • adaptabilidade; 
  • foco; 
  • etc.
  1. Atributos de tomada de decisão

A tomada de decisão é outra categoria criada durante a produção do artigo. Foram encontrados 9 atributos da capacidade de decisão de pessoas engenheiras (para ver toda a lista, observar a Tabela 3 do artigo, página 5). 

Foi observado que pessoas excelentes em Engenharia de Software eram reconhecidas por colegas e tinham uma excelente capacidade de sintetizar o contexto atual e apresentar boas alternativas de decisão

Inclusive, percebeu-se que não é só ter bom conhecimento teórico ou prático, mas é essencial buscar entender como as decisões acontecem em situações do mundo real. 

Profissionais excelentes não apenas sabiam o que deveria acontecer, mas também o que poderia e provavelmente iria acontecer.

A seguir, algumas características destacadas:

Conhecimento sobre as pessoas e a organização

Quem concedeu entrevista descreveu grandes profissionais como quem conhece as pessoas e a organização. 

Nesse sentido, boas pessoas engenheiras de software devem ter domínio sobre responsabilidades, conhecimentos e tendências de colegas de trabalho. Isso é mais uma evidência em relação à importância do conhecimento em equipe.

Um exemplo é saber quem tem determinado conhecimento, o que permite que excelentes profissionais encontrassem as pessoas certas para obter ajuda, geralmente especialistas de domínio, auxiliando assim o seu conhecimento e crescimento na carreira. 

Capacidade de ver a floresta e as árvores

Este é um conceito um pouco mais amplo que será simplificado neste post de blog. Você pode conferir esse conceito em sua citação original

O que o conceito significa, de forma simples, é a capacidade das pessoas de acompanhar simultaneamente as estruturas complexas (o todo) e os detalhes mais sutis. 

Para as pessoas entrevistadas, excelentes profissionais de engenharia de software consideram situações em vários níveis de abstração, incluindo detalhes técnicos, visão da empresa e necessidades de clientes e negócios.

Capacidade de atualizar seus modelos mentais

De acordo com os resultados, acredita-se que profissionais de engenharia de software atualizam continuamente seus modelos mentais em todos os níveis de abstração, avaliando sempre as mudanças em seu contexto.

Aqui vai mais uma citação ao nosso artigo sobre conhecimento em equipe. Vale a pena conferir!

A lista completa pode ser vista no artigo, aqui destacamos: 

  • saber lidar com a complexidade;
  • conhecimento técnico do domínio; 
  • conhecimento dos processos de engenharia de software. 
  1. Atributos de trabalho em equipe

A próxima categoria de características está relacionada com as interações das pessoas engenheiras de software com colegas de equipe. 

Foram observados 17 atributos (que podem ser vistos na Tabela 4 do artigo principal, página 7). Para quem concedeu entrevista, excelentes profissionais impactam positivamente a equipe. A seguir, destacamos três dessas características:

Capacidade de criar contexto compartilhado

Excelentes devs de software são capazes de moldar a compreensão de outra pessoa da equipe sobre uma determinada situação. A equipe de pesquisa afirmou que esse é um dos aspectos mais importantes de “comunicar-se efetivamente”. 

Capacidade de criar sucesso compartilhado

Boas pessoas engenheiras de software são capazes de fazer com que todos os indivíduos da equipe tenham sucesso. 

Excelentes profissionais seriam capazes de captar as necessidades pessoais da sua equipe e fazer com que andem lado a lado com as necessidades da organização e do time, maximizando assim os resultados. 

Capacidade de criar um porto seguro

A equipe de pesquisa afirmou que pessoas boas engenheiras de software buscam criar um porto seguro, onde colegas podem aprender e melhorar com erros e situações sem consequências negativas individualmente e para a equipe. 

Outras características foram encontradas, como: 

  • honestidade quanto suas ações;
  • facilidade de adquirir contexto;
  • capacidade de mentorar pessoas;
  • capacidade de ser um exemplo; 
  • ter boas reputação, etc. 

Inclusive, neste artigo sobre mentoria de carreira temos dicas e orientações para pessoas mentoras. 

  1. Atributos técnicos de desenvolvimento de software 

A próxima categoria de características está relacionada à produção de software. Todas as características podem ser vistas na Tabela 5 do artigo original, página 8. 

A seguir, confira três atributos:

Produzir código de maneira elegante

Participantes da pesquisa afirmaram que excelentes profissionais de engenharia de software produzem código de maneira elegante, ou seja, com design simples e intuitivo que outra pessoa possa entender facilmente. 

Criatividade

Profissionais de software também são pessoas criativas, quer dizer, possuem repertório para criar e compartilhar códigos sofisticados.

Capaz de antecipar necessidades

Excelentes engenheiros de software possuem alta capacidade de antecipar necessidades, fazendo com que seja fácil acomodar possíveis requisitos futuros não conhecidos. 

Outras características são: 

  • ter atenção aos detalhes; 
  • ser uma pessoa cuidadosa;
  • saber fazer bons trade-offs. 

Vale relembrar a live sobre “Boas práticas de programação”, que levamos no Zup Tech Hour. Assista hoje mesmo!

Conclusões

De maneira geral, o artigo comenta que pessoas boas engenheiras de software são:

  • Apaixonadas pelo que fazem;
  • Estão sempre buscando evoluir;
  • Desenvolvem e mantêm modelos de tomada de decisão baseados na teoria que estudaram e na sua experiência;
  • Buscam produzir software de maneira elegante, que são criativas e que antecipam necessidades de outras pessoas da área;
  • Fazem bem tradeoff;
  • Colegas de equipe confiam e gostam de trabalhar.

Importante ressaltar que não ter essas características não fazem você ser uma pessoa engenheira pior. Mas significa que devs acima da média percebem, de maneira geral, características citadas no artigo. 

Um outro ponto que vale destacar é que o artigo não garante que as pessoas possuem essas características. Isso significa que alguém pode perceber você como pessoa criativa e você não se achar ou ser assim. 

Esse conteúdo fez devs refletirem sobre sua rotina, produtividade e equipe, certo? Aproveite e compartilhe sua experiência nos comentários, queremos saber sua opinião sobre excelentes profissionais de engenharia de software.

Na imagem temos dois profissionais de engenharia de software de desenvolvimento de tecnologias juntos no escritório, em uma mesa de frente para o computador.
Foto de Danilo Monteiro Ribeiro
Software Engineering Researcher
Doutor em Ciência da Computação pela UFPE com foco em entender como melhorar o trabalho e a educação na Engenharia de Software usando a Psicologia.

Artigos relacionados

Este site utiliza cookies para proporcionar uma experiência de navegação melhor. Consulte nossa Política de Privacidade.