Skip to content.

Manageability

Sections
Personal tools
You are here: Home » blog » stuff » Laws of Software Complexity
Views
  • State: published

Laws of Software Complexity

Document Actions

Matt Quail has blogged about a first law of software complexity. It's an analogy of the First Law of Thermodynamics, also known as the Law of Energy Conservation. The analogy Matt is that without radical changes in abstractions, a complex system will remain complex. That is complexity is conserved.

I replied in his blog about The Second Law of Thermodynamics, in that closed systems tend to maximum entropy. Entropy means maximum disorder and if you can make the inference that disorder implies complexity. Then a evolving software system without significant external contributions tends towards entropy. In otherwords, to avoid entropy you've got to be constantly adding energy, and in information terms this means organized knowledge. So you have to keep on refactoring, reducing disorganization into organization.

Keep in mind for both laws, when we talk about a closed system, we don't mean static and unchanging. There's a Zeroth Law of Thermodynamics, namely thermal equilibrium. Well I've got a Zeroth Law too for complexity. Software systems tend towards equilibrium with their environment. In otherwords, in a real world environment where change is unavoidable then a system is under constant pressure to require change.

So in summary, the Laws of Sofware Complexity are:

Laws of Software Complexity
  • Zeroth Law. Change Equilibrium - Change is Unavoidable
  • First Law. Complexity will be Conserved - Incrementally changes do not change inherent complexity
  • Second Law. Software Complexity tends to Maximum Entropy - Aggressive refactoring tends to slow down that tendency.

ยท


Last modified 2003-07-31 07:09 AM

Another Law

Posted by Anonymous User Anonymous User at 2004-04-16 02:19 PM

Some software complexity cannot be destroyed, it can only be moved from one place to another.

  • from Sean McGrath

Yet another law..

Posted by Anonymous User Anonymous User at 2004-07-27 06:11 AM

Complexity applied to a software may increase the value proposition of the software so as to allow it to sustain itself over time

Don Juan

visitors
reading
 
 

Powered by Plone

This site conforms to the following standards: