Squeezing ideas

Turning a big idea into a more manageable one has second-order consequences:

Remember, the more complex the issue, the more prone communication is to being lost.

– Andrew S. Grove, High Output Management

Communicating complexity is compression. Compressing ideas is loss-y. Can’t get around that. There’s ​no way to convey a complex idea and maintain fidelity​. To work with an idea amongst abstractions is to ​accept that rabbit holes will develop​. And, that sometimes problems will hide in the depths and mazes of those rabbit holes.


When you compress air, it heats up. The molecules are literally squeezed together, they collide more, and the air gets hotter.

In combustion engines, compressing air coming into the engine to a higher pressure means you can add more fuel to it and get more power without increasing engine size. But, doing so requires extra machinery, turbochargers or superchargers, and requires an intercooler to cool the air down before it reaches the combustion chamber so it doesn’t explode prematurely. Second-order consequences!

I haven’t (yet) thought of a snappy analog to compressing ideas — yet. A way to integrate this with a mental model continues to elude me.


Abstraction, in the every-day software development sense, is compression. All the cautions and mythology programmers tell themselves about abstraction distill down to “compression is great if you can accept the trade-offs”.

Adam Keys @therealadam