Doing remote projects well

Working remotely is different than working in the same physical space. Although it is different, it doesn’t have to be worse. Given the complications of COVID-19, we’re going to embrace remote work culture in our course projects. Much of this was pulled from gitlab’s page on how they operate an all remote company and adapted to what would be appropriate for this class.

Informal communication is important

One of the key benefits of working together are the human connections you make with people when you spend all of your working hours together. Here are some suggestions for how to retain these connections while working remote:
  • Zoom lunch together once a week
  • Find a video game or Netflix show or some other online activity that you can all play together online
  • Create and use a coffee-shop channel in slack. I post pictures of my dog there.

Everything needs to be written down and asynchronous

While working remotely, you have been increasingly good at writing down things. COVID-19 has forced a discipline around writing that you should use:
  • All meetings must have a written agenda, recurring meetings have a running agenda, and the person who organizes the meeting writes down action items (and follows up on them!)
  • Any significant subsystems in your project should have a short design doc (this is an example). The goal of a design doc is to explain the concepts in a way that (1) people can comment on it and provide feedback and (2) your group members would be able to come up with a reasonably similar implementation.
  • All docs should be editable by anyone, everyone should be proactive in updating them to make sure that they provide the best info available
  • Have a top-level directory in your github project called "Library" for all of your design docs.
  • Have a top-level directory in your github project called “Meetings” to document the agenda and action items from your meetings.