I often hear gamedev cited as something that is tough to do with a remote team. Do you have any advice for doing remote development in a gamedev context?
Gamedev is tough to do in general, but it's generally more difficult to do in a remote setting because humans are accustomed to being social in a certain way. Online communications is often bottlenecked in ways we aren't immediately cognizant of. After working remotely for a few years, I've adopted certain specific counter-intuitive techniques in order to try to facilitate better understanding on the team. The best advice I can give for remote work is Default to Talking in Public. Instead of using DMs to speak to someone about work privately, post to the appropriate channel and tag the person you want to speak to - even if you end up only speaking to the other person during the conversation.
One of the benefits of working within the same space is that it's much easier to pull someone into your work space to ask questions or have an impromptu meeting. One would think that DMs are an easy analog to this, but it's actually more troublesome than that. Normally, what happens is that the major stakeholders begin the discussion, and then others that are more tangentially involved are pulled in near the end to handle things like creating, prioritizing, and assigning tasks to cover the needed new work. Adding someone to DMs with history is a little better, but it puts the newly added person on the spot with needing to catch up immediately. The real problem with this, however, is following up the impromptu meeting makes it even more difficult for people who weren't involved to catch up. They weren't in the original DM chain, which means the entire discussion needs to be repeated again.
We can improve this by making such discussions/questions public by default and tagging the people involved. This leaves a publicly viewable history and discussion, which latecomers can view to catch up on. This also has the added benefit of allowing other tangential devs to see and possibly chime in with caveats and gotchas the primary discussers might not be aware of. It also makes other team members see that work in this area is being done and those who are interested can also follow along. There's some initial reluctance to doing so, since it feels more like speaking in the public square instead of being private, but many of those "private" discussions in the office are often overheard by other stakeholders anyway, who will insert themselves into the discussion by bringing up things that the initial speakers weren't necessarily aware of. In general, defaulting to asking questions and discussing elements in public channels solves a lot of remote working issues just by making sure anyone who wants to know about something can know about it.
[Join us on Discord] and/or [Support us on Patreon]
Got a burning question you want answered?
- Short questions: Ask a Game Dev on Twitter
- Long questions: Ask a Game Dev on Tumblr
- Frequent Questions: The FAQ