Remote-only work requires different collaboration skills than what most programmers are used to. While in-person collaboration is about talking, remote collaboration is about writing. We have some learning to do about how to effectively communicate in writing and we also need some better tools. Here are some places to start:
Literate Programming (invented by Donald Knuth). A way to make code comments first class citizens in your source files — and keep them in sync with code changes.
Internal Reddit clones: an asynchronous way to make decisions and have discussions around specific topics, as opposed to chat software where items scroll off the screen and get lost in daily chatter.
Alternatives to task hopper management software (ex. Jira, TFS, Pivotal, Linear) We need systems that focus on recording roles, projects and relationships -- not automated to-do lists. Because remote workers have less frequent interaction, they need much broader responsibilities than they get from Agile stories. Our current software systems are not equipped to handle that.
Wiki systems that aren't graveyards of immediately outdated information. We need systems that foster more aggressive individual ownership over areas of documentation. We need to gamify wiki. Wikipedia works, and we can make work-place wikis work too.