Simplicity

Posted by Brendan Kay on Oct 10, 2012 12:04:00 PM

   

At looksoftware we have identified four core values that guide every decision that we make and every action that we take.

    The four values are:

    1. Respect           2.  Continuous Improvement        3. Community        4.  Simplicity

Today I will talk a little bit about simplicity because it is so important and so often misunderstood. Whilst most people would easily agree that simplicity is generally better than complexity, many people have misconceptions about how it comes about.

The biggest misconception is that simplicity is the state that most things start at before they become complicated. In my experience this is rarely true. 

The human mind is a wonderful thing and is capable of understanding an incredible array of concepts and ideas. This is obviously a very handy thing but it does sometimes lead to accepting views that are more complex than they need to be.

Simplicity is the ultimate sophistication - Leonardo da Vinci

One good example is software engineering (how convenient :-). Most challenges that software programmers deal with these days involve solving problems that are reasonably complex (the majority of easy problems have been solved long ago). Software engineers are generally skilled at understanding complex problems and will usually come up with solutions that match (or even exceed) the complexity of the problem itself. Their skills and training allow them to understand the solution they have created, and so they sign off the task and move on to the next challenge.

        This creates two potential problems:

  1. The solution they have created often has to be used by others who may not have the same comfort with complexity that the software engineers do
  2. It is often difficult to extend their solution later to cope when extra requirements are added to the problem and the solution becomes harder to manage and less reliable

In my view it is important to not stop when you have found a solution to a complex problem. It is important to spend time to ensure that it is the simplest solution available to the problem. This is the step that many people skip as it invariably involves extra effort. However, it is well worth it as the answers you create will be far more effective and far more flexible.

Everything should be made as simple as possible but no simpler - Albert Einstein

It is, of course, possible to "over simplify" your solution but I find that this is rare. It is more common for people to misunderstand and "over simplify" the original problem. This leads to a simple but ineffective solution. Properly understanding the problem is obviously critical to creating an effective solution. 

You cannot provide a genuinely simple solution by trying to dodge the work required to create it. Like most other worthwhile things, you achieve simplicity through a combination of focus and dedication.

Topics: IBM i, Application Modernization