This one's for the developers out there: "The Paradox of Agile PM and Virtual Teams" by Dr. David F. Rico. For those not developers, agile software development is the "just makes sense" way to go about what used to be called programming, doing small bits of work in small teams that include people from diverse functions, then running the code quickly to detect problems, then repeating the process again. As I am not a developer, I'm ready to take some heaved tomatoes for getting this wrong technically but...you get the picture. Make a little, test a little, then do it all again.
Of course it's more complicated than that - and it has its own special schools of thought (viz. lean development) but anything that involves people across functions and tests, tests, tests before full commitment to a final product/process has got to be good.
So, point of this post: see Rico's article, which takes many of the key practices of agile development and interprets them for virtual teams. Here, for example, is one set: