Scheduling ahead of time is critical, find times when everyone can meet. Coordinating well is essential when not everyone is in the same place.
Start prototyping early, as when you run into a problem too late into the project, you often have to rush and cut corners to get it finished.
This has been a very useful experience with regard to working on a large multi-faceted project in a team, as well as my CAD skills. I learned about the dangers of procrastinating on detailed planning, the need to ensure everyone in a team is always giving each other detailed updates, and I am also now quite a bit better at designing CAD parts designed to interact with other CAD parts or real life parts.
What I learned was that there is always room for improvement. Also that it is very important to also describe aspects of your work and coding.
Try not to have too many steps that require previous steps to be completed to start, you might be stuck on one part and hold back the entire project. Instead, especially early on, have as many things being worked on at the same time as possible.
Communication is vital, when certain functions begin to fail. Communicating with team members about unprecedented situations allows the overall team strive to find solutions in a timely manner.
Scheduling and designating time to work on separate components works efficiently. Working on different components at a time, allows the team to move forward in the project.
With almost all of us working in different places, it was important that we were making all the details clear for everyone, otherwise misunderstandings could lead to problems that are not discovered immediately.