Working Together
Aug. 29th, 2003 09:46 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
One of the tenets of the ridiculously named "Extreme Programming" (a better name being "Agile Programming" of which I believe Extreme Programming is a subset) is Pair Programming, the idea being that two programmers working together are far more effective than two programmers working on their own code.
I'm not 100% convinced that this is necessarily true for actual programming, although I'd like to give it a try. I am now 100% convinced that this is true for all the admin faffy stuff that surrounds it. When you have to go through 20 tables and check the data structures, or compare two different sets of information, having one person call out figures while the other person checks them is a vast improvement. Not only is it faster because one person doesn't have to keep track of their position on both screen and paper (or even worse, switching between two applications), but it's actually motivational, because your attention is constantly engaged by the other person. It's one thing to be engaged by the work you're doing, but for things which don't interest me, try as I might I can't manage extended focus - having someone else waiting on the next figure to be read to them makes a huge difference to the enthusiasm and speed with which it's found.
Anyone out there got experience with working closely with other people in this kind of situation?
I'm not 100% convinced that this is necessarily true for actual programming, although I'd like to give it a try. I am now 100% convinced that this is true for all the admin faffy stuff that surrounds it. When you have to go through 20 tables and check the data structures, or compare two different sets of information, having one person call out figures while the other person checks them is a vast improvement. Not only is it faster because one person doesn't have to keep track of their position on both screen and paper (or even worse, switching between two applications), but it's actually motivational, because your attention is constantly engaged by the other person. It's one thing to be engaged by the work you're doing, but for things which don't interest me, try as I might I can't manage extended focus - having someone else waiting on the next figure to be read to them makes a huge difference to the enthusiasm and speed with which it's found.
Anyone out there got experience with working closely with other people in this kind of situation?
no subject
Date: 2003-08-29 02:06 pm (UTC)"Man - i live for this stuff"
(from the modern classic, XXX)
no subject
Date: 2003-08-29 02:09 pm (UTC)no subject
Date: 2003-08-29 02:07 pm (UTC)no subject
Date: 2003-08-29 02:09 pm (UTC)no subject
Date: 2003-08-29 02:54 pm (UTC)Last year, I've programmed with my co-worker on a semi-large project, reviewing each other's code and trading off tasks to the point where both of us are comfortable with each other's code. Pretty interesting, and our styles have meshed together well. I suspect that many shops do this informally - a "hey, can I run this by you and see what you think" type of thing. I've benefited, and I know our manager likes the idea of "I can't contact person A, so I'll try person B and chances are he'll know too."
It helps to have a manager-type person - the "head doctor" in the Mythical Man Month, so to speak. The manager doesn't have to be the best programmer or have to have a power trip, but the manager should be good in knowing what constitutes a "task". Overwriting files isn't as bad as you'd think, but it helps that we sit right next to each other.
We're going from ASP to .NET, and oddly enough we've found it harder to share these tasks in the .NET environment. Part of that is probably the learning curve, and part of that is probably the whole "Visual Studio" project approach (as opposed to the individual files in ASP pages).
no subject
Date: 2003-08-31 10:41 am (UTC)Or bounce ideas. I think best when I can discuss.
I think that in real life I actually inflict a form of pair (triple!) programming on people. I can't hear a problem being discussed that I have useful thoughts/input on without getting involved.
That's a strength and a weakness.