I'm in two minds about this kind of thing. On the upside, some of these ideas really do seem like they could help programmers to do things quickly and with fewer bugs. On the downside, the combination of bright colours, constant supervision, hand-holding, over-planning and idiot-proofing would make me feel like some kind of cross between a kindergartener and a galley slave.
"We also followed the XP practice of pair programming, which is why you'll see only two desks for the four programmers."
Pair programming is stupid. It is ok in only two situations:
A senior engineer is teaching around a more junior engineer (or somebody that just started).
There is a modification/urgent patch going on, that is touching very critical point of the application, or that is being done right before the product is shipping.
I just can't imagine good developers like pair programing. It is such a waste of resources.
I like pair programming. It's not stupid - it's counterintuitive, and like any counterintuitive idea is vulnerable to snap dismissal, as your comment appears to exemplify.
Anyone who's ever spent hours going down a rabbit hole that in retrospect was an obvious mistake may have a conception of why it's not necessarily a waste of resources. That, and anyone who realizes that programming isn't straightforward and he may not have all the best ideas about how to do something.
It's too bad that the discourse around pair programming is dominated by people who think it should be mandated and people who think it's stupid.
Anyone who's ever spent hours going down a rabbit hole that in retrospect was an obvious mistake may have a conception of why it's not necessarily a waste of resources. That, and anyone who realizes that programming isn't straightforward and he may not have all the best ideas about how to do something.
Sure, but many people know when they are about to go down a rabbit hole, and can just ask a colleague for some advice.
Also, experience is the best teacher. If you rely on the person sitting next to you to prevent you from making mistakes, you don't learn anything.
If you know in advance that it's a rabbit hole, that isn't what I meant by rabbit hole.
But I'm not sure what the point is. Arguments about pair programming in general never go anywhere. What was I thinking? Oh yeah, that it isn't "stupid".
I like making things together with others, and I like doing stuff on my own, and I like not being micromanaged and told how to work, and I think my code gets better when I work on it with somebody smart, and I think I contribute to other people's too. You figure me out.
But I'm not sure what the point is. Arguments about pair programming in general never go anywhere. What was I thinking? Oh yeah, that it isn't "stupid".
You are putting words in my mouth. I didn't say anything about pair programming being stupid.
I like pair programming when another programmer and I are about to start a project using technologies we're not familiar with. But each programmer should have a computer. It works well when one of you is projecting his screen and the other is on a laptop. In this situation both of you are going to have questions constantly and spend a decent amount of time looking up answers. You end up explaining things to each other as you figure them out.
Pair programming is awesome if you're a consultant. Who wouldn't want to bill out at twice the rate for nearly the same amount of output as a single developer?
Any system that depends on whiteboards and cards (like XP and Agile seem to be obsessed with) is going to fail miserably when you have a development team / company spread across offices on different continents (hell, probably even different cities). I figure you could get by with using an equivalent webapp or some other application, though.
A guy I used to work with found that his code was much better when he explained it to me as he was writing it. [Note: this seemed to work whether I was there or not.]
Ok ok , before the downmods come, I'm just saying!!!
This seems to be everything that 37 signals DOES NOT stand for, so the point is ...to each his own!
1 computer and 2 guys? Their budget must be horrible, poor people can't even afford a second pair of keyboard and a mouse so they can at least use the same machine at he same time :D