About Programming Conversations and Conversations About Programming

A major part of our activities have to do with “Not-Knowing”. We are constantly talking with others about “What we don’t Know”. We are speculating and are hoping that others know. Humans are wondering creatures.

The situation becomes more complicated when we meet people who are convinced they know but really don’t know. We believe them because they look like “People who know”. They are to be trusted. When we understand what they are talking about we spread the news and in due time many other people “know”.

The moment of Truth is when we Apply the Knowledge. Suddenly Everything Fails and we have to start all over again.

We are constantly talking with others about “What goes Wrong”. “What goes Wrong” is the major business of the Media Industry. What Goes Wrong is called News.

Many things that go wrong are transformed into a Reality Soap. Strange enough IT is not covered by the Reality-Soap-business.

I believe there are two reasons. The IT-business is the Most Incomprehensible Business in the World and we are accustomed to the fact “That Every Thing goes Wrong when you apply IT”.

The sad thing in IT is that a majority of the people in the IT-business don’t know what they are talking about. When a majority of Insiders is talking non-Sense the majority of the Outsiders believe they are talking Sense and are spreading the (non-)Sense to Others.

IT does not know that We (Humans) exist. IT is doing exactly what the Programmers are telling IT to do. A majority of the People in the IT-Business don’t know what Programmers are doing.

They believe they are doing something with a (programmer)language (Java, .Net) and the Internet. Some of them know important Hype terms like Web-Services and SOA (currently Agile & Blockchain!). All of them have never Applied what they are Talking about. Let’s call them Advisors.

Strangely enough the Advisors don’t understand that a Programmer is Talking to a Very Stupid Person called a Computer. The Computer is only able to do what he is Told to Do. The only thing the Advisors have to do is to Translate Human Language to Computer Language. This is a very simple Process if you know what You are Talking about.

Human Languages and Computer Languages contain Verbs and Nouns. Verbs are Processes and Nouns are States. The whole process starts with Defining What We are Talking About (The Universe of Discourse).

Many Humans are incapable to define What they Mean. They use the same Nouns in different Contexts. Some People use a Very Simple Vocabulary. Every Thing is a Thing and every Act is Doing Things.

A major part of the Activities of Advisors have to do with “not-Doing Things”. They are constantly talking with others about “What They Want to Do”. They are speculating and are hoping that IT will Solve all their Problems.

The Advisors believe that the Programmers will Understand what they are Telling and the Programmers believe that Advisors are telling them what To Do. Both of them don’t see that StoryTelling and Doing are from different Worlds. Advisors come from Venus and Programmers come from Mars.

The Users of IT Live on Earth.

Strange.

I feel I am Repeating the Same Story All The Time.

Repeating the Same Story all the Time is what many people are doing but they don’t know they are repeating the same story because they use Different Words to tell the Same Story or the Same Words to tell a Different Story.

What is the problem?

The Computer needs Logic and a major part of our Conversations are not Logical at all. We are trying to find “the Logic Behind” the Conversation.

Many people are not trained to find the “Logic behind Conversations“. They believe the World is an Endless Circular Conversation.

I don’t think Believe is the Right Term. I mean they are not Aware of the Fact that they are Talking all the Time without being Aware that they are Talking. They are Programmed Conversation Machines or Machines that are producing Words that give others the Impression that they Mean something. Perhaps Words are not ment to mean something. They are just Sounds.

Many people are incapable to Apply Logical Reasoning. They don’t have the talent or are not trained in School to Apply Logic. Logic is not trained at School anymore. In “the old times” Logic was the main component of the Curriculum of the “Latin School”. At that time IT (Logic) was part of Rhetorics.

When you are Applying Logical Reasoning you are a Craftsman. When a Craftsman makes a Mistake he is really in Trouble. His Doings operate in Reality.

The Doings of an Advisor are Imaginary. When an Advisor makes a Mistake he asks another Advisor to Advice. In the End Many Advisors are Advising Many Advisors. This creates Confusion. Advisors Like Confusion. Confusion means Work and Work means Income. With “mean” I don’t mean that Work is “the same as” Confusion. I am using a Rhetoric Concept called Analogy. For some people Work becomes highly Confusing when IT (not it) is used.

When the Advisors have created a lot of Confusion the Programmers start to find the Logic behind the Confusion. When they believe they have found the Logic they create an Infrastructure to Support Networks of Confused Advisors.

This Infrastructure uses different Terms for the Same Concept to make sure that the Advisors are able To Apply What They are Talking About. This new Infrastructure supports Endless Circular Conversations and it Generates a High State of Confusion. The high state of Confusion generates lots of Work (and Income) for Advisors, Programmers AND Users.

The Advisors are Happy because they can go on with their Circular Dialogues, the Programmers are Happy because the Advisors are Happy and the Users are Happy because they have something To Do.

Perhaps Work “is a” “State” of “Being Confused“.

If we could Eliminate all the Advisors and let the Craftsman talk to the Craftsman we would Avoid a Lot of Problems.

If we would Stop Programming What is not Programmable we would Avoid even More Problems.

If we would Stop Innovating IT we could Finally start to Use IT.

If we could Program Ourselves we would not need a Computer at All.

Watch Out.

This is an Advice.

LINKS

About Rhetorics

How to Analyze a Discourse

About the relationship between Creativity and Confusion

How Software Packages generate Confusion

Why Scientists are Really Artists and Why Many of Them are Creating Terrible Artifacts

Why Logic is not Logical at all

How the Programmer stopped the Dialogue

