Software Engineering Is Programming Integrated Over Time

What program walks on four legs in the morning, …?

The preface of Software Engineering at Google opens with this thesis:

One key insight we share in this book is that software engineering can be thought of as “programming integrated over time.”

The book goes on to illustrate this idea with an analogy.

Imagine that programming is like drawing square:

Programming: a square

We can get really good at drawing squares: perfect corners, even lines, fast drawing, and so on. But if we want our squarse to last, we have to consider time, and the change it inevitably brings.

When we stretch programming across the time dimension, we get software engineering:

Software Engineering: a square extruded into a cuboid, along an arrow labelled “time”.

Platonic forms don’t exist, and neither do programs that last zero seconds. Every program lasts some length of time. At the very least, a one-off script has to exist until the computer finishes executing it.

THe need for software engineering increases fuzzily, as a program lasts longer amounts of time. Time brings changes, both to the program and its environment. And these changes require answers to questions such as:

Many software engineering practices exist to help solve these questions:


The longer your program lasts, and the more valuable it becomes, the more you will need software engineering practices.


If you’re interested in reading more, do check out Software Engineering at Google book. I really enjoyed it.

Go forth and engineer some software,


Make your development more pleasant with Boost Your Django DX.

Subscribe via RSS, Twitter, Mastodon, or email:

One summary email a week, no spam, I pinky promise.

Related posts: