Skip to content

💻Origins & Evolution

Engenheiro de software · Escreve, testa e mantém o código que comanda a vida moderna – e é uma das primeiras profissões a observar a IA automatizar seu próprio trabalho diário.

Share

A engenharia de software é uma profissão incomumente jovem que usa uma ideia antiga. As pessoas vinham projetando procedimentos passo a passo a serem seguidos pelas máquinas desde a década de 1840, mas ninguém foi pago para ser um “engenheiro de software” até meados do século XX, e o título do cargo em si só foi proposto – de forma meio provocativa – em 1968.

A sua história passa por uma condessa que nunca viu o seu algoritmo funcionar, mulheres que reconectaram manualmente um computador do tamanho de uma sala, um oficial da Marinha que queria que as máquinas lessem inglês e uma conferência nos Alpes Bávaros que deu nome ao campo ao declarar que estava em crise.

Where it began

1843Londres, Inglaterra

Ada Lovelace, traduzindo um artigo de um engenheiro italiano sobre a Máquina Analítica não construída de Charles Babbage, acrescenta um conjunto de notas mais longas que o texto original. A última delas, a Nota G, descreve passo a passo como a máquina calcularia uma sequência de números – um algoritmo escrito para um computador que não existiria antes de mais um século, e o ponto que a maioria dos historiadores assinala como o nascimento conceptual da programação: a ideia de que as instruções de uma máquina poderiam ser concebidas, escritas e verificadas como algo separado da própria máquina.

Timeline

1843Ada Lovelace publica o primeiro algoritmo

Traduzindo um artigo italiano sobre a Máquina Analítica não construída de Charles Babbage, Lovelace acrescenta uma nota descrevendo passo a passo como a máquina calcularia os números de Bernoulli – geralmente citado como o primeiro programa de computador publicado.

1890Os cartões perfurados de Hollerith tabulam um censo

As máquinas de tabulação de cartões perfurados de Herman Hollerith processam o Censo dos EUA em cerca de um ano, trabalho que havia levado a contagem anterior quase oito anos à mão; sua empresa mais tarde se torna parte da IBM.

1943–1945Seis mulheres programam o ENIAC

Kay McNulty, Jean Jennings, Betty Snyder, Marlyn Wescoff, Fran Bilas e Ruth Lichterman programam o ENIAC do tamanho de uma sala na Universidade da Pensilvânia configurando interruptores fisicamente e conectando cabos, sem manual e sem linguagem de programação para guiá-los.

1952Grace Hopper conclui o primeiro compilador

O sistema A-0 de Hopper na Remington Rand traduz notação matemática simbólica em código de máquina automaticamente, substituindo a prática propensa a erros de copiar manualmente endereços de sub-rotinas - um ancestral direto de todos os compiladores desde então.

1957FORTRAN é enviado para o IBM 704

A equipe de John Backus na IBM lança o FORTRAN após cerca de dois anos de trabalho; dentro de dois anos, mais da metade de todo o código executado por máquina nos EUA está supostamente escrito nele.

1968Conferência da OTAN nomeia 'engenharia de software'

Numa conferência em Garmisch, na Alemanha Ocidental, os participantes tomaram deliberadamente emprestado o termo “engenharia de software” para argumentar que a construção de grandes programas necessita da mesma disciplina que a construção de pontes, enquadrando os excessos crónicos do campo como uma “crise de software”.

1969–1973Unix e C ganham forma no Bell Labs

Ken Thompson e Dennis Ritchie construíram o sistema operacional Unix em um PDP-7 sobressalente e depois o reescreveram na nova linguagem C de Ritchie em 1973 para que pudesse rodar em mais de um tipo de computador.

1981O IBM PC leva software para todas as mesas

O PC da IBM é lançado junto com o PC-DOS da Microsoft, transformando o software em um produto de consumo de massa quase da noite para o dia e consolidando a jovem empresa que Bill Gates e Paul Allen fundaram seis anos antes no Altair BASIC.

1991Linux e a World Wide Web chegam com meses de diferença

Linus Torvalds publica seu kernel de hobby na Usenet em agosto, chamando-o de “apenas um hobby, não será grande e profissional”; A World Wide Web de Tim Berners-Lee se torna pública no mesmo mês, e software aberto e compartilhado livremente se torna o padrão da Internet.

