#leadership #engineering

Software Engineering is Programming Over Time

Software Engineering as Programming Over time.

Software Engineering is Programming Over Time.

The book Software Engineering at Google opens with a critical distinction: what precisely do we mean by software engineering? What distinguishes “software engineering” from “programming” or “computer science”?

The terms “programming” and “software engineering” have been used interchangeably for quite some time in our industry, although each term has a different emphasis and different implications. University students tend to study computer science and get jobs writing code as “programmers.”

The Engineering Distinction

“Software engineering,” however, sounds more serious, as if it implies the application of some theoretical knowledge to build something real and precise. Mechanical engineers, civil engineers, aeronautical engineers, and those in other engineering disciplines all practice engineering. They all work in the real world and use the application of their theoretical knowledge to create something real. Software engineers also create “something real,” though it is less tangible than the things other engineers create.

Unlike those more established engineering professions, current software engineering theory or practice is not nearly as rigorous. Aeronautical engineers must follow rigid guidelines and practices, because errors in their calculations can cause real damage; programming, on the whole, has traditionally not followed such rigorous practices.

But, as software becomes more integrated into our lives, we must adopt and rely on more rigorous engineering methods.

Programming Over Time

We propose that “software engineering” encompasses not just the act of writing code, but all of the tools and processes an organization uses to build and maintain that code over time.

What practices can a software organization introduce that will best keep its code valuable over the long term? How can engineers make a codebase more sustainable and the software engineering discipline itself more rigorous?

We don’t have fundamental answers to these questions, but Google’s collective experience over the past two decades illuminates possible paths toward finding those answers.

← Back to all posts