Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I have just finished reading Peopleware (DeMarco, Lister) and have researched on Extreme Programming (XP) a little before. As I see it now, the two approaches are almost exclusive to each other.

Peopleware suggests to isolate programmers from any disturbance and sets priority on uninterrupted work in order to help programmers to achieve flow. XP on the other hand proposes to ensure as much communication as possible, even suggesting for programmers to "sit together", code in pairs and generally work in the same room (generating a lot of noise).

Are those two competing schools of thought, is perhaps one of them proven right/wrong or is there an effective compromise? I can see the points both sides make, but can't see any reasonable compromise.

I am very new to studying software development management, so it's possible that I just misunderstood something. All comments welcome.

P.S As an added mini-question, as a programmer, which would you find more productive?

share|improve this question
4  
They are not exclusive. Pair devs should work uninterrupted. –  lukas May 22 '11 at 18:43
    
@lukas: even considering this, what about "sitting together"? –  alex May 22 '11 at 18:49

4 Answers 4

up vote 11 down vote accepted

You missed the point with Peopleware. Nowhere the book suggest to isolate programmers in individual offices, but group them in 2 to 4 persons per office.

The main reason is to isolate programmers from non programming related noise, such as the sales guy that yell at the phone, chit chat between the manager and the secretary, noise generated by people moving, telephone ringing, doors slapping, and more.

Extreme Programming is fully compatible with a 2 to 4 office. To do pair programming, you are 2 or 3 max.

share|improve this answer
    
Yes, reviewing the thing I noticed the remark that programmers should be isolated "from noise much different to ones they make" i.e. from non-programmers. Thanks! –  alex May 22 '11 at 20:04
    
I had the luxury of working in a 3 person office for about 5 years. It works really well - if the people are working together. –  quickly_now May 22 '11 at 23:28
    
@quickly_now: you work in an open space now? –  user2567 May 23 '11 at 7:55
    
I work in a one person office now. I used to work in a 3 person office, and before that in open plan. (And before that... more open plan... and before that, an office with a door I could shut). My preference after all this is a one person office. If you can't get that luxury, then 2-3 people is good. More than that is just a giant pig-pen. –  quickly_now May 23 '11 at 8:33

I think both approaches describe a general work strategy but not necessarily every working minute in a day. A balance must exists.

Be close enough to enable rapid communication but retreat into some secluded area when the discussion is done and the actual work must follow.

I personally find "sitting together" and "generating a lot of noise" for the whole time doesn't work. There is time for talk to discuss problems, decide on the next steps and so on and then there is time to code and people must have quiet areas to do so.

share|improve this answer

The key is the phrase "isolate programmers from any disturbance and sets priority on uninterrupted work". The priority thing is clear in XP when Stories are selected each iteration to be the most valuable. Customers must strive to have a "stable" set of stories, without changing his mind too much mid iteration (it may happen, but it should be special cases, not the norm).

The "isolate programmers" part is the most tricky. It means that programmers should be doing what they do best: Program. For XP to work, programmers must be put in an environment where they focus solely on completing stories, without any external overhead like meetings, phone calls, small favors and such. This can be accomplished either by putting each pair of programmers in their own office, or by having all programmers in a warroom where nobody else can enter unless absolutely needed.

share|improve this answer

Personally, I find it IMPOSSIBLE to work in pair with someone, even if I am learning from that person. Maybe it's just so that some people (i.e. me) work better in the more "classic" ways (getting into the zone, silence, etc...).

Or maybe it's the fact that XP is mostly implemented within web dev shops in which people wear many hats and instead of solving hard problems in one domain (e.g. optimizing a piece of code), they spend time finding an already existing solution for a problem not very hard intellectually (e.g. integrating a shopping cart onto the page etc.).

For something like this, working in pairs, lots of communication etc. might be the only way to go forward effectively (you're not going to spend X hours just to find that e-mail sending module Joomla!/Droopal bug, are you?)

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.