About Loops in Programs

About Software Layers

A Practical Approach to Create a Balanced Community

The current generation of programmers are doing what Edsger Wybe Dijkstra hoped not would happen. They are the cause of the mess we are in. They forgot to keep the balance between structure (Thinking) and meaning (Emotion).

The Managers of the Programmers are “out of tricks” and have become cynic]]><![CDATA[al. They don't believe there is a way out. They are "muddling trough", reacting on every major critical event with an impulsive re-action. It will be hard to convince them that there is a solution to their problems.

The major target are the Users within or the Customers of the companies. They feel very stressed and don't have a clue why this is happening to them.

Their asset is that they Know How they are doing their job and they are able to Articulate What they are Doing. The only thing they don't see is the Cycle. They are Part of a Whole without seeing it. This is normal.

When we ask the User what they are doing we give them a simple tool to paint a picture of the flow of their activities. If they have done this we generate the processes that are supporting them instantly. This will motivate them to go on.

In the next step we make a connection between Action and Meaning. We ask the user to define the meaning of the terms they are using. We could use Wiki. Wiki makes it possible to start a dialogue about the meaning.

This dialogue will create mutual understanding (Consensus) and in the end a Shared Convention, a mapping of meaning from person to person, culture (community, context) to culture (community, context). The next step is to transform Meaning into Structure.

The person that was an expert in the transformation of meaning to structure was Sjir Nijssen. He developed a method called NIAM. NIAM has generated many dialects called ORM, FORM, RIDDLE, FCO-IM and DEMO.

The basic idea of all these methods is to analyze human communication in terms of the sentences we speak and the commitments humans make to the each other.

NIAM takes out of a sentence the verbs (Action) and the nouns (Structure) and of course the numbers and creates a semantic model (the so called Universe of Discourse).

What Nijssen understood was that a computer is able to register Facts (reality we agree upon). The facts are stored in memory. If we all agree about the facts we can use them to start reasoning.

When we know what the user is doing and what he means we can move to other actors he has defined in his activity-diagram. We just perform the same process over and over again. Every time a new user (actor, role) is added we restart the dialogue about meaning.

At a certain point in this process of inquiry we will notice that the meaning in the context is stabilized. It has turned into a shared convention. What we also will notice is that a faint cycle (or a cycle in a cycle) becomes visible.

It will be full of strange loops and useless activities. Some people in the context will produce and others will just throw away what the others are producing. They don't know because they don't communicate on the level of their community.

This is the moment to start a new dialogue. The dialogue of Reflection (Why?). We are able to show to the actors in the community the whole. We call this tool a Monitor.

We will give them the opportunity to start a shared process of innovation (using the imagination). We can give them tools to Explore, to Design new activities and to Analyze the Facts (find patterns). We can even give them tools to Play with (games, simulator). All the time the Monitor will show them the state of their joint effort. I am certain the community will clean itself, get into balance, with joy.

In communities and organizations and of course society there are many stable invisible infrastructures. The visual activities of the users have to be connected to these layers. This has to be done by programmers. They have to define interfaces. User-Data is converted into messages that jump out of the layer when a human interference (mostly a decision) is really needed.

The consequences of this approach will be enormous. Many people will be out of work but they will be needed in the next step of Collective Innovation.

Want to read more about Dijkstra

Why Good programmers have to be Good Listeners

Edsger Wybe Dijkstra (1930-2000) was a Dutch Computer Scientist. He received the 1972 Turing Award for fundamental contributions in the area of programming languages.

One of the famous statements of Dijkstra is “Besides a mathematical inclination, an exceptionally good mastery of one’s native tongue is the most vital asset of a competent programmer“.

Why is this so important?

People communicate externally and internally (!) in their native tongue. If they use another language much of the nuances of the communication is lost. When people of different languages communicate they have to translate the communication to their internal language.

A computer language is also a language. It is a language where every nuance is gone. With the term nuance (I am a Dutch native speaker) I mean something that also could be translated into the word meaning. A computer language is formal and human communication is informal. We communicate much more than we are aware of when we speak.

So Programming is a Transformation of the Human Domain of Meaning to the Machine-Domain of Structure.

A programmer with a mathematical inclination (being analytical) AND an exceptional good mastery of one’s native language is the only one who can built a bridge between the two worlds.

When he (or she, woman are better in this!!!) is doing this he knows he is throwing away a lot of value but it is the consequence of IT. Machines are not humans (People that are Mad act like Machines).

Machines are very good in repetition. Humans don’t like repetition so Machines and Humans are able to create a very useful complementary relationship.

The person that understood this very well was Sjir Nijssen. He developed with many others something called NIAM. NIAM has generated many dialects called ORM, FORM, RIDDLE, FCO-IM, DEMO. The basic idea of all these methods is to analyze human communication in terms of the sentences we speak. It takes out of a sentence the verbs and the nouns (and of course the numbers) and creates a semantic model of the so called Universe of Discourse.

What Nijssen understood was that a computer is able to register FACTS (reality we don’t argue about anymore) and that facts are stored in a database. If we all agree about the facts we can use the facts to start reasoning. Want to know more about  reasoning. Have a look at this website.

To create a program that supports the user a good programmer has to be a good listener and a highly skilled observer. Users are mostly not aware of their Universe of Discourse. They are immersed in their environment (their CONTEXT). Many techniques have been developed to help the observer to make it possible to recreate the context without killing the context (Bahktin). Have a look at User-Centered-Design to find out more about this subject.

Want to read more about Dijkstra read The Lost Construct.