💻Origins & Evolution

Software Engineer · Writes, tests and maintains the code that runs modern life — and is one of the first professions watching AI automate its own daily work.

Software engineering is an unusually young profession wearing an old idea. People had been designing step-by-step procedures for machines to follow since the 1840s, but nobody was paid to be a 'software engineer' until well into the twentieth century, and the job title itself was only proposed — half provocatively — in 1968.

Its history runs through a countess who never saw her algorithm run, women who rewired a room-sized computer by hand, a Navy officer who wanted machines to read English, and a conference in the Bavarian Alps that gave the field its name by declaring it was in crisis.

Where it began

1843London, England

Ada Lovelace, translating an Italian engineer's paper on Charles Babbage's unbuilt Analytical Engine, adds a set of notes longer than the original text. The last of them, Note G, lays out step by step how the machine would compute a sequence of numbers — an algorithm written for a computer that would not exist for another century, and the point most historians mark as the conceptual birth of programming: the idea that a machine's instructions could be designed, written down and checked as a thing separate from the machine itself.

Timeline

1843Ada Lovelace publishes the first algorithm

Translating an Italian paper on Charles Babbage's unbuilt Analytical Engine, Lovelace adds a note describing step by step how the machine would compute Bernoulli numbers — usually cited as the first published computer program.

1890Hollerith's punch cards tabulate a census

Herman Hollerith's punched-card tabulating machines process the US Census in about a year, work that had taken the previous count almost eight years by hand; his company later becomes part of IBM.

1943–1945Six women program the ENIAC

Kay McNulty, Jean Jennings, Betty Snyder, Marlyn Wescoff, Fran Bilas and Ruth Lichterman program the room-sized ENIAC at the University of Pennsylvania by physically setting switches and plugging cables, with no manual and no programming language to guide them.

1952Grace Hopper completes the first compiler

Hopper's A-0 system at Remington Rand translates symbolic mathematical notation into machine code automatically, replacing the error-prone practice of hand-copying subroutine addresses — a direct ancestor of every compiler since.

1957FORTRAN ships for the IBM 704

John Backus's team at IBM releases FORTRAN after about two years of work; within two years, over half of all machine-run code in the US is reportedly written in it.

1968NATO conference names 'software engineering'

At a conference in Garmisch, West Germany, attendees deliberately borrow the term 'software engineering' to argue that building large programs needs the same discipline as building bridges, framing the field's chronic overruns as a 'software crisis'.

1969–1973Unix and C take shape at Bell Labs

Ken Thompson and Dennis Ritchie build the Unix operating system on a spare PDP-7, then rewrite it in Ritchie's new C language in 1973 so it can run on more than one kind of computer.

1981The IBM PC brings software to every desk

IBM's PC launches with Microsoft's PC-DOS, turning software into a mass consumer product almost overnight and cementing the young company Bill Gates and Paul Allen had founded six years earlier on Altair BASIC.

1991Linux and the World Wide Web arrive months apart

Linus Torvalds posts his hobby kernel to Usenet in August, calling it 'just a hobby, won't be big and professional'; Tim Berners-Lee's World Wide Web goes public the same month, and open, freely shared software becomes the internet's default.

2021–2023AI moves into the code editor

GitHub Copilot (2021) and ChatGPT (2022) bring large-language-model code generation into daily use; within a few years, GitHub reports its own tool's users accept AI-suggested code for a large and growing share of the lines they keep.

The eras

Operator console of an IBM System/360 mainframe
ArnoldReinhold · CC BY-SA 3.0 · Wikimedia Commons
1950s–1960s

Mainframes and batch programming

Early programs were submitted as decks of punched cards and run in batches, often overnight, so a single typo could cost a programmer an entire day waiting for the next run. Mathematicians, and in large numbers women, moved from hand computation straight into this new 'programming' work, since it was seen as clerical and detail-oriented rather than prestigious. FORTRAN (1957) and COBOL (1959) took hold in this decade, and the sheer difficulty of building reliable large systems on this hardware set up the 'software crisis' the next era would try to name and fix.

