The success of software development depends primarily on how well we manage to translate conceptual models into technical systems. Graphical or model-based programming tools are invaluable in this process.
Unfortunately, the mental die is often very one-sided and tends to land on the same ideas and thought patterns repeatedly. Unlike a regular dice roll, this is permissible, but not necessarily desirable.
Imagine you need to translate a conceptual model of a solution into an electronic device, for example, by programming in assembly language, C, or C++. How do you typically proceed? You think until an idea appears in your mind's eye. Then you might take a piece of paper and draw boxes, circles, and arrows on it. All of this is then eventually encoded in a sequence of lines of code and data structures. Encoded in the sense that the real world is practically unrecognizable.
Regarding the task at hand, the creativity lies in describing the solution. Everything else is a translation process to implement the solution on electronics that "think" differently than humans. This is extremely inefficient because our brains don't think in lines of code, but in temporal, spatial, and emotional models of the real world.
When coding in C or even assembly language, the brain constantly has to bridge the vast gap between these mental models and a machine language. It suffers from the same disadvantages as communicating via a foreign language: it's slower, errors occur more frequently, and in many cases, poor compromises are made because the appropriate words and phrases are unfamiliar. Certainly, much can be accelerated and improved through practice, but the question arises whether it's worth the effort when we can just as easily use our native language.
Even a baby is remarkably adept at interpreting visual impressions. From a very early age, it can distinguish between familiar and unfamiliar people and understand facial expressions. Our language only functions because words and sentences transform into images and stories in our mind's eye. Humans can only put into words what they can somehow imagine. A word without a corresponding image and a sentence without a conceivable story are, to our brain, merely meaningless sequences of sounds or symbols.
To paraphrase a biblical saying, it is indeed true: "In the beginning were the image and the story." Long before we learn a language, and very long before we use programming languages, we are already specialists in the use and interpretation of visual signals. The consequence for choosing a programming language is therefore quite simple: the closer it is to the visual world familiar to humans since early childhood, the more effective it is.
Just compare the speed at which you read cartoons with the speed at which you read a novel. Unlike a novel, with a cartoon we can analytically read the speech bubble while simultaneously grasping the situation in the image intuitively. It's practically impossible to convey the same density of information so effectively and so clearly through text alone. The downside, as we all know, is that we lose the freedom for our own imagination and imagery. But in the case of software development with "cartoon programming languages" like UML, this is actually an advantage.
„Cartoon programming languages“ also promote communication within teams, thus facilitating collaboration. Furthermore, graphical simulations stimulate curiosity and the play instinct. All of this has a stimulating effect on our brain's reward system and is therefore a driving force for motivated, creative, and effective thinking and action.
Well, if those aren't good reasons for graphical programming languages!
I look forward to your suggestions below. denkanstoss@microconsult.de.
Peter Siwon
Test: Thought Models
Think briefly about the following questions:
- When you read a novel, what do you see in your mind's eye: the text or a story with pictures?
- If you were allowed to attend a seminar and had the choice between your native language or a foreign language you are familiar with, which language would you prefer?
- What is the reason for your choice of seminar language?
- If you have an idea for a software application, how do you share it with your colleagues?
Further information
Training & coaching
MicroConsult Training & Coaching on project management
MicroConsult training and coaching - overview
Food for thought:
Column by Peter Siwon about the human side of project work
Peter Siwon: Systemic project management
