1.6 O profissional engenheiro de software
"A Engenharia de Software tem por objetivo apoiar o desenvolvimento profissional de software.” (SOMMERVILLE, 2011)
Para Sommerville (2011), as principais atividades da engenharia de software são: especificação de software, desenvolvimento de software, validação de software e evolução de software. Portanto, o profissional engenheiro de software deve estar preparado para executar todas essas atividades.
“Devemos continuar a educar engenheiros de software e a desenvolver a disciplina para podermos criar sistemas de software mais complexos.” (SOMMERVILLE, 2011)
Com a introdução de compiladores e linguagens como FORTRAN (1955) e COBOL, a programação se tornou mais acessível e independente do hardware físico, consolidando assim a profissão do desenvolvedor de software.
Os primeiros desenvolvedores de software eram, em sua maioria, matemáticos e engenheiros que aprenderam trabalhando diretamente com os primeiros computadores. Como ainda não existia educação formal em computação, eles desenvolveram suas habilidades por meio de experimentação, resolução de problemas e colaboração. Com o tempo, as universidades criaram programas formais, mas o aprendizado prático permanece essencial desde então.
Foi somente entre os anos de 1960 e 1970 que as universidades começaram a criar os primeiros cursos de ciências da computação e engenharia de software.
Curiosamente, muitos dos primeiros programadoras eram mulheres. Ada Lovelace é conhecida como a primeira programadora da história, ao criar um programa para a máquina analítica de Babbage. Além dela, outro nome importante na história da computação é o de Grace Murray Hopper, almirante e analista de sistemas da Marinha dos Estados Unidos nas décadas de 1940 e 1950, criadora da linguagem de programação de alto nível Flow-Matic, que serviu de base para a criação do COBOL, e uma das primeiras programadoras do computador Harvard Mark I em 1944.
Com o avanço dos softwares e o surgimento da Engenharia de Software, a figura do programador passou a assumir mais responsabilidades e funções. O programador está mais focado na implementação de código para resolver problemas específicos, enquanto o engenheiro de software aborda o desenvolvimento como uma disciplina de engenharia, considerando o sistema como um todo. Isso inclui decisões de arquitetura, escalabilidade, manutenibilidade e confiabilidade. Na prática, ambos programam, mas o engenheiro tem uma visão mais ampla e estratégica.
“Os engenheiros de software adotam uma abordagem sistemática e organizada para seu trabalho, pois essa costuma ser a maneira mais eficiente de produzir software de alta qualidade.” (SOMMERVILLE, 2011)
Como Valente (2019) destaca, Engenheiros de Software devem se comprometer em fazer a análise, especificação, projeto, desenvolvimento, teste e manutenção de software uma profissão benéfica e respeitada.
Bibliografia:
Marco Tulio Valente. Engenharia de Software Moderna: Princípios e Práticas para Desenvolvimento de Software com Produtividade, Editora: Independente, 2020.
SOMMERVILLE, Ian. Engenharia de software. 9. ed. São Paulo: Pearson Prentice Hall, 2011.