D'Arcy from Winnipeg
Solution Architecture, Business & Entrepreneurship, Microsoft, and Adoption

People Against Paired Programming Part 2: Douchebags

Saturday, November 22, 2008 12:02 PM


We continue our discussion of comments left over at Aaron Erickson’s blog in response to his post about the marketing failure of XP and specifically Paired Programming (PP). To recap:

Aaron, in his post, jokingly (although much truth is said in jest) talks about how PP will prevent developers from doing things like surfing the web or getting bothered by others, but he makes valid points that there are tremendous benefits to an organization that implements PP. The point of the entire post was making a comment on how we need to better market and educate people on what our practices really are and the benefits.

In Part 1 we looked at some comments that were left by Smelly Troll Developers. In this post we’ll look at the other group that seems to have taken residence on Aaron’s blog comments: the Douchebags.

What are Douchbags? These are the arrogant, egomaniacal, typically (but not always) senior developers…some I’m sure that are really just high-ranking Smelly Troll Developers. When expounding on PP, they make statements like (and I apologize for the length, but you really need to read the entire thing to understand the level of douchebaggery here):

I think your faith in pair programming is a bit naïve.  According to a scientific study in Norway, pair programming seems to work well for junior programmers, but it appears to be a lot less beneficial for more senior programmers.

Of course, there are activities where working in pairs has its advantages.  I often debug with other people, or I discuss design while we look at code together.  I sometimes also work in tandem with others when I need to explain a piece of code.

I am rarely productive when pair programming.  It slows me down.  I use multiple screens and I have a very non-linear way of writing code.  I usually have 2-3 activities going at the same time.  It is confusing to watch -- even more so when I am "in the zone" and things progress rapidly.

If someone interrupts me while I have Flow it can ruin hours of productivity.

I suck at staring at other people I work too.  I get frustrated by looking at them do some things in painfully awkward ways as well as having to ask them "how did you do that" when they have some super-efficient way of doing something quicker than I can see.  Even worse is when I don't understand where they are going -- which often happens when I try to pair program with someone whose non-linear workflow resembles mine.

For me, pair programming kills focus, kills concentration and kills productivity.  And it was enlightening to learn that others had discovered the same thing through scientific studies:  that pair programming works for a very limited set of circumstances.

Save the above piece (your blog posting) and read it again in 10 years.  Believe me.  10 years is going to whizz by fast and if you look at that piece again in 10 years, you are going to be embarrassed at your youthful cocksureness.

I know.  Because I have a habit of keeping notebooks and revisiting my notes 1-2-5-10 years later.  It is highly educational, it keeps you sharp and it is also very humbling.

As for pair programming, if you are a software engineering fashionista, you are half a decade late.  The reports are in and the verdict is that this bullet was not made of silver either.

(The upside is, when the next fashionable thing in software engineering sweeps the conference circuit, you will have acquired a healthy dose of skepticism).

Sim

So first of all, Sim never actually names the study or provides a link to where we can get more information. So as far as we know, the study is bunk. Also, calling someone’s faith in something naive just sounds condescending.

His next two paragraphs actually make some sense…he’s being very practical and stating his feelings. But then it starts to fall apart.

I get frustrated by looking at them do some things in painfully awkward ways as well as having to ask them "how did you do that" when they have some super-efficient way of doing something quicker than I can see.

Seeing someone do something in a painfully awkward way = opportunity to teach and mentor. Having to ask “how did you do that” shouldn’t make you frustrated…it should be an opportunity for you to learn. We ALL learn, no matter our level of experience.

you are going to be embarrassed at your youthful cocksureness.

Without reading any other part of his comment, Sim is awarded the Douchebag of the Blog Comments for this post. How unbelievably rude.

He then goes on to talk about software engineering “fashionista”s being late to the table on paired programming and how anyone who buys into it at a senior level is…well, I can only assume that we should be embarrassed at our youthful cocksureness.

OK…so there are other comments that sound similar to this one, but you can go on Aaron’s blog and read the comments yourself. People really need to learn to read a post before commenting. Aaron was *not* suggesting that Paired Programming should be used 100% of the time, in all situations. He was pointing out that when its being suggested, there’s a negative connotation to it and that we need to do a better job educating people about what the benefits are.

