Featured Post

Tuesday, February 7, 2023

The Simplicity Pattern

"Truth is ever to be found in simplicity, and not in the multiplicity and confusion of things." 

-- Sir Isac Newton

"Everything should be made as simple as possible, but not simpler."

-- Albert Einstein

This paper introduces the important concept of "The Simplicity Pattern in Software Engineering.  The Simplicity Pattern is an analysis pattern, and best practice to be employed in the analysis and design of software systems and applications.

The author has observed that as the tools of the software engineering profession become increasingly powerful, the complexity of software solutions increases exponentially.  This is a terrible outcome.  It creates incalculable risk to corporations relying on the retention of knowledge within an enterprise.

When a manager critiques an employee for his or her inability to work efficiently with highly complex software solutions, it is not a problem with the quality of the employee, but of the employer because they have failed to understand the needs of the enterprise.  I do not say this lightly. 

Companies have spent and continue to spend trillions of dollars in software that needs to be re-written just about every 5 years on average.  Many large and complex applications expose defects that prevent the application from functioning properly under typical runtime conditions.  But the most formidable challenge for these highly complex applications is retaining knowledge of the underlying business rules or use cases associated with these applications.  It would seem impossible to solve this problem, but there is a way out:  The Simplicity Pattern.  

"Software Engineers are responsible for the crucible of simple designs."

- Robert "Uncle Bob" Maratin

The cornernstone of the Simplicity Pattern is the principle that for every software solution there is a simple and elegant design pattern that guarantees the software can be effectively managed with a low volume of defects and high-efficiency and productivity within an engineering team. Simple designs take much uncertainty off the table, and ensure that the software can be readily reverse engineered or migrated to a new technology platform in the future.

"All else being equal, simplicity is best" 

-- Occam's Razor attributed to William of Ockham

The KISS principle states that most systems work best if they are kept simple rather than made complex; therefore simplicity is a key goal in design and unnecessary complexity must be avoided relentlessly.