We often discuss how easy it is to build software development, if we get the basics right. Most of the time it is all about people and the relation we share among us. Working remote sometimes add to another level of abstraction and discontinuity between teams and often is a killing factor.
For me, building the right relationship between the team members is always the number one item to push for. This assumes even more importance while working with remote teams as there are a lot of abstraction and differences that might come in way of building the right relationship which paves the path for the perfect software.
Most of the people concentrate on the mechanical part of software development but in the quest for it cut down the strings for an open communication and building a relationship that is more than work. When we do that, we open ourselves and show that we all are human, and we also have our thoughts, feelings, expressions, etc.
Having a relation that is more than just work, allows us to understand each other and our perspectives better, which in turn lets us come together to build great software. When we can talk easily and express ourselves we reduce a lot of complication and build something that is easy to understand and a delight to work with.