Gate's Law: New Software Is Slower, Here Is Why

"Software is a great combination of artistry and engineering.” – Bill Gates

MENTAL MODEL

traffic light
traffic light

Gate’s law is the adage on computer performance that software is getting slower while hardware is becoming faster. Software outgrows the development of hardware in size and sluggishness. As consumers want more and more features that are not essential, software is becoming “fat” with useless details and “nice-to-haves” instead of essential and high-value developments. It’s essentially the counterpart to Moore’s law — where hardware becomes twice as fast every 18 months. Whereas with Gate’s law, the speed of software halves every 18 months.

This happens for a variety of reasons, not the least of which are feature creep, code cruft, forced updates, and stupid management. Feature creep is the addition of new features in a product — specifically computer software, consumer electronics, and video games — in excess. It’s where new, unneeded features are added to products which only results in complicating the system and making it less efficient than before. Sometimes entire product lines fail because of this since they surpass the scope of what was originally intended: that is, the hardware or software becomes so bloated with features and so expensive that no consumer wants it.

Code cruft is rather self-explanatory — if you know what “cruft” means, that is. The word “cruft” is slang for anything that is left over, redundant, and in the way. It’s used for defective, useless, and dysfunctional elements in computer software. Cruft can also take the form of computer hardware. It’s when you buy new parts to upgrade your old computer and the outdated hardware accumulates with no use. It could, however, come in handy if your new hardware fails and you quickly need replacement parts. Otherwise, it’s garbage. Or cruft.

a computer monitor sitting on top of a wooden desk
a computer monitor sitting on top of a wooden desk

Real-world instances of Gate’s law:

  • Operating Systems: new versions of operating systems (OS) introduce more features and graphical enhancements that aren’t entirely needed. So even though modern computers are significantly faster than those of previous generations, we perceive little or no improvement in the overall responsiveness of the new tech due to increased resource demands.

  • Web Browsers: modern web browsers pack countless features (extensions, multimedia, security). These features take a bunch of processing power and memory speed. Hence browsers still feel just as fast even on newer hardware since software is more feature-heavy.

  • Enterprise Software: complex enterprise software like ERP systems accumulate features over successive versions. Thus companies need to constantly invest in hardware upgrades just to keep up with the increasing demands of their software.

  • Mobile Applications: smartphones become more capable, but app developers continue slapping in features and visual effects. So users experience slower apps or get their batteries drained as new software overloads the ever-faster processors.

How to use this mental model as a business owner or developer: (1) watch out for useless features — assess your software’s performance to see whether there are redundant features and try to eliminate them; (2) quality over quantity — prioritize optimal features and streamlined code instead of countless features that nobody benefits from; (3) plan for scale — when designing new software, plan for efficiency and do stress tests to see whether your software can handle increased demands without excessive hardware demands; (4) hit the feature and performance equilibrium — make sure you implement core functionality and keep redundant feature releases to a minimum.