Game Development in an Distributed Environment

Recently I did a presentation on software development in distributed environment. Since Betware has six offices around the world with twelve teams we need to manage distributed teams. Our PMO has good experience in dealing with teams where the members are located in different offices and timezones. We have found out what works and what doesn’t. But, at the end of the day, the best rule is this: don’t distribute your teams.

In the era of constant connectivity you might think that its ridiculous to worry about management of distributed teams. In fact, we exchange information in real-time. We can have text, audio and video in real-time. And that is exactly what we do. We deploy an IP phone station that links every employee’s computer (with speaker headset) within the company. Meeting rooms have speakerphones and cameras. With Microsoft Communicator or TeamView we can share desktops.

But in the end nothing works better than just sitting down with your coworkers and going over the details. Face to face communications. If you think about agile software methodologies the key is high communication bandwidth. Indeed, the important thing about development is the communications. This is the same with software architectures: don’t distribute you objects. Network latency will kill performance. For teams the same applies for communication.

Of course for practical reasons, it is not always possible to stick with a team in one location. There might be expertise required that is not possessed within the team in one location. The team in one place might not be enough and more team members from other locations need to help. Whatever the reasons, we always have some distribution and remote communication. Just like with distributed architecture, you need to choose your boundaries carefully. What we try to do at Betware is to define “project silos” that are subprojects with in projects. By defining the subproject carefully you can control the communication boundaries.

Communication technologies will improve, and more importantly people’s comfort level of remote communication will rise. Eventually remote or virtual communication will become better then the real world. Until then, don’t distribute your team.