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

David's notes on "Drive"

- "The Surprising Truth about what Motivates Us" by Dan Pink.

Amazon book order
What I notice first and really like is the subtle implication in the shadow of the "i" in Drive is a person taking one step in a running motion.  This brings to mind the old saying - "there is no I in TEAM".  There is however a ME in TEAM, and there is an I in DRIVE.  And when one talks about motivating a team or an individual - it all starts with - what's in it for me.

Introduction

Pink starts with an early experiment with monkeys on problem solving.  Seems the monkeys were much better problem solver's than the scientist thought they should be.  This 1949 experiment is explained as the early understanding of motivation.  At the time there were two main drivers of motivation:  biological & external influences.  Harry F. Harlow defines the third drive in a novel theory:  "The performance of the task provided intrinsic reward" (p 3).  This is Dan Pink's M…

Exercise:: Definition of Ready & Done

Assuming you are on a Scrum/Agile software development team, then one of the first 'working agreements' you have created with your team is a 'Definition of Done' - right?



Oh - you don't have a definition of what aspects a user story that is done will exhibit. Well then, you need to create a list of attributes of a done story. One way to do this would be to Google 'definition of done' ... here let me do that for you: http://tinyurl.com/3br9o6n. Then you could just use someone else's definition - there DONE!

But that would be cheating -- right? It is not the artifact - the list of done criteria, that is important for your team - it is the act of doing it for themselves, it is that shared understanding of having a debate over some of the gray areas that create a true working agreement. If some of the team believes that a story being done means that there can be no bugs found in the code - but some believe that there can be some minor issues - well, …

What belongs on the Task Board?

I wonder about these questions a lot - what types of task belong on the task board?  Does every task have to belong to a Story?  Are some tasks just too small?  Are some tasks too obvious?  Obviously some task are too larger, but when should it be decomposed?  How will we know a task is too large?

I answer these questions with a question.  What about a task board motivates us to get work done?  The answer is: T.A.S.K.S. to DONE!



Inherent in the acronym TASKS is the point of all tasks, to get to done.  That is the measure of if the task is the right size.  Does it motivate us to get the work done?  (see notes on Dan Pink's book: Drive - The surprising Truth about what motivates us) If we are forgetting to do some class of task then putting it on the board will help us remember.  If we think some small task is being done by someone else, then putting it on the board will validate that someone else is actually doing it.  If a task is obvious, then putting it on the board will take vi…

Elements of an Effective Scrum Task Board

What are the individual elements that make a Scrum task board effective for the team and the leadership of the team?  There are a few basic elements that are quite obvious when you have seen a few good Scrum boards... but there are some other elements that appear to elude even the most servant of leaders of Scrum teams.









In general I'm referring to a physical Scrum board.  Although software applications will replicated may of the elements of a good Scrum board there will be affordances that are not easily replicated.  And software applications offer features not easily implemented in the physical domain also.





Scrum Info Radiator Checklist (PDF) Basic Elements
Board Framework - columns and rows laid out in bold colors (blue tape works well)
Attributes:  space for the total number of stickies that will need to belong in each cell of the matrix;  lines that are not easy eroded, but are also easy to replace;  see Orientation.

Columns (or Rows) - labeled
    Stories
    To Do
    Work In P…

Team Performance Model - by Drexler and Sibbet

Many of you have all heard of the Tuckman model of team dynamics (Forming, Storming, Norming, Performing).  It was created in 1966 and has become the most popular model for describing team behavior.  Is it time to level up in your mental model of team dynamics?  Are you ready for a richer more functional model?



Introducing the Team Performance Model by Drexler and Sibbet



Orientation - Why am I here?
"Orientation is about understanding the purpose of a team and assessing what it will mean to be a member.  you need to understand the reason the team exist, what will be expected of you and how you will benefit from membership.  In a new team, these are individual concerns, because the group is only potentially a team.  that is why these concerns are illustrated as occurring in your imagination at an intuitive level.  As a team leader it is important to provide time and space for people to answer these internal questions themselves."

Keys to when Orientation challenges are resolve…