Railsware’s Journey to Building Remote Collaboration Workflows

The tech world is making peace with the fact that most teams will continue working remotely throughout the entire 2021. This may be a challenge for companies who have a long tenure of running offices.

Remote collaboration workflows at Railsware

These days, teams are struggling to figure out how to stay productive and united through the challenges of remote work. However, the good news is that there are plenty of tried-and-true tips to stay productive outside of the office.

Long before the beginning of the pandemic, Railsware has largely relied on hiring remotely. We can’t imagine how many talents we would never hire if a company made being present in the office necessary for every teammate. We bet on remote work and won.

First things first: what is remote work for Railsware?

The standard definition of remote work states that it’s a type of work that allows people to perform tasks outside of the office.

We’ve been working remotely since 2007 and have developed a distinct remote-friendly collaboration approach over time. Here’s how we structure outside-of-the-office collaboration in 2021:

Personal freedom

We don’t have a fixed full-time remote schedule and are flexible in organizing meetings. Since Railswarians tune in to calls from different parts of the world, we are not about complicating things and going on a video call to discuss problems that can be dealt with in a single message.

We do practice sync communication by having online team gatherings, introducing the company to new teammates, conducting one-on-ones, and running retrospectives. However, we do not require constant face-to-face collaboration.

Time-tracking is a part of our productivity monitoring policy. We believe that this practice gives our talent an understanding of how much time they spend handling routine tasks and improves the accuracy of deadline estimates.

No fixed job positions or project roles

Railsware is a multi-faceted company. We work on dozens of projects simultaneously and can often use contributions from as many teammates as possible.

On the other hand, our talent has been very vocal about their eagerness to be challenged at work, and to learn and improve in fields that are only partly or not at all related to their primary area of expertise.

Note: numerous studies confirm an interdependence between monotonous tasks and job burnout.

Establishing workplace flexibility helps Railswarians accomplish multiple goals at once.

It’s a smart strategy for encouraging talent to learn and grow. Constant learning and acquiring new skills gives the entire team a sense of purpose – so that Railswarians are excited for a new day at work.

Using a T-shaped learning strategy for acquiring skills helps us implement best Agile practices, encourages peer-to-peer interactions, and stimulates teammates to take initiative.

Team collaboration

Railsware respects work-life balance. We want to make sure that all teammates have enough time for their families and hobbies. That’s why we track our working hours, personal commitments and events in our calendars. It helps us understand when a person is available for online collaborations.

Remote team collaboration at Railsware - work-life balance importance