2021–2023IA passa para o editor de código

GitHub Copilot (2021) e ChatGPT (2022) trazem a geração de código de modelo de linguagem grande para uso diário; dentro de alguns anos, o GitHub relata que os usuários de sua própria ferramenta aceitam o código sugerido pela IA para uma grande e crescente parcela das linhas que mantêm.

The eras

Console do operador de um mainframe IBM System/360
ArnoldReinhold · CC BY-SA 3.0 · Wikimedia Commons
Décadas de 1950 a 1960

Mainframes e programação em lote

Os primeiros programas eram enviados como baralhos de cartões perfurados e executados em lotes, muitas vezes durante a noite, de modo que um único erro de digitação poderia custar ao programador um dia inteiro esperando pela próxima execução. Os matemáticos, e em grande número as mulheres, passaram da computação manual directamente para este novo trabalho de “programação”, uma vez que era visto como mais clerical e detalhista do que prestigioso. FORTRAN (1957) e COBOL (1959) tomaram conta nesta década, e a enorme dificuldade de construir grandes sistemas confiáveis ​​neste hardware criou a “crise de software” que a próxima era tentaria nomear e consertar.

Um minicomputador PDP-11, a máquina mais associada ao antigo Unix
Stefan_Kögl · CC BY-SA 3.0 · Wikimedia Commons
1969–1983

Unix, programação estruturada e uma disciplina ganham nome

Depois de a conferência da NATO de 1968 ter dado um nome aos problemas crónicos de orçamento e fiabilidade do campo, a década de 1970 produziu um diagnóstico e um conjunto de ferramentas: programação estruturada, testes disciplinados e Unix, um sistema operativo construído nos Bell Labs e reescrito na nova linguagem C para poder funcionar em mais do que uma máquina. Minicomputadores como o PDP-11 espalharam o poder computacional real para além de um punhado de salas de mainframe, e a “engenharia de software” começou a aparecer como um diploma universitário por direito próprio, em vez de um subcampo da matemática ou da engenharia elétrica.

Um computador pessoal IBM original de 1981
Own work (based on graphics by International Business Machines Corporation) · Public domain · Wikimedia Commons
1975–1990

Computadores pessoais e software em uma caixa

O kit Altair 8800 (1975) e depois o Apple II e o IBM PC (1981) transformaram o software de algo que as instituições encontravam em algo que uma família poderia comprar na prateleira. Uma indústria de software para consumidores em massa e pequenas empresas surgiu em torno de processadores de texto, planilhas e jogos, vendidos em caixas embaladas com uma política de devolução em vez de um contrato de suporte. O desenvolvimento em cascata, fortemente documentado, dominou os grandes projetos, mesmo quando as bordas da indústria – codificadores de quartos, hackers universitários – trabalhavam em algo mais próximo do estilo mais rápido e informal de hoje.

Tux, o pinguim mascote do sistema operacional Linux de código aberto
Larry Ewing , Simon Budig , Garrett LeSage · CC0 · Wikimedia Commons
1991–2005

A web, o código aberto e o ciclo pontocom

A World Wide Web e o kernel do Linux tornaram-se disponíveis publicamente com meses de diferença entre si, em 1991, e juntos provaram que o software desenvolvido abertamente, por voluntários que nunca se conheceram, poderia competir com qualquer coisa que uma empresa vendesse. O navegador criou um mercado de trabalho inteiramente novo quase da noite para o dia; esse mercado cresceu e, em 2000-2001, caiu espetacularmente, destruindo uma geração de startups, mas deixando para trás a Amazon, o Google e a infraestrutura sobre a qual a próxima era se basearia. O Manifesto Ágil (2001) formalizou uma reação contra o planejamento pesado e baseado em documentos em favor de ciclos mais curtos e iterativos.

Diagrama conceitual da infraestrutura de computação em nuvem
Sam Johnston · CC BY-SA 3.0 · Wikimedia Commons
2006 – presente

Cloud, DevOps e engenharia assistida por IA

