Pair Programming Is For Everyone: A Rebuttal
Desi McAdam and Jim Remsik of Hashrocket recently got featured in a New York Times article on he practice of pair programming. It’s wonderful that they believe so strongly in the practice and devote so much time and attention and money to hiring great people and providing them with a world-class work environment, but I thought Obie’s followup really excludes folks who might otherwise get a lot out of it. Hashrocket’s setup provides an optimum environment for pairing, but the folks who first came up with the practice didn’t have that kind of workspace available everywhere, and you don’t have to, either. Here’s five things I thought Obie missed.
5. Pair Programming Doesn’t Require Expensive Hardware
All it requires is a computer you’re willing to treat as a shared workspace. Ideally it should be as powerful as a standard developer workstation. If you’d like to, use a dedicated account on one pair’s laptop. Many IT departments already have spares of everything else-keyboards, monitors, and mice-locked away in a storage room somewhere.
If your workspace is configured for cubes, see if you can borrow a conference room for a few days, until you can decide if you like it or not. And as for me, I program in pairs all day but my desk chair of choice possesses neither bells nor whistles. As with everything else, a good manager should treat you with respect and provide you with the tools that you need to get your job done. But that doesn’t mean that they owe it to you to rip apart your entire office if you decide you’d like to start trying to pair a little bit more.
4. Everybody Need Not Get Together And Love One Another Right Now
Not everyone has to get along to get a lot out of it. If two people don’t play nice then don’t pair them together all that often. It might be unpleasant for some managers to have to enforce certain basic hygiene practices, and it might lead to some uncomfortable conversations. But it seems unlikely that it would result in a major shift, as most workplaces already do this.
3. Many Businesses Are Happy To Try Pairing
In more than two years working at ThoughtWorks I’ve never been on a project that didn’t consist of 100% pair programming, though that’s not the case for all of our projects. But my experience has been that we treat pairing as simply part of a well-run Agile project and we expect our clients to recognize and respect that, and virtually all of them have come around to the opinion that it’s something they should be encouraging in their own enterprise. As part of those projects I’ve paired many non-ThoughtWorks developers from more conventional IT backgrounds and I’m proud to have worked with all of them.
2. Many Software Shops Care Deeply About Return On Investment
This isn’t exactly contradicting Obie’s point. But whereas not every IT shop might care about excellence per se (although I think he might be selling some folks short) they all, from the smallest boutique shop up to largest enterprise business unit, care about spending their IT money wisely. Pair programming makes good business sense: it cuts down on defects, raises productivity and helps you spread technical knowledge radically faster than ever before.
1. Pair Programming Is Not Just For The Elite
You do not have to be an incredibly hardcore developer to enjoy it or want to try it. It will make most developers, whether they be great or small, young or old, or male or female, happier and more productive. If you tried it and decided it wasn’t for you, then fair enough. But everyone a little bit of curiosity-especially those who think it couldn’t possibly work for them-should give it a shot. It’s just a nicer way to work.
Posted in Professional | 5 comments | atom
Trackbacks
Use the following link to trackback from your own site:
http://blog.brianguthrie.com/trackbacks?article_id=pair-programming-is-for-everyone-a-rebuttal&day=22&month=09&year=2009
Your host is
Well said, man. Well said.
I’m all about the inclusiveness and the love. I think everyone should at least try pairing.
Or do like I did, try it and almost get fired for trying pairing.
And—try it for at least a few months to truly get into it. Then see how they’re feeling. Don’t just give up after a bad day or three.
As always, context is king. Pairing’s not always the right thang, but I’ll bet it is the right thang more often than the industry currently thinks.
Brian,
Not every place in the world is ready for the kind of change that practices such pair programming require.
There is a lot of businesses whose mentality doesn’t fit with it.
Yes, agile is great. No, it is not going to work with unprepared people.
Therefore, it is not for everyone.
@lark: Thanks for the kind words. Maybe I haven’t been at this for long enough but I still feel like there are others out there-
young developers, if no one else-who can get a lot out of it. And the fact that your company and might keep bringing on enthusiastic clients is testament to its success. One advantage of working onsite as opposed to remote is that business stakeholders get to see the process up close, too, and that seems to win a lot of hearts and minds.@Rafael: It’s true that people and businesses need to approach it with the right mindset. But I think there are plenty of them out there who haven’t given it a shot yet, and I don’t think that only organizations like Hashrocket and ThoughtWorks are capable of it. Everyone who wants to can and should try it.
I think Obi did a lot of us a disservice by using pair programming as an excuse to talk about how awesome he thinks Hashrocket it. Excuse me if that sounds mean-spirited but some of us spend a lot of time and effort trying to introduce pair-programming and this article could just add to the resistance.
I think that the nature of the task at hand is an important factor in the decision on whether pair-programming is a good idea or not. It’s more important than whether or not your screens have an apple logo.
Obi was understandably happy to have an excuse to write about his company and how, somehow, they are “capable” of something that many others aren’t. But his opportunism isn’t compatible with wanting to make the world of software development a better place.
Thanks for the five points. Totally agree, in particular with “Pair Programming Doesn’t Require Expensive Hardware”.