Can distributed software development be agile?
Extreme Programming Explained: Embrace Change