« Brazil's XBRL Study Group | Main | Public Company XBRL-based Digital Financial Report Quality Continues to Improve »

Understanding the Law of Conservation of Complexity

A kluge, a term from the engineering and computer science world, refers to something that is convoluted and messy but gets the job done.

Anyone can create something that is complex.  But it is hard work to create something that is simple.  As Steve Jobs put it, creating something that is simple and elegant to use is the ultimate sophistication.

"It takes a lot of hard work," Jobs said, "to make something simple, to truly understand the underlying challenges and come up with elegant solutions." As the headline of Apple's first marketing brochure proclaimed in 1977, "Simplicity is the ultimate sophistication."

Simplistic is dumbing down a problem in order to make the problem easier to solve.  Simplistic ignores complexity in order to solve a problem which can get you into trouble.  Simplistic is over-simplifying.  Simplistic means that you have a naïve understanding of the world, you don't understand the complexities of the world.  Removing or forgetting complicated things does not allow for the creation of a real world solution that actually work.

Simple is something that is not complicated, that is easy to understand or do.  Simple means without complications.  An explanation of something can be consistent with the real world, consider all important subtleties and nuances, and still be simple, straight forward, and therefore easy to understand.

Complexity can never be removed from a system, but complexity can be moved.  The Law of Conservation of Complexity states:

"Every application has an inherent amount of irreducible complexity. The only question is: Who will have to deal with it-the user, the application developer, or the platform developer?"

Another version of the law of conservation of complexity:

"Every application has an inherent amount of complexity that cannot be removed or hidden. Instead, it must be dealt with, either in product development or in user interaction."

Irreducible complexity is explained as follows: A single system which is composed of several interacting parts that contribute to the basic function, and where the removal of any one of the parts causes the system to effectively cease functioning.

So for example, consider a simple mechanism such as a mousetrap.  That mousetrap is composed of several different parts each of which is essential to the proper functioning of the mousetrap: a flat wooden base, a spring, a horizontal bar, a catch bar, the catch, and staples that hold the parts to the wooden base.  If you have all the parts and the parts are assembled together properly, the mousetrap works as it was designed to work.

But say you remove one of the parts of the mousetrap.  The mousetrap will no longer function as it was designed, it will not work.  That is irreducible complexity: the complexity of the design requires that it can't be reduced any farther without losing functionality.

As pointed out in the document Understanding Blocks, Slots, Templates, and Exemplars, technical details can be hidden from business professionals using clever techniques.  Coming up with the clever techniques can be a challenge.  But the payoff is simplicity and elegance.

For example, the notion of a fact table explains the interaction between networks, hypercubes or [Table]s, dimensions or [Axis], [Member]s, primary items or [Line Items], [Abstract]s, and Concepts. As pointed out in an analysis of 6,751 XBRL-based financial reports submitted to the SEC,

  • 99.9% of public companies consistently follow the structural relations between these report elements (Networks, [Table]s, [Axis], [Member]s, [Line Items], [Abstract]s, Concepts
  • 98.7% follow a set of fundamental accounting concepts and relations between those concepts, that percentage continues to push toward 100%
  • 100.0% of the pieces of a financial report are identifiable as either a

Not a lot of software products are leveraging this information, but the number is slowly increasing.  Once software developers figure out how to leverage this information, business professionals will begin to see the power of digital financial reports.

Simple is elegant!

Elegant: Characterized by highly skilled or intricate art, tasteful beauty of manner, form, or style; excellently made or formed; simple and clever.

Posted on Sunday, May 24, 2015 at 12:11PM by Registered CommenterCharlie in | CommentsPost a Comment

PrintView Printer Friendly Version

EmailEmail Article to Friend

Reader Comments

There are no comments for this journal entry. To create a new comment, use the form below.

PostPost a New Comment

Enter your information below to add a new comment.

My response is on my own website »
Author Email (optional):
Author URL (optional):
All HTML will be escaped. Hyperlinks will be created for URLs automatically.