We understand that a standard Slack-and-email-based workflow can get monotonous over time. That’s why we did our best to introduce as much variety to workflows as possible:

  • Starting from October 2020, ~ 90% of the team works remotely, though we still have offices in Kyiv and Krakow. Their main function is to be a hub for all Railswarians to come any time, collaborate in teams, and meet each other in person. Any Railswarians can come and use Railsware office spaces.
  • We host regular outside-of-work online meetups that are optional, but give teammates a fair share of human interaction.
  • We get together on retreats in different countries once a year (due to border closures due to COVID-19, we replaced a get-together with numerous online events).
  • We have non-work related Slack chats where teammates are encouraged to ask for advice, share tips, or tell jokes (#investments-club, #travel-nomad and #home-office).

Did you get anywhere with this “remote first” approach?

Founded as a remote-friendly company, Railsware has been doing extremely well. After thirteen years in business, our team shipped products, developed custom projects, had fun, and bonded in yearly meetings.

  • We’ve expanded our main activity – Ruby on Rails software development – internationally, collaborating with clients in over 12 countries.
  • We built high-quality Railsware products, such as Mailtrap, Coupler.io, and Smart Checklist for Jira.
  • We hired top-notch professionals in software development, design, marketing, talent management, and other fields from 8+ countries.

Railsware had a long journey of working remotely – and it wasn’t always bump-free. Still, we feel like we are figuring it out pretty well and want to share our experience with colleagues, clients, and anybody who’s wondering: “Is working from home going to kill my productivity?”.

Remote work and the pandemic: challenges

When things went south in March, 2020, we were sure that we had a well-established infrastructure to wait out the COVID-19 storm.

Challenges in remote collaboration workflows

It turned out that the practices that were working for a 30% remote team needed some tweaking when the number of remote Railswarians peaked at 90%. These are the challenges we have had to face since the start of the pandemic:

1. Corporate culture and the sense of attachment to the company

Before the pandemic, Railsware had its ways of bringing teams together and encouraging everyone to socialize in person.

We visited conferences, hosted corporate events, and invited international teammates to come to our main offices and covered their travel expenses. We also organized epic get-togethers and explored the world as a Railsware community.

The COVID pandemic challenged us to find remote ways to keep the team in touch. Here’s what we’ve come up with:

  • Regular feedback sessions that allow teammates to show appreciation (and offer helpful suggestions) for each other’s work.
  • Making the most out of the tools we have – communicating on Slack chats, collaborating on projects via Miro or Mural.co, having calls via Google Meet or Zoom, and spending time together on online gatherings.
  • Updating the entire team on our latest achievements so that everyone can see the fruits of their work.

2. Benefits and equipment

Since January 2020, our team has expanded geographically. Right now, we hire people from all over the world – Eastern Europe, the EU, and Latin America – to work at Railsware full time. It challenged our payroll and documentation infrastructure.

Here are a few processes Railsware adopted to help everyone on the team feel safe, comfortable, and backed by the company.

  • Remote workspace. We allocate a separate budget to help Railswarians set up a comfortable home office or rent a co-working space in their location.
  • Flexible vacation. Managing an international team, we quickly discovered that national holidays and customs all over the world don’t match. That’s why narrowing down the list of days-off became a challenge – to address it, we added 10 extra days to a standard 24-day vacation package. This extra time accounts for most national holidays that Railswarians all over the world celebrate.
  • Hardware budget. We help Railswarians set up their workspaces outside of the office. We cover every device needed for work, so they’re free to choose any equipment suitable for their daily tasks. If a Railswarian doesn’t have a clear idea what hardware to choose, it’s easy to get help from our Operations team.

3. Communication

Communication is the last, but definitely not the least, important challenge on this list. When our team expanded the geographical range of hires and even more Railswarians switched to remote work, a lot of considerations we thought we had under control resurfaced:

  • Choosing a meeting time that’s suitable for everyone.
  • Spotting burnout symptoms (it became much harder to keep track of the team’s wellbeing with most people out of the office).
  • Voicing workplace issues – new hires are particularly hesitant to be vocal about their concerns and point out what makes them uncomfortable when they work remotely.

To streamline communication and make sure no Railswarian struggles to communicate their ideas, we revisited the team’s remote communication strategy and expanded our toolset.

Synchronous and asynchronous communication: which one Railsware uses

We communicate in two ways: synchronous and asynchronous.

If you are new to these concepts, don’t worry – we’ll break down the meaning behind them.

Synchronous and Asynchronous communication at Railsware with examples

Synchronous communication

The defining characteristic of synchronous communication is that it happens in real time and requires a real-time response from all participants.

These are some of the forms of synchronous communication we use at Railsware:

  • Daily stand-ups in teams to discuss current progress, ongoing questions, and blockers
  • Iteration planning meetings (IPMs) to review a project roadmap, prioritize current tasks, and discuss outcomes
  • Retrospective meetings to review project results and sum up what was good and what should be improved next time
  • Pair work to collaborate together on a particular task or project
  • Interviews with candidates
  • Onboarding new Railswarians
  • One-on-ones and feedback sessions
  • All-hands meetings to share important company updates with Railswarians
  • Sales calls and meetings with clients

Strategies we use for efficient synchronous communication

To make sure Railswarians don’t feel uncomfortable with a large load of meetings, we have a list of conventions teammates should follow when scheduling team calls:

1. Plan team meetings ahead

To make sure attending a meeting is comfortable for all participants, organizers should schedule a call or a video conference 3-4 days in advance.

Here’s a checklist we recommend to use when scheduling team calls:

  • Check the availability of all participants
  • Specify the goals of the meeting
  • Share a list of points that will be covered so that all participants can join prepared and get the most out of the conversation
  • Limit and specify the amount of time allocated for the meeting

2. Be mindful of time differences

While the core team of Railsware is based in Europe, some of our teammates tune in to meetings from Latin American countries. As a result, it takes more time to choose a slot that is suitable for every meeting participant. Here’s how we make scheduling meetings easier:

  • All Railswarians indicate their working hours in the calendar to make sure no one bothers them after the workday is over.
  • We use FIO, a Google Chrome extension that helps find a suitable meeting time for everyone involved.
  • Railswarians update their status in Slack to let colleagues know when they are and are not available.

3. Improve the call quality

We encourage Railswarians to implement the following workplace tweaks to improve video and audio quality:

  • Test the Internet speed and choose a plan that supports 100 MB/s connection per device. For better quality, use a wired Internet connection.
  • Use headphones with a focused microphone (our Operations team helps out with choosing the right model; the company also covers hardware expenses).
  • Choose a quiet workplace or install noise-canceling extensions (some of our teammates use Krisp).
Synchronous communication workflows

4. Record meetings

We record synchronous meetings to make sure that no important detail is lost or ignored and that those teammates who couldn’t make it to the meeting can catch up on the content and the outcome.

Synchronous communication tools: what Railswarians use

  • Slack for daily communication, team meetings, and stand-ups
  • Google Meet and Zoom for group meetings, team gatherings, and calls with clients and candidates
  • Calendly for scheduling meetings without back-and-forth communication to find a perfect meeting time
  • Mural.co and Miro for inceptions, brainstorming, and strategy planning

Asynchronous communication

While we rely on synchronous meetings and real-time chats to quickly solve urgent issues, it’s not our favorite way to manage projects. Instead, most Railswarians prefer to cooperate asynchronously.

Asynchronous communication is the type of interaction that allows teammates to take some time to process the information they got in an email or a message and answer when they are comfortable. There’s no pressure for real-time availability.

When do Railswarians communicate asynchronously?

Whenever there’s an important announcement, a decision that needs processing, or a need to share important documents between teammates, we like to give Railswarians enough time for processing, research, and coming up with a thought-out answer.

For example, Railswarians choose asynchronous communication for the following scenarios:

  • Sharing large-scale updates and news
  • Making edits and running code reviews
  • Introducing new hires
  • Surveys
  • Pull requests
  • Task management

Why do we prefer asynchronous communication?

When switching to working remotely, companies often prefer moving all meetings, team building activities, and chats they had at the office to video conferences.

In our opinion, this is a counterproductive strategy since scheduling online meetings is a ton harder when teammates are scattered all over the world.

Other than that, it’s easier to keep track of asynchronous communication – rather than listening to conference calls back to back, teammates can find the right message by running a one-click Gmail or Slack search.

Last but not least, when writing text messages, our teammates often find answers to their questions. When describing a problem, they can suddenly come across an insight that hints straight at the solution.

We love the way GitHub’s Zach Holman put it:

“Text is explicit. By forcing communication through a textual medium, you’re forcing people to better formulate their ideas.”

Strategies we use for efficient asynchronous communication

Railswarians always try to walk a fine line between having personal freedom and ensuring they are not stalling work projects by taking too much time to answer emails or Slack texts.

Here are the strategies the team uses to make the most out of asynchronous communication:

Thorough documentation

Railswarians learn something every day as they work on new projects. We encourage teammates to share knowledge and best practices with their peers by documenting the process of their work. Creating guidelines that describe how to do something you have just learned is extremely useful for teammates.

Automating repetitive tasks

While some documentation requires concentration and presence, other notifications are a part of the daily routine – so working on them manually makes no sense. Railswarians want to do as little repetitive work as possible – that’s why we are huge automation fans.

Railswarians use Coupler.io and Zapier for automation. These solutions help the team build custom integrations between platforms and tools so we can focus on the most important work. Here’s an example of how we use Slack notifications that remind teammates to fill in daily sync notes.

Asynchronous communication example - Slack notifications

Reliable infrastructure

Railsware runs a lot of projects at the same time. Without a proper chat organization, it would be easy to confuse tasks, ask teammates who have no connection to the project, and make a communication mess.

We streamline communication by creating designated Slack channels and threads for each project and topic so as not to overload the main channels and save the teammates’ productive time.

Overcommunication

At Railsware, we are encouraged to be as explicit as possible when expressing ideas or asking questions:

  • Add context to the message by attaching links, screenshots, and making examples to back up a point.
  • Check your texts using Grammarly or the Hemingway app to keep messages clear and easy to read.
  • Communicate by the rule: “If you are wondering whether or not you should say something, say it”.

Response deadline

Taking your time to respond thoughtfully is the key element of asynchronous communication. However, there’s a huge difference between thinking of an insightful answer and procrastinating on dealing with work emails.

At Railsware, workplace discipline is promoted by setting a 24-hour response deadline – more than a day of silence can negatively affect the working process.

Asynchronous communication tools: what Railswarians use

  • Slack Posts for sharing small updates.
  • Vimeo for sharing video updates and instructions – we also use Zoom, Quicktime, and Screenflow to record and create engaging visual announcements for the team.
  • Figma for designing and prototyping.
  • Coupler.io and Zapier for creating automation flows.
  • G Suite (Google Drive, Google Sheets, and Google Docs) for data management and sharing.
  • Google Slides, Prezi, and Slido for sharing presentations and guides.
  • Slack Polls, Google Forms, and Typeform for surveys and feedback gathering.

Staying on top of projects when working from home: Railswarians share tips

If you are a tech professional and the company you worked for is giving up or temporarily shutting down its office, it’s easy to feel lost, overwhelmed, and confused.

Fear not – there are lots of ways to make working from home enjoyable and productive (even if you have kids, a cat, and a dog). We asked some of our teammates how they handle the challenges of working remotely.

Here is the advice on delivering your assignments like clockwork from Railswarians who’ve been working remotely from Day 1, and those who had to adapt to working from home after the start of the pandemic.

Don’t rush to solve issues #sync – see if it can be done #async. In some cases, if you start writing down your thoughts, you will find the right solution. In my opinion, writing things down helps organize your thoughts and see the issue from different angles.
Having said that, I believe that really important info should always be transferred #sync, even if you discussed it in writing before. For example, your ideas that can change the course of the solution, or personal issues that you want to voice.
When using #async, use direct messages in Slack carefully, as direct messages are perceived to be of higher priority.
Try not to use direct messages if there is a relevant channel; this also helps other team members to stay in the context. Use direct messages to discuss something only you two should know about, stuff that is not relevant to any channels, or a personal topic.

 

Julia Romanenkova

Product Manager

Synchronous and asynchronous comms tips by Anastasia Avramenko

 

Anastasia Avramenko

People Team Lead

When working asynchronously, you see a constant stream of tasks and messages. Thus, you may feel overwhelmed and lost.
For example, if using Slack for async communication, be aware of features such as Slack bot reminders that help you manage communication. I set up reminders to add important stuff to my to-do list or group channels.
In my opinion, focus management is more essential than time management nowadays. I believe we should not jump from one context to another – instead, allocate time for focusing on key tasks and cut unnecessary distractions.
For example, in the People Team at Railsware, we allocate one full day during the week to perform operational tasks. On this day, we don’t hold any calls or meetings. Thus, we stay focused and productive.
During sync communication, everyone should be aware of their roles: there should be a note-taker, a moderator, etc. This way, you’ll get the most out of each meeting.

Here’s what I try to keep in mind when working remotely:

  • When you switch to work remotely from the office you might need to change the way you are working
  • Think asynchronously – don’t expect people to respond immediately.
  • Don’t respond immediately either – take your time to reflect on a question
  • Don’t react to each notification you get
  • Use tools that help streamline video conferences (I rely on annotating and screen sharing features)
  • Record your meetings and share them with teammates who are involved in the project
  • Have non-work-related team meetings to improve soft skills and protect mental health
Synchronous and asynchronous comms tips by Anton Sivakov

 

Anton Sivakov

Full-Stack Developer

Conclusion

Through Railsware’s journey to a remote-first company, we realized that the only way to adapt to drastic changes brought by the pandemic is to constantly review and improve processes.

We discovered that, even in the face of hardships, there are hidden opportunities, new ways to expand the team, work productively, and connect personally.

What’s the company’s next step in the post-pandemic world?

We keep our office doors open to teammates who prefer in-person interactions. However, we will work on managing the remote core of our team and find new ways to grow and develop as a part of the Railsware community.