Engenharia de software é ficção científica virando realidade, muitas funções consideradas habituais hoje em dia, seriam, facilmente, roteiros de filmes há 20 ou 30 anos. Ainda mais, com os avanços da inteligência artificial e outros artifícios responsáveis por inovações cada vez mais rápidas.
Na busca de compreender melhor os desafios e a rotina dos engenheiros de software, conversamos com Andrés Meza-Escallón, líder em inovação e automação na Grydd, sistema operacional desenvolvido para o setor da cadeia de abastecimento.
Veja entrevistas sobre outras profissões.
Veja o que descobrimos!
Tópicos deste artigo
Escolha de se tornar engenheiro de software
Andrés nos conta que sempre foi fascinado com ficção científica, principalmente, quando o assunto era o controle de máquinas. A aparição dos computadores em tramas de novelas, desenhos animados e histórias em quadrinho deixava Andrés com aquela pulga atrás da orelha “Como será que isso funciona na realidade?'”.
Quando chegou ao colégio teve a oportunidade de aprender as bases da programação. Por essas razões, quando foi a sua vez de decidir qual curso fazer na universidade, optou por engenharia de software. Ele declarou:
“Essa foi a ideia o que eu gostava e, de fato, poder aprender a controlar máquinas que, naquele momento, para mim parecia magia. Pois, dar ordens a um objeto inanimado para que ele pudesse se mover por conta própria, isso me parecia magia e continua parecendo, em alguns aspectos” (traduzido do espanhol)
Rotina de um engenheiro de software
Andrés lidera uma equipe encarregada de construir ferramentas e soluções que utilizem Inteligência Artificial, machine learning (aprendizado de máquinas), aprendizagem automática, entre outros recursos tecnológicos. Ele conta que seu dia começa com uma reunião geral com a empresa em que se compartilham os objetivos e os feitos da semana.
Então, ele, verifica se sua equipe tem alguma dúvida pendente e começam a trabalhar no desenvolvimento de projetos. Eles também se encontram com os clientes da empresa para saber quais as demandas eles enfrentam.
A partir daí, desenvolvem as soluções necessárias. Sobre a função de um engenheiro de software, Andrés disse:
“Um engenheiro de software cria soluções analíticas, busca fórmulas, algoritmos, busca algum tipo de programa que possa resolver o problema de maneira satisfatória. Então, se senta e realiza a programação” (traduzido do espanhol)
Não pare agora… Tem mais depois da publicidade 😉
Ele também afirma que boa parte do trabalho está no planejamento e em identificar qual o problema real. Após programar a soluções, eles ainda realizam testes em softwares específicos e desenvolvidos para isso, a fim de ter certeza que o trabalho está correto.
Andrés também diz que, às vezes, mesmo após a implementação final, são necessários alguns ajustes. Pois, é possível que nem todos os desafios tenham sido apresentados na primeira solicitação.
Características de bons engenheiros de software
Curiosidade, essa foi a primeira característica que Andrés citou para definir um bom engenheiro de software. Ele explica:
“Pode ser que os clientes digam que querem algo, mas, na verdade, não sabem o que querem. Mais ou menos, quando você vai ao médico, você diz onde dói, mas, não diz qual remédio ou cirugia ele deve prescrever, isso é decisão do médico. No nosso negócio, isso acontece muitas vezes.” (traduzido do espanhol)
Ele explica que o engenheiro de software deve ouvir quais são os problemas que o cliente têm e não quais soluções ele quer implementar. Afirma também que esta é a hora de ser bem crítico e curioso, para se ter certeza que você compreende o problema.
Dicas para se tornar engenheiro de software
Andrés revela que não é necessário um diploma para começar uma carreira no mundo dos softwares, ele diz que é desejável, mas não indispensável. Quando buscam alguém para integrar a equipe, primeiro, procuram pessoas com experiência, não necessariamente profissional. Por exemplo, candidatos que tenham desenvolvido projetos por conta própria.
Ele conta uma história para exemplificar melhor:
“Uma pessoa diz: “tenho uma tia que vende coisas em sua tenda e eu desenvolvi um sistema para ajudá-la co suas contas diárias”. Já penso, esta é uma pessoa que ouve o problema dos outros e apresenta soluções por conta própria”(traduzido do espanhol)
Ele diz que esse pensamento analítico é essencial para se tornar engenheiro de software. Pois, depois que se compreende o problema por completo, é mais fácil desenvolver o código que irá resolvê-lo.
Com os avanços da inteligência artificial e o possível surgimento de máquinas capazes de criar programações por si mesmas, a habilidade de compreender os problemas por parte dos engenheiros de software se torna cada vez mais importante.
Por fim, Andrés faz uma mais uma analogia com a profissão de médico e diz que é necessário sempre atacar a causa do problema e não os sintomas.
Por Tiago Vechi
Jornalista