Tuesday, December 29, 2015

Control Languages

I wrote this post in reply to Liz Keogh who said responded to my post on the similarities between "Behavior Driven Design" and "Behaviorism"

"BDD is merely the use of examples in conversation to illustrate the desired behaviour of a system. The approach is all about communication, and nothing to do with behaviorism.

There are some supporting tools which turn examples into automated tests, and this is what Kevin Dishman has criticised. They aren't the only tools, nor do they speak to the heart of BDD.

I think this post indicates some fundamental misunderstandings (and Kevin Dishman's post is misleadingly titled).

December 27, 2015"

The comment made me feel bad; So, I spent the morning reading reading Dan North's introduction to BDD (dannorth.net/introducing-bdd/). In this article, Dan North says he was using an Agile method called Test Driven Design. TTD creates a barrage of tests on the logic of a system.

He was having a hard time wrapping his head around the logic of programs and decided that replacing the word "test" with "behaviour."

"I found the shift from thinking in tests to thinking in behaviour so profound that I started to refer to TDD as BDD, or behaviour- driven development."

Changing this word made Dan North feel empowered. The little switch in Mr. North's mind pushed the logic of the system back a step and gave him the feeling of control.

This is identical to what happened with Behaviorism.

Prior to behaviorism, academics held that man was a rational being. When researchers spoke of human beings, they would talk about the reasons for their actions.

Behaviorists felt uncomfortable in engaging in this discussion of reason and felt empowered when they pushed reasoning aside and decided to focus strictly on human behavior.

Behaviorists felt extremely empowered because they systematically pieced together an ideology that reduced the people around them from rational beings to test subjects ripe for experimentation.

Behaviorism quickly became a favored ideology of the ruling elite and intellectuals. When you reduce people to behaviors, you no longer feel obliged to engage with their reasoning processes. You can treat them as sets of behaviors.

North's works seems to take on a Chomskian flare. Changing a word made him feel better; So he jumped in to create a new language and that made him feel even more empowered.

Dan North is openly admitting that he created BDD as a control language.

I admit, I like to feel in control. So, I would like to ask you a simple question: Is my organizing a department so that I feel empowered really the best course for a company or for society at large?

If I told you that; you would probably look at me and say: No way! I don't want to be subservient to you!

IMHO, development should start with the questions about what is best for the business and what is best for society at large.

Come on, if a business isn't actually improving things for its customers or for society, should it really be in business?

But, lets get back to Dan North.

Mr. North is writing in 2003. If I take his article as if it were the first article ever written on business communications. Then, yes, it sounds wonderful. But it wasn't the first article on communication. People have been yakking on and on about the best way to organize things since antiquity.

The things we have today were built on things from the past.

Dan North was working on, what was then, a relatively new idea called Test Driven Development which was created to overcome perceived faults in Object-Oriented Analysis, which was created to overcome problems of procedural design, which was created to over problems with control structures in basic programming languages which were designed to overcome the vagaries of assembly language which was created to piece together ideas about algorithms and Boolean Logic with computer circuitry. These ideas, in turn were built on ideas dating centuries before.

Needless to say, there are huge volumes of work on system design. One can't just jump in and say: "Oh wow, this idea makes me feel empowered and go it with."

One actually has to ask if this path is taking a better route than the millions of routes tried and followed before.

It is fun to say: "Dan North is just trying to improve communication by creating a new language."

Stepping back, one has to ask: are our communication problems the result of lack of language? There's over a million words in the English language. The language includes tried and true grammatical forms. Why isn't this language good enough?

The language we have is sufficient for communication. The problem is that, even with a great language, it is extremely difficult to get people do what we tell them to do.

Mr. North isn't creating a new language to communicate ideas. The purpose of this new language is to control a process.

BBD falls into a category called a control language.

This brings up a fun story.

Back in 1949, a man named George Orwell was looking at the control languages being created by behaviorists and other ideologues of his day.

The people creating the control languages felt empowered, but Orwell had the foresight to think ahead and tried to imagine what would happen to the people who inherited a world controlled by the new control languages.

Orwell decided to write a piece of speculative fiction about the people who inherited a control language that he called "newspeak" that took place 40 years in the future. He called the book "1984."

The idea of a control language is not new. Orwell wrote about this very subject 70 years ago. I agree with him. Control languages seem empowering at first but entrap the people who become ensnared in the newspaek.

The idead of creating languages to control processes or people is not a new idea.

The issue of the proper use of language has raged since the invention of language itself.

The proper use of language was a prime topic of Socrates through Aristotle. This tradition created an education based on a thing called the "Trivium." The three legs of classical education were Grammar, Logic and Rhetoric.

Grammar studies the structure of language. Logic is about the structure of ideas. Rhetoric is the art of successfully communicating ideas.

The whole point of classical education was to teach students how to develop and communicate their ideas. Dan North is not the first person on the planet to think that language is about communicating ideas.

I find the Trivium to be relevant in programming. For that matter, I would say that the best way to organize software education would be to revive the Trivium.

So, lets look at computer science:

There are many different computer languages that have similar functions. The syntax of these languages maps to grammar. What the computers actually do is called logic. The way we talk about computers is rhetoric.

Interestingly, the heart of Aristotle's logic is a strange thing called a "syllogism." To cut to the chase, an "if/then" statement is a form of the syllogism. Boolean Logic is a subset of classical logic written in symbols for easy manipulation.

We need to be able to talk about computer design. This talking about design maps to rhetoric.

All of the little tricks we pull on our coworkers to win the battle of ideas fall under the guise of rhetoric.

This whole thing we call computer science is very much a natural development from the discourses Aristotle that took place a few millenniums back.

The computer sitting on your desk top is essentially doing what scholastic monks were trying to do in the Middle Ages. Computers are trying to make sense out of an endless stream of syllogisms.

The book "Aristotle's Children" is a fun read showing hows societies blossom when the people embrace logic and how societies falter when power brokers first try to control the use of logic and are later compelled to stamp out reason.

This cycle of reason blossoming and being suppressed by man's innate desire to control others has been repeated time and time again in history.

Orwell's generation was the generation that removed logic from our primary school curriculum as politicians sought the creation of new control based languages. (The left, the right and this thing called ISIS in the Middle East all use control based languages to consolidate power).

So, let's look at the removal of logic from the curriculum.

Anyway, the Trivium formed the heart of education from Aristotle up until the early 1900s.

We had a education which focused primarily on teaching people how to develop and communicate ideas.

The problem is that people who learn to develope and communicate ideas tend to become unruly.

Seriously, people who are skilled at reasoning start to realize that the ideas coming from the king are no better than those from the learned pauper. Even worse, since they can communicate, their discontent with being ruled can spread.

In 1776, there was an event in which classically trained thinkers in the colonies had the temerity to up and rebel against their beloved king! (gasp)

It happened again in France a few years later! (gasp, gasp).

I don't want to get into that spectacle beyond saying that people who learn to reason will question their leaders and become unruly.

After the horrific events of the American and French Revolution, the ruling class retreated into its ivory halls to address the question: How does one reign in all these unruly people?

If language and logic are the source or rebellion, one must create new languages and new logic to reign the people in!

These new creations were called "ideologies." The new ideologies generally feature some form of "modern logic" coupled with some form of control language.

BDD seems to fit this pattern called "ideology." The people who push it seem to fit to a model called "ideologue."

Historically, one of the first new ideologies was created by King William IV and Sir Robert Peel (1778-1850). It is called "conservatism." The century saw a ton of other control languages and logics including socialism, modern liberalism, capitalism, progressivism, etc..

What the ruling class did was truly clever. Both the Left and Right are based on the essentially the same structure. Rule by George Bush and rule by Barrack Obama both result in centralization and a growing state of individual disenfranchisement.

There's not just one ideology based on the modern form. There's hundreds and many of the ideologies re-inforce each other.

Behaviorism is really just one of a whole class of ideologies that feature a control language and new logic. Behaviorism is often applied in political science where political decide on a desired outcome then set in on manipulating the people until they achieve their outcome.

The US Founders dreamed of a society where people, trained in classical logic controlled their government. The removal of logic from the curriculum flipped the switch and we now have a ruling class set on manipulating the people.

After reading North's work, It is clear that BDD shares both a name and structure with this an other ideologies.

As for the need to create a new language, I contend the existing languages work quite well.

Creating a newspeak to reign in software design is likely to make communication harder in the long run as each little fiefdom develops its own newspeak.

I would encourage anyone confronted with BBD at work to resist.

If you really want to learn to communicate, I suggest reading "The Art of Thinking" (aka The Port Royal Logic) written by Antoine Arnauld in 1662 before inventing a new language.

No comments: