A couple of years ago the Agile Software movement was starting to take shape. I heard about it back then, but didn't pay it much attention. I even attended a presentation put on by one of my clients where they tried to convince their NY office to adopt the processes described by Extreme Programming (XP). At that time I didn't have much of an opinion about XP, but I did know that it would be a hard political battle to convince the powers that be that this was worthy of their time.
But the more I read about the agile software processes, the more I became interested in them. There are apparently sub-processes that fall in to the agile software development category. Namely, Extreme Programming (XP), SCRUM, Crystal, and FDD. I've only really read about XP and there certainly could be others that I have yet to hear about.
One of XP's suggestions is the concept of pair programming. That basically means having two programmers in front of one computer. Each programmer takes turns programming while the other provides “support” services. I haven't read enough to know what this second programmer is supposed to do, but in my mind it's moot. I think it's moot because he political battle required to convince management that two programmers should only have one computer is one that I doubt I'd win.
But I'm still interested in the other aspects of agile programming. Of particular interest is the notion that requirements changes should be welcomed even late in the development cycle. This implies that there isn't an artificial requirements freeze date which means everyone can take advantage of the learning that happens only after the actual coding has begun. Any methodology that can inherently deal with constantly changing requirements warrants a close look.
Here's a link to the full Agile Manifesto.