Making remote work

What we’ve learned at Heroku

One of the many things that makes Heroku unique is that about 60% of our employees are remote with the remaining 40% based out of our beautiful office in San Francisco.

When I mention our remote to onsite ratio to friends, I get the same look of incredulity normally followed by a “how does that work?!”. The truth is it works great. We’re productive, communicative, and happy, but that’s not to say it’s easy or without its sacrifices.

Remote working has been part of the zeitgeist recently, as it has increasingly become easier to be productive out of office. After nearly 18 months at Heroku, I’ve learned a lot about what works and what doesn’t work for remote employees and wanted to share this list as a blueprint for those seeking remote work. For me, making a success of being remote boils down to three things:

  • Working asynchronously
  • Working together
  • Staying aligned

Working asynchronously

Our team is mainly based on the East Coast, with some of us in the UK and others in San Francisco. Because of timezones, our days are significantly staggered. I start around 9.30am in London while Roberta, in Toronto, will come online about 1pm my time. When Kathy in San Francisco wakes up, we only have about two hours together for us to discuss issues, projects, milestones and blockers before it’s the end of my day and we lose quorum.

This means we have to optimize our precious two hours together and make the most of them every day. It also means that we need to be able to work without depending on each other being available to answer our bugging questions.

Predictable meetings

Predictable meetings help so much with making the most of our time. We have lots of 1:1s, daily project and team stand-ups at scheduled times every week. This means we know when we’re likely to be distracted or otherwise engaged and we can plan around it.
 
Taking my calendar as an example, you can see how meetings are bundled around the 4–6pm span and don’t really stray from that.

Chat > meetings

We try and avoid meetings where chat would suffice. In an office, it’s easier to go ahead and tap someone on the shoulder than tap out a series of messages on Slack but working remotely the opposite is true. Using this model we only spend time in meetings we really need to be in.

At times, however, discussions warrant the increased conversational bandwidth of a video call. We try to remain cognizant of when this is the best path forward.

Respecting each other’s time

Everyone has to be mindful about the timezones we’re all in and the working hours we like to keep. We use Google Calendar internally which has settings that let you define your working hours and gives a stern notice to anyone trying to invite you to a midnight standup.


Working together

With the tools to work apart under our belt, what about working together with an ocean and several hours dividing you? The key for us has been creating guidelines and processes which help us collaborate despite not being physically together.

Design patterns

We have a UI kit called Purple that we use to define the look and feel of our products. Based on Bootstrap, it provides documentation for our common components and contains guidelines for writing CSS.

Our internal style guide Purple

Complementing our CSS UI kit, we have a master Sketch file which provides resources to quickly mock up a Heroku feature or product. This document is organized into symbols to make maintainability of our components as painless as possible.

The icons page of our Purple UI Sketch document

More recently, we’ve started to align visually to the excellent (and open source!) Salesforce Lightning Design System. SLDS is more opinionated about designing products than our own Purple guidelines, which takes even more of the guesswork out of creating a coherent product experience.

Scheduled pairing

Despite our daily stand-ups and 1:1s, some things are easier to solve together. During our daily standup, we’ll highlight tasks that are blocking us and organize a pairing session to work through these tougher problems. This works just as well for discussing and sketching designs together as it does for engineering sessions. We use Screenhero for this and highly recommend it.

Working in the open

One of the things I miss about working in a design team that shares a bank of desks is glancing over at what others are working on. Almost instantly you can tell so much about a design on screen; how confident is the designer in their work? How complete is it? How polished is it?

Working remotely, the next best thing to peering at each other’s screens is keeping our work in one place that everyone can access all the time.

We use InVision which is excellent for larger teams like us. We try and keep all design related discussion, assets and revisions in InVision so that we don’t have to constantly send Sketch files around or lose valuable feedback in a slew of emails.


Staying aligned

Finally, and most importantly, is how we remain rallied around a common goal & purpose despite our distance. At Heroku we have a yearly cadence consisting of four seasons; planning, building, delivering, and reflecting. During each season, teams come together from all over the world and work from one location for a week.

Our yearly cycle divided into quarters

Seeing each other is fun and essential but being together for only four or five weeks every 12 months leaves a lot of room to lose sight of our common goals for the year and veer off the right track.

Our not-so-secret sauce for staying aligned is the enigmatically named V2MOM. V2MOM is a methodology Salesforce CEO Marc Benioff invented and stands for;

  • Vision — what do you want?
  • Values — what’s important about it?
  • Methods — how do you get it?
  • Obstacles — what might stand in the way?
  • Measures — how will you know when you have it?

Every single person in the organization writes a V2MOM every year, starting with the CEO and then cascading down throughout the business until we end up with tens of thousands of documents which correlate and support each other.

Writing our V2MOMs coincides with the beginning of the year, meaning that we have a clear vision for the following 12 months. During this time, however, we also reflect on and refine the vision if needed.

Benioff describes V2MOM as an “exercise in awareness”. The awareness it creates amongst our team and the organization runs like a thread throughout our teams, departments, products, and culture.


I hope that our experiences of a distributed team inspire anyone who is apprehensive about the benefits of remote working to give it a shot. If Heroku sounds like your kind of place, we currently have vacancies in customer success, engineering, operations and more.

This post is adapted from a talk I did at the brilliant Design Club in London. If you’re ever in town, be sure to check it out.


Follow us at @SalesforceUX.
Want to work with us? Contact
uxcareers@salesforce.com
Check out the
Salesforce Lightning Design System