16

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?

2
  • 4
    They are not exclusive. Pair devs should work uninterrupted. May 22, 2011 at 18:43
  • @lukas: even considering this, what about "sitting together"? May 22, 2011 at 18:49

5 Answers 5

12

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.

4
  • 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! May 22, 2011 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. May 22, 2011 at 23:28
  • @quickly_now: you work in an open space now?
    – user2567
    May 23, 2011 at 7:55
  • 1
    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. May 23, 2011 at 8:33
11

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.

4

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.

1

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?)

-2

Yes, XP is completely incompatible with Peopleware and the good software development practices within. Perhaps you need to refresh yourself with the section before continuing?

http://code.scottshipp.com/2017/03/22/open-office-plans-excerpt-from-peopleware/

Table 8-1 at the bottom pretty much spells it out with the final entry being the ultimate torpedo.

  1. Do people often interrupt you needlessly? 38% yes 76% yes

In a multi-person office there is physically no way to avoid this. Someone's spousal unit calls them and even if the person walks out after answering, you are still interrupted by the answering. Someone tries to be polite, going for coffee and calls out to see if anyone wants anything.

Let's not forget the coder who puts on headphones and cranks the volume up so you can still hear it 6 feet away or worse yet, feels compelled to use a pen/pencil to drum along with a section of a 'great tune.' Oh, and if you are unfortunate enough to have the one sports fan working in IT, they come in all pumped up.

"Oh! Did you see last night's game?!!!! And that CALL!!!! Were they blind??!!"

Well, you get the picture.

XP by early definition is 2 programmers and one keyboard. It's a methodology really only suited for deep diving on hard to find bug fixes, not for large scale software development. Both the Open Plan and the Team Room concepts violate the research done in Peopleware.

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