Bike Shops, shovels, and Pair Programming

Posted on Tuesday, April 14, 2015





I've had a chance to do a bit of "better" paired programming lately and I have been surprised at the positive results.  It's got me thinking about some of my past experiences….







Working at the Bike Shop


In the early 90s I was working at Bill's Bike Shop in Idaho Falls Idaho.   It was a dream job for me, at the time, working in a bicycle shop as a bike mechanic.   I worked there several years and even a few summers after I started college.  The staff of mechanics there did change from year to year.

I bring this up because the original staff was horrible.  Okay, maybe not horrible, but nowhere near as good as it could be. They knew their craft well.  They were good bike mechanics, but the head mechanic, who was a jerk, defined the team's attitude.

As a new mechanic I had a lot to learn.  I went to the head mechanic with lots of questions seeking guidance.  My queries were always met with rebuffs, greater than thou attitudes and, "why don't you already know this?".  He did not have the time or patience for me and certainly did not want to teach me anything.  I'm a smart guy, so I just figured it out on my own as best I could.  It did take 2-3 times longer to get myself to an effective level in my work than it would have if someone, anyone, would have taken the time to educate me.

Fast forward a few years… the jerk is gone… well he's actually at another bike shop, but he's gone.  Not only is he gone, we have a very effective team of mechanics.   And, not only do all of us mechanics get along, we respected each other and were quick to help.  Also, that help does not come with sarcasm and belittling remarks.



Team Differences


So what was the result of the team differences?  Under the good team, we had three mechanics with more work than we ever had before.  Under the bad team, with the toxic jerk, there were five mechanics struggling to get the work done. 

On the good team, we sometimes paired on repairs.  On one occasion all three of us worked on the same bike, at the same time, to get it done quickly and out the door.  We trusted each other and could work up-close and personal without rubbing each other the wrong way.

On the good team, the customers saw our attitude and actually purchased more.  I even have a direct example.  Often enough, when you go to a bike shop, you usually attach yourself to one of the employees.  Every time you come in you make a beeline for them to help you.  We had a particular customer who was a bit of an oddball … or so we thought.  This particular customer's 'go to guy' was the jerk mechanic.  The jerk mechanic hated dealing with him and treated him poorly. 

Now, to be honest, he was kind of an odd guy.  He had a weird bike with a weird set-up (an old Raleigh mtn. bike from the mid 80's with a Suntour 38 tooth cog on the back and a limbo spider gear in the front, giving him a quad in the front… and there were even more odd things about this bike).  He also refused to buy a new bike.  He just wanted his bike to be 'fixed up', and because of this, he was in the shop … a lot … usually once a week.

Fast-forward a few years and the jerk is gone.  Now, that odd customer has to choose one of us to 'beeline to' in the 'nice' crew.  He chooses my buddy John.  Turns out this guy has stacks of $$ and really wants to spend it on upgrading his old bike with shocks and any other toy he can add.  We tried to steer him toward a new bike, as we thought it would be a better value for him, but he would hear none of it.  He wanted to pimp his ride.  So we helped.  He would come in every week or two and drop $200 - $400.



Why bring up this story?  

We were not "pairing" eight hours a day… 
But… you know… we did partially pair and we could have successfully paired eight hours a day.  We were an effective, good-natured, pair-capable, and hard working team.  Not only did three of us do the work of five, but we also sold more because the customers like dealing with us.  They came back more often with more work.

Old team
  • Never paired
  •  Hostile
  •  Silos of knowledge
  •  Alienated customers


New team
  •  Paired ~1 hour a day
  •  Kind hearted
  •  Shared knowledge
  •  Delighted customers



Funny… the old team sounds a lot like software teams I've been on the past. 



Why the difference between the teams?


It's easy enough to say we had a bad apple in charge of the first team.  I can safely say his attitude sunk the team's effectiveness to a lower level.  But, why?  Why did he act this way?   I think it was fear/avoidance of intimacy.



Fear/Avoidance of Intimacy


OK… I need to find a synonym for intimacy

synonyms:      
closeness, togetherness, affinity, rapport, attachment, familiarity, friendliness, friendship, amity, affection, warmth, confidence; informalchumminess

I like confident friendly rapport. 

Maybe rapport...  Looking up the definition of rapport I found.

a close and harmonious relationship in which the people or groups concerned understand each other's feelings or ideas and communicate well.

I think that fits well! 

I might add one thing to the definition.  Handle conflict well with each other.  They can passionately argue without alienating each other.





So… why did the head mechanic not want a good rapport with the rest of the team?  I am not really sure but here is a list of possibilities.

Fear 
  • Feared we would not like him
  • Feared we would take his job
  • Feared if we knew what he knew he no longer is special (silo of knowledge)


History
  • Maybe the owner caught him "pairing" with someone before and reprimanded him.  
  • Someone paired with him before and it did not go so well.   (He was ridiculed so now he ridicules)
  • Maybe his father never had time for him… (I don't know)


Maybe he just did not like us.
  • Maybe the rest of the team's personalities were just not compatible with his own. (and I think this is legit)
  • You avoid people you don't like


Waste of Time
  • Maybe he viewed every pairing as a waste of his time.  Every minute spent with you is a minute taken away from his "real work"





There is more to think about on this subject, I feel like I am just beginning to understand it.


Shovel?


I think my old view of two guys one shovel is dead.  I think it’s a much more complicated equation than that. 

I showed that three good pairing bike mechanics >  five no pairing mechanics.

The three mechanics paired, but not eight hours a day…. So we effectively had < three shovels.   The five mechanics never paired so they always had five shovels.  

So what is the equation?  I need to chew on this a bit more and think it through…

Anyone want to share their thoughts/experiences on the subject?








References



This post is a part of and epic, the Pair Programming Epic.


Epic Goal:   Learn the art of pair programming.




No comments:

Post a Comment