O que torna você um excelente engenheiro de software?
Você já ouviu falar na Conferência Internacional de Engenharia de Software IEEE/ACM ?
Trata-se de uma conferência internacional de alto nível sobre engenharia de software. Essa conferência reúne pesquisadores, profissionais e estudantes de todo o mundo para discutir os últimos avanços em engenharia de software. Os participantes apresentam seus trabalhos de pesquisa, discutem as tendências atuais do setor e compartilham suas experiências.
Em 2015, na 37ª conferência, foi apresentado um estudo sobre o que torna um engenheiro de software excelente. E já na introdução da pesquisa fala-se sobre todo mundo querer um grande profissional, mas na realidade ninguém saber exatamente o que torna alguém um “grande engenheiro de software”.
“Os empregadores desejam contratar e reter grandes engenheiros, as universidades desejam formar grandes engenheiros e os jovens engenheiros desejam se tornar grandes” salienta o estudo. Mas quais são as características que definem esse perfil de profissional?
Foram realizadas 59 entrevistas com engenheiros de softwares experientes, alguns com mais de 25 anos de carreira, buscando trazer especificidade, amplitude e rigor sobre essa questão. E eles responderam as seguintes perguntas:
- Quais são os atributos de grandes engenheiros de software?
- Por que esses atributos são importantes para a engenharia de software?
- Como esses atributos se relacionam entre si?
Baseado nas respostas, a pesquisa definiu 53 atributos dos grandes engenheiros de software, e nós trouxemos 5 de cada categoria para você ficar por dentro.
Atributos relacionados à personalidade (5 de 18)
1- Aperfeiçoamento
Não se satisfaz com o status quo: busca constantemente melhorar a si mesmo, seu produto e/ou seu entorno. Ninguém começa ótimo, mas é preciso se aperfeiçoar, nunca será excelente quem se acomoda e não busca aprendizado contínuo.
2- Paixão
Grandes engenheiros são apaixonados. Intrinsecamente interessados na área em que estão trabalhando, e não apenas por recompensas como dinheiro. Os profissionais entrevistados sentiam que a engenharia de software exigia uma forte conexão entre a paixão de uma pessoa e o projeto para obter alta qualidade.
3 – Mente aberta
É preciso ter a mente aberta, disposta a permitir que novas informações mudem sua maneira de pensar, com bom senso. Não tomando o entendimento atual como imutável. A única coisa constante é a mudança.
4 – Tomador de risco
Disposto a entrar em áreas de alto valor, mesmo que não tenha conhecimento ou experiência (por exemplo, novas tecnologias).
5 – Adaptável
Adaptando-se às mudanças em seu ambiente, incluindo mudanças no que fazem (por exemplo, o produto de software) e como o fazem (por exemplo, pessoas, processos e ferramentas).
Atributos de tomada de decisão (5 de 9):
1 – Conhecedor de pessoas e da organização
Isso inclui estar informado sobre as responsabilidades, conhecimentos e tendências dos colegas de trabalho. Você precisa se certificar de estar ciente do quadro geral, saber onde você se encaixa e como interage com todos os outros para otimizar o seu trabalho.
2 – Enxerga a floresta e as árvores
O que significa que considera situações em vários níveis, incluindo detalhes técnicos, tendências do setor, visão da empresa e necessidades do cliente/negócio.
3 – Lida com complexidade
Capaz de compreender e raciocinar sobre ideias complexas e interrelacionadas.
4 – Conhecimento dos clientes e do negócio
Entendimento do papel que seu produto de software desempenha na vida de seus clientes e da proposta de negócio que isso implica.
5 – Conhecimento dos processos de engenharia
Habilidoso em boas práticas para construir o produto: seu propósito, como fazê-las com eficácia e seu custo em tempo e esforço.
Atributos referentes às interações com os colegas de equipe (5 de 17)
1 – Cria sucesso compartilhado
Possibilita o sucesso de todos os envolvidos.
2 – Honesto
Verdadeiro, ou seja, sem adoçar ou distorcer a situação em benefício próprio ou em detrimento do outro.
3 – Integra contextos
Integra diferentes contextos em seu próprio entendimento, incluindo perceber e questionar lacunas e incongruências.
4 – Educado
Trata os outros com respeito, não é arrogante sobre seu título, elogios ou conhecimento.
5 – Adquire contexto
Adquire conhecimento e contextos de outras pessoas de forma eficaz ou seja, aprende com o outro e sabe no que os outros estão trabalhando.
Atributos técnicos de desenvolvimento de software (5 de 9)
1 – Elegante
Desenvolvem software/design simples e intuitivo (ou seja, não complexo) que outros possam entender.
2 – Criativo
Trazem soluções inovadoras baseadas na compreensão do contexto, soluções existentes e suas limitações.
3 – Antecipa necessidades
Produz software que acomoda necessidades e problemas prováveis com base no conhecimento contextual.
4 – Atento aos detalhes
Prestando atenção aos detalhes de codificação durante o desenvolvimento, incluindo tratamento de erros, consumo de memória, desempenho e estilo.
5 – Ajustado
Designs pensados que levam o contexto em consideração. Sabem exatamente como deve funcionar o código e analisam se alguma alteração afetará outro ponto do seu funcionamento.
Resumindo, grandes engenheiros de softwares foram definidos por engenheiros experientes como pessoas apaixonadas por seus trabalhos e em constante aprimoramento, que desenvolvem e mantêm habilidades práticas de engenharia de software, além de ter um bom entendimento de sistemas e arquiteturas complexas. Também foi destacada a importância de habilidades interpessoais, como a capacidade de se comunicar efetivamente, colaborar com eficiência e liderar com sucesso.
E válida para qualquer profissão na tecnologia, a importância de ser um aprendiz vitalício também foi enfatizada. Grandes engenheiros buscam constantemente novos conhecimentos e habilidades, adaptando-se a novas tecnologias e tendências.
Lembrando que não possuir qualquer destas características não te torna um péssimo profissional, a pesquisa é sobre como é a percepção de profissionais mais experientes em relação aos engenheiros acima da média. E se você ficou curioso e quer ler o estudo completo, acesse o link abaixo.
https://faculty.washington.edu/ajko/papers/Li2015GreatEngineers.pdf