Skip to main content

Myth of the Construction meme in Software

I'm reading Scott L. Bain's book Emergent Design - The Evolutionary nature of Professional Software Development.  I'm reading it because of the discussion in a work session on the nature of software just this week.  One person was describing why we software developers needed to think long and hard on our problems and design the best possible solution to deliver value to our customer.  He was advocating the BDUF philosophy.  I asked if he thought software could be grown, as a tree is grown from a seed into a seedling and then many years later a mighty oak tree.  He said software was more like the Sears Tower (a local to Chicago never refers to the building by it's current name - Willis Tower).

I'm constantly amazed by the power of a meme.  The ability of this construction based mental model to remain within our industry is astounding.  Discussing this with a colleague, we thought this one model to be one of the hardest for people in their transition to Agile to re-wire in their brains.

So this is why I'm re-reading Emergent Design.  Is there something here that will help me in the dialogue with these Architects?  I've place my mental model of software as a creative process, a work of art, an activity of design where the building or construction phase takes about 20 milliseconds (incremental compilation of modern IDEs).  The test phase of software may require much longer up to 10 minutes (run a suite of automated user acceptance & behavioral test).  Then we destroy the completed product (delete the compiled executable) and go back to design with the knowledge gained from the tests.  This quick feedback loop is why software is not like the Sears Tower.

We could not build the Sears Tower and then check to see if the lights were in the preferred location on a sunny spring day to light the artwork on the executive suite wall; find that the lights needed to be relocated and then destroy the building.  Blow it up and start again.  Place the lights in a better location and now look at the electrical outlets, how do they work?  A little to the left - blow it up again.



So I have great hope that Scott Bain's book will turn-on a new connection in my brain pathways.

In the section on "What sort of activity is software development?" Scott notes that licensing and oversight by the state are aspects of a profession, such as doctors, lawyers, accountants, engineers.  He argues that "software should be conducted as a professional activity, but that it isn't yet."  I find it funny that even my barber is licensed and has oversight.  Yet many in the software industry believe they are professionals.



I wonder how many "professionals" that have say 5 - 10 years experience developing software do not know how to unit test their software adequately?  I heard of a test manager (UAT) reporting that he didn't want to waste his tester's time testing the application that was being delivered from the development group because it had only 7% code coverage by unit test.  In my opinion this is malpractice (accept that malpractice applies to a professional).  I assume that a hiring manager could go to the local university and hire a CS graduate that not only knew how to unit test - but also practiced TDD.  The company would be well served by hiring 2 - 3 college grads and putting them on the team, allowing them to train the old guys.  Learn the accepted practices of your profession or get out of the job.

I suppose if software was a construction site job, then the architect could design a wonderful application on paper then give it to a programmer to code.   The skills used would remain rather constant.  There would be little need to refresh knowledge or to keep current with the best practices.  Then the programmer would be much like a steel worker, highly skilled in a narrow focused specialized trade.  No need for a profession for the programmer.

But architects are licensed professionals aren't they?  Did you notice that we borrowed the construction industries labels for abstract roles.  That's too bad.  Anyone know the meaning of the word architect?  The word comes to English, from French, Italian, Latin, and originating in Greek as arkhitekton, arkhi - 'chief' + tekton - 'builder'.  It is not surprising that a word borrowed so many times has lost its original meaning.  One who knows how to build.  How many of your companies architects write code - build software?


-- 2010-12-19 reading Drive by Dan Pink

Behavioral scientist divide what we do into two categories: algorithimic and heuristic.  Building the Sears Tower is algorithmic (construction); designing the tower is heuristic.  We use the term build the widget application when we mean design the application.  Changing the terms changes the assumed behaviors that are required.  Changing the behaviors that are required changes the management system we wish to use to view progress and assess success.  The twentieth century was the age of algorithmic work.  We don't live in Frederick Taylor's world today.  It is a new world where the work is heuristic.  Look at Ford's assembly line; we have hired robots to work the line.  Thanks to Taylor's methods the robots are very good at their jobs.
1 comment

Most Popular on Agile Complexification Inverter

Software Development terms applied to Home Construction

Let's Invert the typically wrong headed view of Software Development project management as a construction project.  We can map it the other way just to see if it works... to have some fun, to explore the meaning of phrases we toss around quite frequently.


Normally Project Management terms come from a construction domain.  We are going to apply the lexicon of modern software to the construction of a home.  We will follow the construction project and meet some of the people doing the work.

This is a very small (8 homes from $600,000 skyward) program in my 30-40 year old neighborhood.

About 6 months ago I saw the programs landing page go up.  It gives casual observers and some of the stakeholders a general idea of the intent of the program.  And most importantly who to contact for additional information if you happen to be interested in their products.

The Refuge program has 8 product projects and has them running independently.  Yet much of their DevOps infrastructure has already b…

Where is Shakespeare When We Need Him?

We are desperately searching for a term for people that connotes the best of human kind.  The creative, sensing, combinatorial synergistic, empathic solutioning persons that have yet to been labeled with a role name that works.

Some of the old terms:
Staff, Workforce, Human Resource, My Team, Army, Company

Shakespeare created 1700 words in his time.  He mutated verbs to nouns, and vice-a-versa, transformed verbs into adjectives, and formed words from whole cloth never before heard.  This skill is rare, but there is a poet that can create the term we need in the twenty-first century.

What should this term define?

21st Century Human Resource; the generalizing specialist.

Yes, but what more?  What less?

Suggest your poetry in the comments, let us see if we cannot do 1/1700 as well as The Bard.

By-the-way; who create the phrase "coin a word"?



A TED Play List - How do you create new words
6:52
Erin McKeanGo ahead, make up new words! In this fun, short talk from TEDYouth, lexicographer Er…

a little feedback please...

some feedback please...
How do you like the new look and feel of our site?
  ___)  nah (I like the old one better - bring it back)
  _X_)  yeah (much cleaner and easy to navigate)



powered by Typeform
See Also:

One Dark and Stormy during a Hurricane

I'm from the Carolina's where legend has it that our family commonly just hunkered down in the home on the coast and waterways than to head for inland shelter. Now that's from the old school days of barely improved (read paved) roads. They counted a storms severity by how high on the back porch steps (about 15 - top to ground) the water reached.  I don't recommend this action in todays world of long range forecast and transportation options.

I do recommend a drink or two in a hotel bar, far far away.

This is the week that Harvey came ashore in Texas.  I live on a hill in the little old town of Grapevine outside Dallas and Fort Worth.  And thank you all for letting me know that a storm is coming... I didn't get out and walk Malibu before the rain hit, so I grabbed a hat and we went anyway.  Much nicer walk with the drizzle, I'd say.

I'll raise a glass to you - if you were not smart enough to do the responsible thing, at the last responsible moment.

I do re…

Innovation in the Automobile Industry

In the 1900s the automobile industry was the most important and innovation industry in the USA.  But one could question if this was good for our society in the long run.  And one could question if they actually innovated.

In the early 1900s there were few automobiles, very little infrastructure created to support the industry.  For example the road system was still designed for horse drawn wagons and the wagon wheel (remember a steal rim and wooden compression spoke wheel).  The future US Highways, or the 1950s Interstate Highway System at the cost of $425 billion were decades and many innovations away. There was no gas service station, there were however horse stables, farriers, and blacksmiths in each town along the roads.  There was no real "road map", there was no road naming system, like was created in 1926 - the United States Numbered Highway System.

The industry employees millions of people, and was a large factor in the economy of the USA.  It created or was created b…