A PDP-11 minicomputer, the machine most associated with early Unix
Stefan_Kögl · CC BY-SA 3.0 · Wikimedia Commons
1969–1983

Unix, structured programming and a discipline gets a name

After the 1968 NATO conference put a name to the field's chronic budget and reliability problems, the 1970s produced both a diagnosis and a toolkit: structured programming, disciplined testing, and Unix, an operating system built at Bell Labs and rewritten in the new C language so it could run on more than one machine. Minicomputers like the PDP-11 spread real computing power beyond a handful of mainframe rooms, and 'software engineering' began appearing as a university degree in its own right rather than a subfield of mathematics or electrical engineering.

An original IBM Personal Computer from 1981
Own work (based on graphics by International Business Machines Corporation) · Public domain · Wikimedia Commons
1975–1990

Personal computers and software in a box

The Altair 8800 kit (1975) and then the Apple II and IBM PC (1981) turned software from something institutions ran into something a family could buy off a shelf. A mass consumer and small-business software industry sprang up around word processors, spreadsheets and games, sold in shrink-wrapped boxes with a return policy instead of a support contract. Waterfall-style, heavily documented development dominated large projects, even as the industry's edges — bedroom coders, university hackers — worked in something closer to today's faster, more informal style.

Tux, the penguin mascot of the open-source Linux operating system
Larry Ewing , Simon Budig , Garrett LeSage · CC0 · Wikimedia Commons
1991–2005

The web, open source and the dot-com cycle

The World Wide Web and the Linux kernel both became publicly available within months of each other in 1991, and together they proved that software built in the open, by volunteers who had never met, could compete with anything a corporation shipped. The web browser created an entirely new job market almost overnight; that market then boomed and, in 2000–2001, spectacularly crashed, wiping out a generation of startups but leaving behind Amazon, Google and the infrastructure the next era would build on. The Agile Manifesto (2001) formalised a reaction against heavy, document-driven planning in favour of shorter, more iterative cycles.

Conceptual diagram of cloud computing infrastructure
Sam Johnston · CC BY-SA 3.0 · Wikimedia Commons
2006–present

Cloud, DevOps and AI-assisted engineering

Renting a server by the hour from Amazon Web Services (2006) removed one of the biggest fixed costs of running software, and app stores gave engineers a second, mobile-first distribution channel almost simultaneously. Git and GitHub (2005–2008) made distributed collaboration on the same codebase normal even among strangers, and automated deployment pipelines shrank the gap between finishing a change and it running in front of users from months to minutes. By the early 2020s, AI coding assistants trained on public code had moved from novelty to daily tool for a large share of professional engineers — the fastest a new instrument has spread through the profession in its history.

What this job replaced

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

Human computer

1750s–1960s

Long before electronic machines, 'computer' was a job title for a person — often a woman — who performed mathematical calculations by hand or with a mechanical calculator: astronomical tables, artillery trajectories, NASA orbital paths. Electronic computers took over the calculations from the 1950s and 1960s onward, and by the time the job vanished it had already lent the machine its name.

Keypunch operator

1930s–1980s

Mostly women, keypunch operators typed data and even program source code onto punched cards on machines like the IBM 026 and 029, one card per line of a program. Interactive terminals and video screens let programmers type code directly into the computer, and the job disappeared within a generation.

Webmaster

1993–2000s

In the web's first decade, one 'webmaster' often designed, coded, wrote the copy for, and administered a whole website — the word entered dictionaries in 1993 and got its own reserved email address by internet standard in 1997. As sites grew complex, the role split into front-end developer, back-end developer, DevOps engineer and content editor, and 'webmaster' faded from job listings.

Trades that vanished →

Every era in this history ends the same way: a tool arrives that removes the manual labor a whole job category had been built around — hand calculation, card punching, batch scheduling, manual server provisioning — and the people who did that labor either move up the stack or move on.

The engineers reading this now are living through the next iteration of that cycle, not a first encounter with it. The rest of this profile looks at what, specifically, that has meant so far, and what a reasonable reading of the evidence suggests comes next.

Keep exploring

More in Engineering & Technology