Loading...

Fostering A Collaborative Workplace In A Remote Setting

Charles Buckingham

Engineering Manager at InVisionApp Inc

Loading...

Problem

I lead a team of remote developers. We have been tasked with re-writing the core platform of our application including user accounts, user teams, subscriptions, and user messaging in a microservice-based architecture. This meant that under the umbrella of our one project we had many codebases, multiple APIs, and single page applications. It became clear that working in separate codebases made it easy for developers to silo themselves, and difficult for the developers to be collaborative and for them to support one another.

Actions taken

Collaboration, like many things in remote work, has to be deliberate and explicitly encouraged. Often in remote settings, members of a team can feel alienated and have difficulty getting feedback and input on the work they are doing. It may feel unnatural at first, but outlining how the team can collaborate, and encouraging them to use those approaches, can encourage develop collaborative routines and a great culture. To do this:

  • Require overlapping hours When you have a team in different locations and with different timezones, the latency introduced by asynchronous communication can kill momentum and lead members to avoid seeking or contributing input. Find the largest window of overlapping hours possible and make it compulsory for the team to be online during these hours.
  • Encourage written designs and design reviews Many problems will benefit from collaborative input. For larger or reusable solutions (e.g. how will we handle recurring tasks), encourage developers to write a short problem statement and the various solutions they see for the problem. Often, a developer will balk this, but will then find that writing things out enabled them to think more clearly about a problem. Have them discuss this with other engineers on the team to reach a decision about the simplest and best solution. As the team begins to do this, this will save a lot of time, when compared to surfacing this feedback during a code review and it should result in better solutions.
  • Have two or more developers per codebase Where possible, keep two or more developers on a given codebase. This will result in better quality PRs, someone with context to bounce ideas and questions off of, and it will allow for pairing up on difficult problems when needed.
  • Encourage pairing up when needed Encourage developers to pair programs when and where it makes sense.
  • Document, agree on, and socialize best practices When a best practice is proposed, have a developer (likely the one driving the practice) document the practice. Have the developer organize a short meeting during overlapping hours to discuss, socialize, and formalize the practice. Bringing the practice to others and discussing it will allow them to have an input, which will encourage better adoption of the practice across the team.

Lessons learned

Collaboration in a remote environment has to be deliberate. Setting up flexible practices and processes as well as communicating the expectation and benefit of collaboration will create an environment that encourages the team to collaborate. Once my team began collaborating more intentionally they really enjoyed it and began doing it automatically. A collaborative environment encourages better solutions and results in happier team members.


Be notified about next articles from Charles Buckingham

Charles Buckingham

Engineering Manager at InVisionApp Inc


Communication

Connect and Learn with the Best Eng Leaders

We will send you a weekly newsletter with new mentors, circles, peer groups, content, webinars,bounties and free events.


Product

HomeCircles1-on-1 MentorshipBounties

© 2024 Plato. All rights reserved

LoginSign up