O aluguel de um servidor por hora da Amazon Web Services (2006) eliminou um dos maiores custos fixos de execução de software, e as lojas de aplicativos deram aos engenheiros um segundo canal de distribuição, que prioriza os dispositivos móveis, quase simultaneamente. Git e GitHub (2005–2008) tornaram normal a colaboração distribuída na mesma base de código, mesmo entre estranhos, e os pipelines de implantação automatizados reduziram a lacuna entre a conclusão de uma alteração e sua execução na frente dos usuários de meses para minutos. No início da década de 2020, os assistentes de codificação de IA treinados em código público passaram de novidade a ferramenta diária para uma grande parte dos engenheiros profissionais – o mais rápido que um novo instrumento se espalhou pela profissão em sua história.

What this job replaced

Neighbouring trades that no longer exist — absorbed, automated or regulated away.

Computador humano

Décadas de 1750 a 1960

Muito antes das máquinas electrónicas, “computador” era um título profissional para uma pessoa – muitas vezes uma mulher – que realizava cálculos matemáticos à mão ou com uma calculadora mecânica: tabelas astronómicas, trajectórias de artilharia, trajectórias orbitais da NASA. Os computadores eletrônicos assumiram os cálculos a partir das décadas de 1950 e 1960 e, quando o trabalho desapareceu, já havia emprestado o nome à máquina.

Operador de teclado

Décadas de 1930 a 1980

Principalmente mulheres, as operadoras de digitação digitavam dados e até mesmo programavam o código-fonte em cartões perfurados em máquinas como a IBM 026 e 029, um cartão por linha de um programa. Terminais interativos e telas de vídeo permitiram que os programadores digitassem código diretamente no computador, e o trabalho desapareceu em uma geração.

Webmaster

1993–2000

Na primeira década da web, um 'webmaster' frequentemente projetava, codificava, escrevia a cópia e administrava um site inteiro - a palavra entrou nos dicionários em 1993 e obteve seu próprio endereço de e-mail reservado pelo padrão da Internet em 1997. À medida que os sites se tornavam complexos, a função se dividia em desenvolvedor front-end, desenvolvedor back-end, engenheiro de DevOps e editor de conteúdo, e 'webmaster' desapareceu das listas de empregos.

Trades that vanished →

Cada era nesta história termina da mesma maneira: chega uma ferramenta que elimina o trabalho manual em torno de que toda uma categoria de trabalho foi construída - cálculo manual, perfuração de cartões, agendamento em lote, provisionamento manual de servidores - e as pessoas que realizaram esse trabalho sobem na pilha ou seguem em frente.

Os engenheiros que estão lendo isto agora estão vivendo a próxima iteração desse ciclo, e não um primeiro encontro com ele. O resto deste perfil analisa o que, especificamente, isso significou até agora, e o que uma leitura razoável das evidências sugere vem a seguir.

Similar professions

Continue exploring

Keep exploring

More in Engineering & Technology

🤖

Pesquisador de IA

Projeta e testa os algoritmos por trás da inteligência das máquinas, em um campo que agora corre para automatizar uma parcela crescente de seu próprio processo de pesquisa.

AI-resistant 50
🛰️

Engenheiro Aeroespacial

Projeta, analisa e certifica as aeronaves, foguetes e espaçonaves que saem do solo, trabalhando com margens de segurança que não deixam margem para suposições.

AI-resistant 74
🌉

Engenheiro Civil

A profissão que transforma rios, rochas e gravidade em pontes, estradas e água limpa – o comércio silencioso e pesado da civilização desde Imhotep.

AI-resistant 72
🔌

Engenheiro de Semicondutores

Projeta e fabrica os transistores dentro de cada computador, telefone e arma, usando máquinas precisas o suficiente para que apenas algumas fábricas na Terra possam operá-las.

AI-resistant 60
🦾

Engenheiro de Robótica

Projeta as máquinas que sentem, decidem e agem no mundo físico, onde o problema difícil nunca foi a inteligência, mas o próprio mundo.

AI-resistant 65
🔐

Especialista em segurança cibernética

Protege sistemas, dados e pessoas, encontrando, prevenindo e respondendo a ataques digitais.

AI-resistant 63
📦

Engenheiro MLOps

Constrói os sistemas que treinam, implantam, monitoram e controlam modelos de aprendizado de máquina em produção.

AI-resistant 54
🌬️

Engenheiro de Energia Renovável

Projeta, constrói e melhora sistemas eólicos, solares, de armazenamento e de rede que transformam recursos renováveis ​​em eletricidade confiável.

AI-resistant 72