Software Creation Mystery -

How to become an Expert. Embrace Reality.

Reality is merely an illusion, albeit a very persistent one – Albert Einstein

An expert have much better models of reality and methods to build them than an ordinary specialist. The expert, armed with these models, can quickly put pieces of a problem puzzle together, find explanations and solve the problem.

Models can be related to anything – software systems, business domain or your personal relationships.

Predictions and Solutions!

A theory is a good theory if it satisfies two requirements: It must accurately describe a large class of observations on the basis of a model that contains only a few arbitrary elements, and it must make definite predictions about the results of future observations.

Stephen Hawking, A Brief History of Time

Any expert as good as he can effectively predict future outcomes and solve new unforeseen problems. Solutions and predictions are not coming out of blue. They stem from good understanding of reality in an expert’s head. Internal models of reality help to explain problems, find relations and play with future scenarios. These models establish the base for effective thinking and direct expert’s effort to solve problems. If you have poor models of reality, you will make bad decisions. Good models of reality allow reliable predictions and efficient solutions than vague guesses and ad-hoc spontaneous fixes.

Characteristics of a good model:

  1. Explanation – provides understanding of elements, processes, events, root causes and effects
  2. Testable predictions – a model that makes no predictions that can be observed is not a useful model.
  3. Simple – you can remember and use a model without titanic effort
  4. Frameworks – knowledge how to recognize common patterns and deal with range of similar problems. Frameworks allow to extend and apply existing models to new situations without building new models.

Brains – the main tool of an expert

I think, therefore I am – Rene Descartes

An expert’s brain carry and operates with models of reality. Unfortunately, our brains are not ideal for this task. Models they create are not identical to reality. Here is why.


  • perception – our senses deliver to brain partial and incomplete information
  • memory – our brains can process and memorize only fraction of available information; and even more – we quickly forget this knowledge without practice
  • imagination – brains automatically filling gaps for missing information, substitute with interpretation based on internal representation of the outside world

cognitive biases (bugs in brain software)

  • anchoring or priming – previous irrelevant experiences prime your consequent thinking and decisions
  • need for closure – we are uncomfortable with doubt and uncertainty; we have urge to resolve and find convenient explanations quickly without much thinking
  • confirmation bias –  from all facts we unconsciously pick facts that confirm our beliefs and predispositions
  • symbolic reduction – we are anxious to reduce complexity for better understanding and tend to form simplified generalizations ignoring complex details and relations.
  • and many others

social behavior

  • subconscious models and believes – our minds carry beliefs and views imposed by our parents, teachers and culture.  These subconscious models deeply influence our models of reality without much awareness.
  • peer pressure, conformity – our minds are wired to conform and agree with other people making us blind for inconvenient facts, ready to follow crowd and accept conventional views without critical revision

Objective Reality

There are no facts, only interpretations.  – Friedrich Nietzsche

Even smartest brains will have challenges to understand reality.

We deal with complex situations:

  • incomplete information – we rarely have access to full information and even if it is available we don’t have capacity to collect and absorb all of it
  • perpetual changes – reality is very fluid and changes every second
  • complex relations and behavior – complex systems are difficult to understand: causes and effects, correlations, feedback loops, influence of processes in external systems
  • difficult to test – we often cannot afford large number of experiments, trials and errors to come up with right models and explanations

We deal with people who make our reality very complicated:

  • unpredictable – people are difficult to predict, they are often irrational and inconsistent
  • confusing – people cannot clearly explain their thinking and feelings or even don’t understand themselves
  • deceiving – sometimes people have difficulty to tell truth or simply lie for own advantage

Building Models

The test of a first-rate intelligence is the ability to hold two opposed ideas in the mind at the same time, and still retain the ability to function. –  F. Scott Fitzgerald

We understand reality different ways – learning, investigating problems, finding new solutions and practicing. For years we can concentrate on solving immediate problems and do our work without attempts to understand the big picture. Many good specialists have incomplete understanding and fragmented knowledge that still allow to perform well. But it is impossible to become an expert without deep understanding and conscious effort to build good models of reality.

For example, we can stumble for a long time with challenges and failures in building software without understanding its essence and forces. (By the way, search for this understanding is the reason for this blog existence).

Potentially everything what we do in life could help to build and improve our models of reality. We just need to consciously relate our experience and learning to our understanding of reality. And we can do it on the go without special preparation, when we actively engage our minds – working, talking, reading, practicing, traveling, thinking and even sleeping. Just focus on reality modeling.

The models of reality could be explicit (facts and theories) and implicit (intuition and tacit knowledge).

You can use several strategies to build models in your whole mind.
A. Analytical

  • find what is most important, map and connect main elements, players and subsystems; learn relations; draw Mind Maps
  • understand influence of context and main forces
  • create stories, metaphors and patterns – make your models better suited for your brain
  • repeat the process for the most important subsystems

B. Empirical

  • find most pressing problems, contradictions or real life facts
  • understand how do they fit into your models of reality
  • it is great if they don’t fit – you have opportunity to improve your models

C. Synthesis – reconcile your models with existing knowledge and leading models

  • find what are dominating models, views and believes; what other experts think
  • critically analyze this information and theories behind
  • find the best opposing theories and try to combine them to form better model

D. Scientific method – use it for practical evaluation of models and confirmation of your theories.

  • build hypothesis about reality and outcomes of your actions
  • test it in practice
  • learn from results and adjust your models

E. People interests and agenda – people are often most surprising and unpredictable element of reality. Your models will be much closer to reality if you understand motives, interests and agenda of involved people.
F. Change perspective – switch different perspectives to enrich models – economic, emotional, social, physical, etc. Try to view from opposite viewpoints and set of principles. Imagine yourself as user of your system, investor of your company, manager, any animal, computer part, etc. (Try to get back without loosing your identity :))  Web developers have interesting concepts of Personas – imaginary users with distinct behavior on website that help to design a system for various cohesive sets of needs.
G. Lateral thinking

  • random association – associate models with recent books, distant knowledge fields, your favorite characters
  • provocative thinking – make unacceptable, funny, stupid ways to explain problems and shock your models
  • ask “why?” – continue asking ‘why’ until your reach questions that nobody could answer on this Earth (or the only answer is 42).
  • expand concepts borrowed from other sources to have wider horizon for ideas

In overall, you will switch between two grand strategies – Evolution (discover reality and adopt to it) and Revolution (breakthrough and change reality). The choice depends on models maturity, certainty and your people capabilities.


Few people have the imagination for reality.  – Johann Wolfgang von Goethe

You can be certain that reality in your head is different from objective reality, which is complex, changing and controversial. Effective experts don’t have choice and master reality by
1. Accepting own limitations in understanding of elusive reality
2. Building good models of reality applying different strategies
3. Using, testing and improving models in practice

Good models of reality will make your thinking, decisions and solutions much better. They will make you a master of reality instead of a victim of reality. Good luck with embracing reality!
The Opposable Mind: How Successful Leaders Win Through Integrative Thinking , by Roger L. Martin
Pragmatic Thinking and Learning: Refactor Your Wetware, by Andy Hunt

AddThis Social Bookmark Button AddThis Feed Button

Software Creation Mystery -
This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 License .
%d bloggers like this: