Not that long ago our information needs seemed much simpler. If we wanted to make a phone call, we had a relatively simple device to help us do this, the humble rotary dial telephone. Similarly, for other technologies, they were built to do the job specified as simple as possible.
What we demand of technology today is far more complicated in order to meet the needs and wants of our complex lives. In comparison, our mobile phones, for the purpose of making and receiving phone calls, are like Rube Goldberg Machines, “complicated gadgets performing simple tasks in indirect, convoluted ways.” (source: Wikipedia). Today’s mobile phones are far more complicated and sophisticated than what has been proven necessary to make a phone call.
I was fortunate enough many years ago to be introduced to the term Rube Goldberg Machine. I find the analogy between some of today’s technology and Rube Goldberg Machines quite apt. What are Rube Goldberg Machines you may ask?
Over the years the technologies we use have become more sophisticated and highly engineered, with a lot of value in added features included with each release. At the same time, these same technologies do an exceptional job of making the complicated seem simple; most of what is complicated is hidden. Through personal observations, many of the value-added features purchased as part of these technologies remain largely unused because they do not satisfy any information requirements of our complex lives. This hidden sophistication leads technology consumers to misbelieve the level of difficulty required, and cost incurred, to achieve this level of simplicity.
Complex ≠ Complicated
Lots has been written on the difference between Complex and Complicated, though they are often used interchangeably. There is a key difference, however, the challenge for understanding the difference is in part due to dictionaries using each word to help explain the other.
I prefer this Sloan article The Critical Difference Between Complex and Complicated (MITSloan June 2017) to explain the difference between these two words from a systems thinking perspective.
“Complicated problems can be hard to solve, but they are addressable with rules and recipes.”
“Complex problems involve too many unknowns and too many interrelated factors to reduce to rules and processes.”
The challenge as business and technology professionals in our complex environments is to build and retain sufficient corporate memory recording the history of complicate changes layered upon each other. The more we change these technologies to meet our ever changing information needs, the more layers we add, the more complicated the system gets, and the more expensive it becomes to produce and maintain. This is a natural evolution of technological change in our modern world.
When we define requirements for technology enhancements, we mostly consider only the functional requirements. Functional requirements are necessary, because it informs what functionality we want the technology to perform. However there are also the poorly labelled non-functional requirements, the often considered poor cousin to functional requirements. These add additional levels of complication but are often skipped over to deliver functional requirements on time and on budget. Often the consumer’s information needs of the technology is included in these non-functional requirements.
This article By Gerben Wierda “Blame the mathematicians!” (eapj.org Jan 2020) does well to demonstrate the complicated relationship between functional and non-functional requirements. In it Gerben writes: “They should not be called ‘non’-functionals, they should be called (the other) ‘essentials‘.”
To appreciate this better, the recent, and much written about, mobile application developed to count votes in the American Iowa Democratic caucus is a clear example why you need to include the additional complication of these other essential requirements, including security, performance, logging and monitoring, deployment, integration, and data interoperability.
As businesses cope with the ever increasing pace of change, broadening complicated requirements, and rising technology costs, a change in approach is required to address this challenge. A holistic approach that seeks to understand the complicated essential requirements layers, the complex influences of interrelated factors, and information needs is necessary whilst simultaneously applying the KISS principle (Keep It Simple Stupid).
“The KISS principle states that most systems work best if they are kept simple rather than made complicated; therefore, simplicity should be a key goal in design, and unnecessary complexity should be avoided.” (source Wikipedia)
This quote attributed to Albert Einstein adds another perspective: “Everything should be made as simple as possible, but not simpler.”
From my experience, taking a holistic approach coupled with the KISS principle makes technological change outcomes easier to achieve for technicians and more effective for consumers, thereby being able to avoid building Rube Goldberg machines. It’s not easy though. It requires heeding past lessons learnt, being ruthless addressing the essential requirements, and analyzing the information needs of consumers.