In Programming Fun, Wayne Allen writes...
I was talking to one of our developers last week and he made a comment that didn't strike me until yesterday. He said he was actually having fun again! This made me realize that by placing responsibility for tasks in the correct hands, everyone can better enjoy their jobs. I recall other projects where the development team was given high level guidelines and left to it. Everything was fine until we got done with the "fun" stuff and were trying to make decisions about features etc, where we didn't have the slightest clue. The developers were working on whatever they wanted, and not much was getting accomplished.
I experienced the same thing on my last job when we implemented XP. After a couple of days the developers were saying, "This is fun again!"
The most interesting thing, though, was a couple of weeks later, when they added, "I'm tired." Apparently pair-programming stopped them from taking breaks as often as they had before and they were genuinely tired at the end of the day. My solution? Foosball.