The comments from douchebags like Sim present a very telling tale about some aspects of our industry: ego and pride run rampant. Saying that an opportunity to interact, share, and learn from a colleague isn’t a benefit to senior level developers is telling that a person really doesn’t care about their broader developer community, including their co-workers, peers, and employer. To view PP on simply its productivity statistics doesn’t tell the whole story of its purpose, and is a naive way to approach its validity.

So let’s tackle the common sentiment from the comments that PP has no benefit to senior developers…

Over the last two weeks I’ve learned a tonne from a senior co-worker who paired up with me. We were going over a complex deployment scenario and at the end of the exercise I had a much greater understanding of the work involved thanks to her instruction.

At PDC, I did a pairing session with a friend of mine who knows WCF way better than I do and walked me through a simple example to show how it works.

A former colleague routinely uses paired programming while on contract with a client, and from what I’ve heard has seen great success.

The problem that we get into is when we use the term “senior” developer. There’s the typical seniority that comes with being in an industry for a long time. But there’s also seniority in a particular technology. For instance, an 8 year VB 6.0 developer would need to submit to a 3 year C# developer if he/she wanted to catch up and learn C#. While there’s still value in the 8 years of VB 6.0, there’s new insight to be gained from the 3 years of C#…and both people will more than likely learn things from each other.

That’s the beauty of paired programming: its about knowledge transfer and not about flaunting ego or experience. A senior developer that does not see the benefit in mentoring other developers, and being mentored to, is a douchebag (this is regardless of whether you use PP or not).

I’m very fortunate to be part of a developer community here in Canada that checks its ego at the door. We have a mailing list set up where we freely ask for feedback and post questions. The people on this list are what I would consider not senior but elite developers: people that have experience, wisdom, and depth in their chosen field. They are also active in community, and have no problem sharing their knowledge with others. This, in my mind, is how all senior developers should act.

The idea that a senior developer cannot PP with another senior developer is bunk, and for the same reasons as I state above: As a senior developer, I would *rather* sit with someone and work on a problem together so I can learn from them and they can learn from me. But to do that, both parties need to have the right mindset…they need to be comfortable with themselves, realize that the experience is supposed to build up the team and not turn into a pissing match.

So let’s bring this post to a close and so I leave you with this: Paired Programming, or any development methodology, is a tool that needs to be used in proper context. I don’t believe that PP should be used 100% of the time, but I also believe that there are situations where it should be considered and encouraged. The bigger issue I see with the comments left on Aaron’s blog is the arrogance of those who think that they don’t need to pair up because of their stature and experience. We need less of this sentiment in our industry and more collaboration, openness, and trust. Luckily, I think that those posting on Aaron’s blog are the exception and not the norm.

D




Feedback

# re: People Against Paired Programming Part 2: Douchebags

Amen brother! The only thing I will add is that I'd rather pair, and thus learn, from a green newbie than 90% of the people in this industry who attach the term "senior" to their job title. 11/22/2008 1:35 PM | Donald Belcham

# re: People Against Paired Programming Part 2: Douchebags

The best part of this post was where you referred to me as "elite". SUCK IT DONALD! 11/22/2008 1:54 PM | Justice~!

# re: People Against Paired Programming Part 2: Douchebags

Seriously, though, I can't agree more. The big problem is that half of these "senior" guys are the dudes that got made fun of in high school, never had a date they didn't have to pay for, and thus now act like knobs in the one area where they actually don't fall down in failure. It's terrible.

I sometimes take for granted how awesome my circle of developer friends is, including you and Don. 11/22/2008 1:55 PM | Justice~!

# re: People Against Paired Programming Part 2: Douchebags

Hey, when you get reddited, you are going to get some douchebags :). Besides, the business of blogging requires a thick skin, and I think my article speaks well enough for the concept that someone's own insecure reasons not to pair, well, look just like that.

Put another way, a good percentage of the anti-pairing people demonstrated with their post why they would be bad at pairing - nobody pairs well with a douchebag, so there is a certain self selecting, reinforcing nature about those kind of commenters.

Thanks for the post in support though! :) 11/22/2008 3:42 PM | Aaron Erickson

# re: People Against Paired Programming Part 2: Douchebags

Well summed up. I have someone around here to knock me down when my ego gets too big. :D 12/12/2008 8:16 AM | Robz

# <a href="http://google.com">fdj</a>

yesb fgdy fdj ty 3/24/2018 2:09 AM | file explorer

Post a comment