I am primarily interested in problem solving. Some problems are technical in nature, others are social. I like that the Agile approach to software development embraces human nature and leverages it to the benefit of both the business and it's employees.
In the interest of limiting distractions, many companies build cube farms. They tuck each of their employees away in their own little box and assume that this will make them more productive. This is a technical solution to a social problem. If we were horses, blinders might work, but we're not. We are social monkeys. We need social interaction and mental stimulation, so we then turn to facebook or the web when we get lonely or bored. The company then employs website filtering in an attempt to keep the employees on task. This results in frustration as employees are prevented from doing legitimate research as a result of the filter algorithm's false positive's. As time progresses, the employee grows to resent their overlord. They build relatively weak social relationships with their co-workers and they feel no sense of loss when they quit.
Now let's look at the Agile (XP) alternative, Pair-Programming. Two people, two keyboards, two mice, one computer. The entire workday is a combination of conversation and problem-solving. It's anything but boring; "Let's do this", "You're an idiot", "Holy crap, you're right!" It is difficult to surf the web when you're in the midst of a conversation. Over the course of a few days worth of shared coffee breaks, lunches, and late night beers, you develop some surprisingly deep friendships. Over the course of a project, the team becomes a family. Pair-Programming is a social solution to a set of social problems. It reinforces positive behaviors without impugning the dignity of the employee. On top of that, the resulting code has 40% fewer bugs, requires fewer total hours to deliver and two people now understand the same code base, so you're covered if one of them wanders in front of a bus. Everyone lives happily ever after.