Thursday, January 20, 2011

The Cost of Fixing Defects

Steve McConnell wrote a great book about Software Engineering called Code Complete.  If you're not a Software Engineer, I wouldn't recommend it.  But if you are, read it now!

But there are 2 really excellent points in the book, even if you are not into Computer Science (really!).  The first is the subject of this post: the exponentially increasing cost of fixing defects as you progress into the development cycle.  It looks something like this:



Along the bottom are the various phases of developing a piece of software.  The far left signifies the early stages and the far right, the stages after deployment.

The chart above actually leaves out a preliminary stage that I always start with: the problem statement.  You can't solve a problem unless you know what it is.  This fundamental truth is all too often forgotten as people rush into a "solution."

The idea is that if you catch a problem in the first stage, which is simply the conceptual defining of the software, it costs 150 times less to fix than if you wait until the final stages.  150 times! 

The idea makes intuitive sense.  What is surpising in the scale of the difference. 

Now, I promised this would be interesting outside the scope of Software Engineering.  I think you can see how:

This same principle applies all around us.  Often we rush forward into something, only to realize a flaw in the early stages of the venture that is now costly (or difficult, or painful, or annoying... or impossible) to fix.  Or if the flaw was in the very definition of the problem, we have now wasted a tremendous amount of energy pursuing a "solution" to the wrong problem. 

I have most often observed this in discussions that turn into arguments.  A simple misunderstanding of a term or idea initiates a useless argument.  One party says something and means one thing.  The other party thinks he meant something else, and off we go!  Hopefully the one with a cool head eventually realizes they are talking about different things and the whole thing is passed off as an exercise in futility, getting nowhere.

So let's now apply our SE principle.  If, at the outset of this discussion, one could actually take a step back and define the nature of the disagreement, likely they would realize it was a simple misunderstanding and no argument would take place.  

How do we do this?  The Bible writer James tells us to be "swift about hearing, slow about speaking."  Oh, if we could only apply that!  Instead of being so quick to support our case, why not ask a question to clarify the other side?  And then listen to the answer!  

I can't tell you how many times this has aided me at my former job and even now in casual discussions.  So often we find that there is really no disagreement at all.  Or, equally importantly, that the disagreement is completely different than we initially understood it to be.  In either case, we save ourselves a huge amount of effort and time.   

Again, we cannot solve a problem if we do not know what it is. 

Now, I mentioned there were 2 great points from this book.  We just talked about the first.  The second is Broken Windows.  I will save that for another time. 

Wednesday, January 19, 2011

The Quasi-Naïve Democratic Approach

... and why it doesn't work.

Recent events have inspired this post.  But this is just a placeholder, because said events were not sufficient to inspire the body of the post. 

Hopefully other events will take care of that, and I'll return here to fill in the details.

Thursday, January 13, 2011

Retrospective Dynamic Inconsistency

Or "The Present Bias"

(I'm using these terms a little liberally until I can come up with a better name for this phenomenon.)

The idea is very simple: people bias the present.  Netflix shows us this very clearly...

http://youarenotsosmart.com/2010/10/27/procrastination/ 

But the bias extends its reach much further, even to the point of being considered dangerous.  This is especially so when the bias is against the past, not the future.  And this happens all the time.

You have probably noticed this.  For example, when a new version of software, device or even a car is released, we automatically assume it is better.  Only if there is solid evidence to the contrary do we change our view.   

But that's not really dangerous, is it?  The danger is when this is applied to theories, or even our very mode of viewing life.

How?

As a society, we tend to be slow to accept new models of our universe.  Just look at the initial backlash against the heliocentric model.  But once that model has taken hold, we laugh at the old views.  "How could anyone have believed that?" we quip.

In other words, we bias the present view.  Of course, the heliocentric view is the correct one, so what's the problem?

The problem is that new is not always better.  Here is what can happen:

1) A new view arises 
2) Even if it not a complete theory, it takes hold for some reason (we won't get into those reasons right now)
3) It becomes the de facto standard view
4) But there are still missing (or broken) pieces of the view, which are now ignored because it has become the present view
5) We only ever hear of those missing or broken "subviews" when they themselves have been replaced by a more modern subview

For example, let's take Evolution.  It has become the dominant theory today.  Of course, it has plenty of holes, but the only time we hear of one of them is when it has supposedly been filled.  It goes something like this: "For a long time it didn't seem possible that [insert something here], but now we know better!"  Or: "There was a fatal problem with [whatever], but today we have a new theory about it!"  Errors only exist in the past.  What we now believe is perfect.   

