Saturday, December 19, 2015

Repeating Mistakes from Philosophy into Code

There is an interesting trend. The academic community takes popular ideas from philosophy and tries to impose them on computer engineering.

Behaviorism is a weird ideology that appeared last century that de-emphasized individual reason in the study of human behavior in favor of the idea that man is simply driven by impulse.

Historically, Behaviorism played a role in the decision to remove logic from the curriculum last century.

Apparently there is a new buzzword in soft ware design called BDD (Behavior-Driven-Development)  that is becoming popular in agile design circles. I've been reading buzzword rich articles trying to sell this technology.

It appears that the goal of BDD is to create a group-think approach to software development that creates something called "Domain Specific Languages" that spews out code.

Kevin Dishman wrote a blog post called BDDont questioning BDD as a design tool.

I want to applaud Mr. Dishman for standing up and calling out this technology.

The ideology of Behaviorism has not improve society.

Ideas from behaviorism have influenced both the left and right, and we see that many politicians and people are making their decisions based on impulse and are not reasoning through ideas.

How can we reason through ideas if we never learned logic?

What we have now is a political system with media feeding us an unending stream of images which cause impulses which then cause us to vote and tweet in predictable ways.

The factions in our political system use Domain Specific Languages. The result of removing the study of logic from schools and emphasizing behaviorism is that the people at large have become tied up in factions and cannot communicate with each other.

Personally, if I was working for a company that tried to impose BDD, I would probably just leave. But, you know, the imposition of BDD in the work force creates a situation where one can actually measure the results of development driven by a group-think process to ones in which individuals engage in reason.

The latter, reason, produces better results than group think. I hope Mr. Dishman keeps up his scrutiny.


Liz Keogh said...

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).

y-intercept said...

I reread Mr. North's intro to BDD. He is clearly creating a control language focused on the behavior of the system (including the people in the system).

I wrote a reply, but it exceeded the 5000 character comment limit, so I made the reply a post called "Control Languages"

Sorry for the length of the reply. Control languages have a long history.

y-intercept said...

I wanted to point out. Even if Dan North and Liz Keogh are not Behaviorists and are not seeking to create a control language.

There's a large number of people who are. People with mal-intent are skilled at capturing the devices of the well intended.

A dictator, by definition, is a person who rules by dictating commands.

Dictators control languages to determine the behaviour of followers.

Dictators can get into power by capturing the languages created by people who believed they were just improving communications. This pattern keeps repeating in history and is blantantly obvious.