I don’t know if this is a new idea, but I’m going to define it to make discussion easier.

Software Gravity - the force that pulls features, complexity, and resources towards a software system over time.

Software tends to grow in complexity over time. Feature requests and user expectations create gravity around software.

That gravity pulls complexity towards software. Complexity requires resources.

Everything around software gets bigger over time. It is inevitable. Software gravity is always at work.

Unless you fight against it, software gravity will force you into a large and complex system. In fact, software creators are rewarded for embracing software gravity.

Most software business advice comes down to building what your customers are willing to pay for. That means building more features to make more money.

Features beget features. Customer requests beget customer requests. This drives software business forward.

Katamari Damacy Effect

This creates what I call the Katamari Damacy Effect.

Like in the video game, features roll into an ever growing ball of complexity. Eventually your ball of features (…err software) might be mistaken for a moon.

This is unfortunate because software starts out small, nice, and purposeful. Eventually software of any significance is doomed to be unwieldy and unrecognizable compared to its original design.

The Circle Of Life

In response, small, purposeful new software comes along to right the wrongs of large, old software. Eventually software gravity takes over and the new software looks a lot like the old software.

We see this over and over again with spreadsheets, browsers, word processors, and operating systems.

The evolution of software - new replacing old, replacing new, replacing old in a circle of life.

It never ends.

As long as software gravity is a constant force in software development, software will continue to evolve in predictable patterns.

What we might see as progress is really an illusion. Every generation gets tired of existing software, tears it down, and rebuilds it in their own image.

I believe this is the way of things. We are no more able to change it than we are able to change gravity.


P.S. Have you subscribed to Code Career Genius yet?