In other words, problems with the present, dominant view are ignored because it is the present, dominant view.  Or maybe they are not ignored entirely, but somehow the evidence is made to fit the view.  As they say, "all observations must fit the prevailing paradigm."  That is exactly the kind of thinking we are talking about. 

So what's the point?  It is easy to bias the present.  But like all biases, it can lead us to wrong conclusions.  We can't let it.

Sunday, January 9, 2011

Red Bull

At the English Convention in September, I met some friends from Santos who invited me to help in the ministry there.  As you may have noticed from previous posts, Brazil is very cool.  So I jumped at the opportunity.

Santos is an island south of Sao Paulo.  And the beach there is gorgeous.  It is lined with a huge garden, including statues and fountains.  I just realized I don't have any pictures of it during a nice day, so here are some night shots:


Ah wait, here's a shot of the coastline:



The ministry there was also nice.  Santos is a huge port so there are many cruise ships that stop there.  Often, the crew enjoy reading about the Bible.  So we spent some time talking with them.

I also met an awesome Nigerian man who so very much appreciated the Bible.  We quickly became friends as we studied the scriptures and I was sad to have to leave him.  He even gave me a shirt!

I stayed with a lovely couple, Agenildo and Isabel, who, like the entire group there, were very hospitable.  They knew I like to eat, so they lined up some nice places to go to... including a place that has Filet Mignon Pizza.  I am not making this up!


It was excellent!

The weather fluctuated between wickedly hot and rain.  When the rain wasn't too bad we went to the beach anyway.  And when it was, well... Law and Order marathons!

On Saturday we went to Guaruja, which is a magnificent beach.  Check it out, although pictures really don't do it justice: 


You may be wondering why the title of this post is Red Bull.  Well, if you visit Brazil you'll find out... 

Wednesday, November 17, 2010

Behavioral Context Projection

Have you ever read or seen Jurassic Park?  Remember how they recreated the dinosaurs?  They found old dino DNA in amber and used it to clone them.  At first glance, it sounds feasible.

However the DNA was incomplete.  And you can't clone something without complete DNA.  So - and here is the interesting part - they grafted amphibian DNA into the missing areas.

Why am I talking about this?  Because people do the same thing emotionally.  It is called behavorial context projection.

Humans are very social.  We function in families, communities, organizations, enterprises, cities, and countries.  We need to understand people to operate smoothly with them.  And so a great deal of our prefrontal cortex is used to read the emotions, foci, and intentions of others.  Most of this comes through nonverbal cues: facial expressions, tone of voice, body language, hand gestures, etc.

Even small children do this.  If a baby is playing with some toys, and you put your hands over his, what is the first thing he does?  He looks up at your face.  Are you angry or annoyed?  Or do you want to play with him?  He is trying to read your mind, as we all do every second we are with people.  

Autistic individuals cannot process this data.  And though they may be very high-functioning in other areas, this inability is socially debilitating.

So it is critically important for us to gauge what is going on in others' minds.  We go to great lengths to do so.

But here is the rub:

Sometimes the cues we receive (or at least the ones we choose to pick up on, consciously or subconsciously) are incomplete.  They are like that incomplete dino DNA.  So what do we do?  We fill in the gaps, just like in Jurassic Park.

But what do we use to fill in the gaps?  We use the emotional context that we know of for that person.  So if the person is a close friend, we have a large context with which to fill in the gaps.  We know "how they are."  But what if he is only an acquaintance?  Or someone we just met?  Then we have little to no context for that person.  So what do we use?  That is the question!

We use our own behavorial context!  Because, of course, everyone is like us.  And if not, they should be.  Or so the Pygmalion reasoning goes.  In actuality, though, no one is really like us... especially those of a different temperatment, culture, background, etc, etc.

In other words, this is what happens: We pick up on some nonverbal cue in someone we don't know that well.  In attempting to analyze that cue, we (consciously or unconsciously) reason "well, this is what I would mean if i did that."

So what happens?  Well, you recall what happened to Jurassic Park.

This is why so often, first impressions of people are very different from what we think of them after getting to know them.  Or if a friend of ours meets another friend for the first time and asks, "what's wrong with him?" We respond, "oh, thats just his way."    

Have you ever noticed how pleasant people notice the positive in others?  And how negative people notice the negative?  Granted, part of that is what we choose to focus on.  But I believe a part is also behavioral projection.  We are filling in the gaps in others' cues with our own emotional context.

What does all this mean?  There is nothing we can do to stop others from projecting their emotional contexts on us.  But we can realize that we are projecting ours on them.

So if you find yourself often disliking new people... maybe you dislike yourself.