Software development is an interesting topic. Unlike any other domain, it allows small teams to work together without having regular meetings, and still working together as if they were in the same room. However, this is also one of the biggest problems, and often poses challenges to overcome. During the different phases of developing an application or a game, communication needs to be adapted.
When it comes to working out a concept, it is hard to not meet up and discuss things in person. There is just too much that can be missunderstood when brainstorming, and there is nothing like writing down things together and throwing ideas into the room, collecting what each and everyone on the team is thinking. This is usually called the divergent phase. Communication has the biggest impact on this phase and regular meetings have to be held in order to work out a concept that works.
Working out the details
After having gathered tons of ideas, each of the members gets his role and has to improve the concepts in his domain. This is the convergent phase. Experts in their topic refine the huge collection of ideas and layout a valid proposition. In this phase, communication is still important but meetings are not necessary. Daily or weekly ( depending on the working speed ) updates by the means of digital communication are absolutely necessary,but also sufficent.
When it comes to summing it all up, and working out the final concept, Inter Team Communication becomes curcial again and has to be held in the form of a meeting. It is absolutely necessary to do this to have everyone of the team at the same point, and the concept in the end is the same for everyone. Misunderstandings at this point will cost you alot of time and the best way to ensure none happen, is a meeting in person.
At the next stage of development, the concept is translated into an application, everyone in the team does his job and keeps the rest of the team updated. If you are a small team, and have one person per domain, it is fine to reduce the communcitation to the means of a chat again. An important thing to note here is to use a tool of communication that allows you to keep track of the messages, address one member of the team directly, keep the chat structured and cleaned up but still allowing everyone to search trough it all. The tool of choice of our team is Slack, because it allows you to do this in a way, no other tool does. It lets you seperate chats into channels, keeping tech talk away from the designers, but still allowing them to read trough it when they got time. There are a lot of benefits from working like this and you should really check it out.
When it comes to finishing the app, it is always nice to meet in person to encourage each other in the final part of the development. It is possible that one or more members of the team become disencouraged and meeting helps gathering the necessary power to finish it all up and getting it done.
It is definetly a challenge to keep a good and working team up and running if there are no regular meetings. But this is also a benefit because there is no time lost with gathering, moving to a place, or finding a timeslot everyone is available. The benefits of software developments are that you don't need to be localized at a spot, but this is also it's biggest challenge. Finding a good way inbetween is what makes a team successfull or not. If you found your way of working in a team, realizing your projects will become alot easier. It might be hard in the beginning but once a team is used to each other, the hardest part is overcome.