The Secret of Human Thought and Design Patterns
Human brain is phenomenally complex, and we are still in the early stages of deciphering it.
In 1996, Gary Kasparov, then World Chess Champion played first of the six matches against an IBM supercomputer called Deep Blue. The matches were widely dubbed as “The Man vs The Machine”. Kasparov won the the six match series by 4 wins with 2 losses. However, in a rematch during 1997, Deep blue beat Kasparov by the score 3 ½ to 2 1/2.
20 years later, Kasparov in his book “Deep Thinking” said “Computers will take over menial mental tasks and thus allow humans to pursue creativity, curiosity, beauty, and joy.”
Historically, machines have replaced manual labor and that has significantly enhanced the productivity. Human beings have a weaker ability to process logic as compared to machines. On the other hand, human beings have a deep ability of recognizing “patterns” that enable us pursue creativity and curiosity. But we need to train our brains to recognize patterns which is why we have human experts in each field.
Ray Kurzweil, one of the leading authorities in Artificial Intelligence, says that a human master in a particular field has mastered about 100,000 chunks of knowledge or patterns. Shakespeare composed his plays with 100,000 word senses. A typical human medical specialist has mastered around 100,000 concepts in his or her domain. Kasparov had mastered around 100,000 board positions in chess.
Now consider this question: in the current era of digital disruption, how should we deal with complexity of technologies and systems to enable new business models faster with reduced cost, differentiated experiences, simplified support, high availability and easier deployment?
A measure of complexity is by understanding how many million lines of code does it take create a modern software. As per http://www.visualcapitalist.com, the range is extraordinary: the average iPhone app has less than 50,000 lines of code while Google Chrome browser runs on about 6.7 million lines of code. The software that powers an autonomous car runs on more than 100 million lines of code!
Therefore, a possible answer (aided by Kurzweil’s patterns hypothesis) to deal with complexity and help design, implement and deploy digital solutions in the current era: we need to train domain experts who have mastered design patterns.
A design pattern is a “recipe” (working solution) to a problem that occurs repeatedly in a given context, over and over. Akin to how a chess champion approaches a chess game by applying patterns of different board positions from previous games, an IT professional studies the design patterns to constructing solutions for real-world business problems. Because learning by doing (learning from making mistakes) often is not an option especially in the fast digital era, design patterns provide a way to construct proven solutions. Therefore, design patterns enable an IT practitioner pursue creativity, curiosity, beauty, and joy in designing, implementing and deploying digital solutions in an enterprise.
Do we have a good number of design patterns available in the first place in the IT industry for domain experts to handle growing complexity of systems and technologies?
Well, the field of Information Technology(IT) is only about 60 years young at the time of this writing. The term IT, in its modern sense first appeared in a 1958 article published in the Harvard Business Review, in which authors Leavitt and Whisler commented that “the new technology does not yet have a single established name. We shall call it information technology(IT)”. Design Patterns in the field of IT have been around only since 1994. Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides (referred as “Gang of Four”) pioneered the concept of patterns to a broad audience in 1994. Design Patterns became a best-seller, is now regarded as a “ground-breaking” work, and the rest is history.
As of this writing, an Amazon search on “design patterns” among computer and technology books yields more than 4,100 unique hits. Gregor Hohpe, author of “Enterprise Integration Patterns”, estimated a couple of years ago that the total number of published patterns was more than 7,500 and growing!
The “Gang of Four” has inspired a number of brilliant minds such as Martin Fowler, Gregor Hohpe, Thomas Erl who have documented proven design patterns across domains such as eBusiness, enterprise applications, enterprise integration, cloud computing.
For the digital era, we have recently published design patterns across domains such as Autonomous Systems, Enterprise IoT and Digital Experiences at www.enterprisedigitizationpatterns.org. These design patterns are complemented by reference architectures, maturity models and case studies to augment the tool set of a domain expert.
Most of us will not get to decide how technology will affect our lives but we can control how we design solutions with high quality and user experiences that are context-aware, with appropriate security and privacy.