Managing any team is often a complex mixture of diplomacy, strategy, and steadfast conviction. Taking a team out of the more traditional "brick and mortar" environment and throwing them all into a cloud-based environment amplifies the complexities of team work and managing those teams. Throughout my career, I have had the honor of working with some amazing talent through cloud-based development, and while not all-encompassing, have compiled some tips and tricks I have found to work for myself and the teams I have managed.
Who am I?
Let me first give an introduction into my experience with this topic. I am a developer with over 7 years of experience who has been on both the Indie and AAA side of game development. For the the better part of 4 years of that time, I managed cloud-based teams as both a Designer and Producer. Prior to transitioning my career into game development, I spent nearly 10 years in management roles, overseeing and training numerous staff teams.
The cloud-based teams I have managed have ranged based on the scope of the project - some of the teams were as large as 50 developers, while others were as small as 6 developers. However, each time I am offered an opportunity to work alongside a cloud-based team, my approach is relatively the same no matter the team size I am walking into.
Err On the Side of Over Communication.
Communication on any project is vital, but none so much more than working on a cloud-based project. Unlike a traditional environment, cloud-based teams may not always be online and working at the same time you are everyday, so it becomes extremely important that any information which has been covered is always readily accessible to prevent communication time lapses. When in doubt, it's better to make sure you over communicate a topic than to potentially not have communicated it enough.
- Assign someone (who is not leading the meeting) to take detailed meeting notes for any meeting you have, and send those notes out to everyone who participated in the meeting.
- Become a master of following up on topics. Make use of bookmarks, calendar reminders, "starred" E-Mails, whatever makes it easy for you to remember that a topic needs to be followed up on, then execute.
- Use the Reply All button. While there are some instances where it is not appropriate nor beneficial to use the Reply All button, those instances should be easily recognizable. Otherwise, it's almost always more beneficial to include all potentially affected individuals than to not. Put the information ball in their court.
- CC anyone who might be even remotely affected by the information being provided. Sometimes someone may be able to provide additional information or insight into a topic which may not have been present otherwise (or at the very least, add it to their radar). As stated above, it is always more beneficial to include all potentially affected individuals than to not.
Utilize Cloud-Based Technology, Such As Video Conferencing.
There is a wide selection Video Conferencing tools available now, and some of them are completely free to use (such as Google+). These are not just an additional tool for use, they are absolutely essential to running any cloud-based team.
Most of these video conferencing services also allow the users to share their screen, another invaluable tool for communicating among a team which is spread across the globe. These tools allow the team to break through the cloud barrier, and interact as if they were all in the same room, providing face-to-face communication and feedback regarding their work.
This also becomes extremely valuable when handling delicate, or soon to be delicate situations. E-Mail does a great job of providing information from one team member to another, however it does an absolutely terrible job at conveying tone. This has, and usually will, lead to someone taking a message the wrong way at some point in time. Pulling those involved out of the E-Mail chain and gathering for a face-to-face meeting to discuss the topics helps produce quicker and less dramatic results.
Take the Time to Get to Know Your Team, and Give Them the Opportunity to Succeed.
One of the harder aspects of working with cloud-based teams is being segregated form those team members throughout the majority of your work day. This can easily create a barrier between you and the team members, and it can become easy to see them simply as "resources".
It is important to remember that all of your team members are human beings. Take the extra time to break the cloud barrier and get to know the team you are working with, and set up opportunities for all team members to do the same. The more the team knows each other, the more trust they have in each other, and the more invested they become. Similarly, the more the team knows you, the more they respect the hard decisions you will inevitably need to make.
This also makes it easier for you to let the team work to succeed. Again, your team may be working in different time zones, so the chances that they are going to be around the entire time you are working may not be a reality. Meet with your team when setting up tasks, agree on a deliverable and timetable for that deliverable, and let them work. Show them you trust they will get the work done. If they don't, speak with them and figure out where breakdown occurred, work to resolve it, and let them get back to it. Keep the team highly accountable, but also keep the trust in them.
Keep Thorough Documentation Readily Available.
Keeping documentation during a project is always needed - and a cloud-based development is no different. This again falls into the line of communication (I cannot stress communication enough!). Keep documentation of project specs and details, team retrospectives, team task management, anything and everything you believe would be handy to a team member to execute their job to the level they need to.
However keeping thorough documentation and keeping it available are two distinct topics. A folder sitting on your personal desktop housing all documentation is not going to do anyone a favor. If the team members cannot access the documentation, they cannot benefit from it either. Set up some version control, give your team the access they need, and let them know where they can locate specific information.
Of course, not all documentation is needed by all members of a team. More confidental documents should of course remain as such.
Produce and Maintain a Visual and Interactive Task Management System.
One of the key elements I have found to working with cloud-based teams is creating or having access to some version of a task management system which allows team members to actively make updates themselves. I have used numerous different software - some overly elaborate - but there are moments when a something as simple as a nicely built Excel sheet will suffice.
Keeping this online, accessible, and interactive allows all team members to see what is being done, when it's being done, and who is doing it. Depending on how far ahead you plan, they can also see what is coming up on deck. By allowing team members to interact with their tasks, you are allowing the following:
- It empowers team members to make updates to their work status, and helps remove a sense of being micro-managed.
- It allows team members to actively talk about their upcoming tasks, sparking intelligent conversation, but also preventing double effort.
- It removes some burden on you as a team leader. While you should frequent the task system to check where all tasks are, if the members are marking tasks as "In Progress", or "Pending Approval", it means you're not - and that's time you can be working on other crucial elements.
Understand Cloud-Based Teams Are Not For Everyone, and That's OK!
While the above has proven to be successful throughout the teams I have worked with, there should also be the realization that this type of team work is not for everyone. It requires individuals who can work with little supervision, a large amount of trust and the ability to swallow a bit of pride and actively reach out when you need help.
However, if successful, working through a cloud-based team can be highly rewarding!