Is it now feasible to have a fully distributed development team?
Eiconic’s Graeme Monk offers his advice on how to go remote…
Every company that we have worked with over the past years has, at some point, requested that some of the team have the option to work full or part-time from home. Since we first discussed the founding of Eiconic Games our aim was to allow the whole project team to work not only from home, but other diverse locations, too.
When we first discussed adopting this method we were told that we were mad, that it would never work and the company would likely fold. It’s now almost three years later and we have not only survived, but are thriving with our business and development model. Eiconic remains a small development team using quality, experienced and motivated contractors and outsourcers when required, for which distributed development works well. This approach provides flexibility and ties in with what leading independent developers are now promoting, such as the Play Together initiative recently announced by TIGA and NESTA.
Distributed development is no longer just the desire of those working from home, but smaller, more specialised development teams and those working remotely within other studios, too.
Here are some guidelines that we have used in order to get the best out of distributed development.
Team and Project Management
The role of the project’s management is to be the mentor, peacekeeper and visionary of the project. Team leaders should be flexible and understanding, but also have the drive to see the team through the bad times as well as the good.
• Strong team leaders: The producer, lead artist and lead coder need to promote open communication within the team and work with them, instead of just directing them. Consider having team leaders for game features rather than per discipline.
• Remove politics and cliques: The removal of barriers, hindrances and other needless bureaucracy is vital to ensure a driven team meets and exceeds its goals. Cliques can develop when small groups work closely together, and can sometimes be difficult to spot and remove. Try to keep management structure as flat as possible.
• Small and modular team sizes: The smaller the team, the less management is required, thus allowing individuals a greater understanding of their role within the project. A small team will focus on one or more games features and will work as its own unit, or be fluid and made up of transient members between milestones. It increases overall production and improves the chances of getting work done right the first time round.
• Complementary skills: A team is cross-functional and its members have skills and experiences to complement each other. This creates overlap if someone’s away, and allows team members to discuss issues openly. If a member needs time off at short notice, their knowledge is held elsewhere in the team.
• Flexible project management: Eiconic uses a modified version of Scrum as its development methodology and has adapted it to fit in with distributed development. This allows the team to be flexible in what’s developed while keeping an eye on the final product. It also avoids time being wasted on features or irrelevant tasks.
• Online project management system: An online, easy-to-understand project management system is essential to ensure everyone knows what’s needed to be done for a milestone and what features are due for development. Give the team the ability to see where its work or feature is in association to others. Eiconic uses Hansoft for its project management as it allows easy access, has a good notification system and can also handle its Q&A requirements.
• Recruitment: Careful consideration should be given to new team members who are recruited into the project. It can be difficult to ensure they fit within the ethos of the team, but clear communication and openness will help.
Studio communication between the team is extremely important, and it’s a lack of this that often results in a dysfunctional team. When working within a distributed environment communication is vital – it is the lifeline of the team and the project.
• Daily development and production meetings: Regular online meetings allow everyone to know what each person or team is currently doing. Scrum requires a daily meeting where everyone notes what they did the previous day, what they intend to do today and what issues they are facing. This is a clear method of ensuring that everyone is aware of the features in progress.
• Face-to-face meetings: Distributed working doesn’t mean that the team should avoid getting together on a regular basis. At the very least your core team should be able to meet regularly. These meetings should focus on the current game build, and reference other games and media that would influence the design, production and features of the game. They also alleviate social breakdowns within the team due to working remotely.
• VoIP and internet chat/messaging: A distributed team needs to be in constant contact, you can’t wander across the studio and ask someone’s opinion on something. Be in contact via GoogleTalk, Skype or some other method.
• Online collaboration: There is a wealth of web programs that allow team members to work together, from online office software such as Google Docs, to web conferencing applications that allow document sharing, collaboration and whiteboards.
In today’s environment, technology makes it easier to work remotely. Businesses need to harness that technology and make it work to their advantage.
• Online tools and efficient pipelines: The toolset and pipeline work differently than they would normally within a studio. The tools have to be robust, as the engineers will not be available to sit over someone’s shoulder while they try and repeat errors, or explain what is required. Eiconic has developed its own pipeline for game development that is purely based around an online central repository. This idea allows all members of the team to regularly update their tools with ease and simplicity, and for new members to be able to download the tools in less than ten minutes.
• Ensure a location bandwidth: Each location needs a reasonable range of frequencies capable of downloading or uploading assets, and to update the central repository. Furthermore, the bandwidth of your storehouse needs to be relatively high so it can maintain the large amounts of data that are uploaded and downloaded by all team members.
• Live data: All the tools, data and build processes exist online, allowing all members of the team to construct, test and play the project at any time – assuming there are no bugs, that is. It also enables the client the same ability, which is ideal for when feedback is required on a feature or resource before a milestone is delivered.
Working remotely or unsupervised requires the team to have the right attitude and make sure it is nurtured throughout the project. A motivated and driven team member will not be easily distracted by games, television, movies or the internet.
• Motivation through ownership: Providing team members with the ownership of the project is very powerful. Every project has an end goal and through mentoring and guidance, the team can obtain ownership of that objective. Possession and peer review provides both the individual and the group with the motivation to deliver and exceed upon expectations.
• Peer review: A team working remotely can often find it difficult to appreciate the work that others do. Frequently review the work and features developed in line with the overall project goal and comment with honesty and openness. This also helps the team maintain focus on the overall project. What’s more, compliments on a job well done go a long way.
Besides the above, there are other areas not covered that are particularly important to setting up a distributed development business. Insurers, solicitors, and platform holders should be aware of how the team is set up, otherwise potential problems lie further down the line.
The above suggestions and ideas are just a brief outline of our experiences with distributed development, especially as the process is still in its infancy and particularly so within the games industry. At Eiconic, we are still learning, making mistakes and trying to avoid pitfalls all the time, but we still believe it is a far more productive, fun and cost-efficient way to develop games.