Collaborating Remotely

Adapting our coding workflow for WFH

Collaborating Remotely

This article was originally published as part of the Building Couch Potato blog series.

So far in this blog series, we have detailed the technical challenges we faced in creating Couch Potato, the Chrome Extension we developed allowing users to stream video content together remotely. We wanted to pause now to address the physical challenge we faced in unexpectedly having to develop our project remotely.

Our team (and the rest of our cohort) had signed up for a 13-week in-person coding bootcamp. At the end of the eighth week, we were told that we would temporarily be going remote in response to public health concerns. Ultimately we were forced to complete the remainder of our course remotely, which meant that the entirety of our Couch Potato project was also done remotely.

When collaborating with other software engineers, team members’ communication and collaboration skills can be just as important as their software engineering abilities. As much of the world has discovered while working from home this year, these skills become even more essential when working remotely. When we began our project, before anything else — before even discussing the content we wanted to develop — we discussed our individual expectations and set our team routines.

We decided to err on the side of over-communicating to make sure everyone was on the same page and no one was going rogue or getting left behind. We would have stand-up meetings first thing in the morning to confirm what everyone had been working on, what challenges they were facing, and what they planned to work on that day. We also checked in with one another after lunch to make sure everything was progressing as anticipated. At the end of the day, we would regroup to review our code changes, push the code to the main branch of our repository, handle merge conflicts, and have a “pull party” to ensure that every member of our team was working with the most up-to-date code.

Another decision we needed to make as a team was the extent to which we wanted to pair program. We came to the decision that while we wanted to develop an awesome product, our top priority was learning from this project. This led us to decide to pair program for as much of our project as we possibly could, and to even mob-code as a group for earlier portions of our project. While this meant sacrificing some of the efficiency that might have been gained from coding independently, it also meant that every member of our team was able to contribute more holistically to our project, feel more of a sense of ownership over the project, and understand the different nuances of our code.

A screenshot of a zoom call between "Karsten Winegeart" and "Toshi", both represented by closeup images of dogs

An important skill for software engineers is knowing the proper tools to use for a given situation. We came to rely very heavily on video conferencing and instant messaging platforms to communicate with one another throughout the day. Screen sharing was also extremely valuable for long-distance pair programming. This might be an unpopular opinion, but I think making the choice to turn on our cameras for our calls made a huge difference in our group dynamic and the effectiveness of our collaboration. In our stand up meetings and when pair programming, we almost always had our cameras on. I think this small detail made our team feel more familiar, and made us more willing to request and offer help to one another.

While collaborating remotely was certainly an unanticipated challenge for us, ultimately it proved to be an excellent learning experience. We experienced firsthand the importance of many of the coding habits we had been building. Writing clean code, proactively communicating with one’s team, and knowing how to look for information were essential skills for us as a remote team, but they are also crucial habits that we developed and will be able to rely on throughout our careers as software engineers.

Stay tuned next week as we address some of our UX challenges and how we addressed them!

Interested in learning more about Couch Potato? Start this blog series from the beginning! And don’t forget to download Couch Potato from the Chrome store so you can start watching shows with friends now!