CERTIFIED: ISO 9001 | ISO 13485 | ISO 27001
CERTIFIED: ISO 9001 | ISO 13485 | ISO 27001

Top Four Tips to Improve Remote Collaboration

Top Four Tips to Improve Remote Collaboration

Here at Syncro Medical, we frequently work with clients from a variety of different locations. In some projects, we serve as the client’s entire medical software development department. In other projects, we focus on certain software components while developers from the client team handle others. In one recent project, the Syncro Medical team simultaneously collaborated with client development teams located on the West Coast of the US as well as in Europe.

The purpose of this article is to share some of Syncro Medical’s strategies to ensure solid collaboration between developers when working together over a distance.

Tip #1 – Have Regular, Scheduled Time for Communication

When working remotely with other developers,regular, scheduledcommunication improves workflow and team cohesiveness.

Withregular communicationteam members know that they will always have an upcoming opportunity to raise questions or share ideas with other team members.

Scheduled communicationavoids the need of having to find open time on everyone’s calendar and ensures that regular communication becomes habitual.

Two meetings that Syncro Medical has used to improve collaboration areThe Daily StandupandThe Coordination Meeting. These meetings each serve different purposes and can both be accomplished with remote collaborators.

The Daily Standup:The daily standup is a core practice for many software development teams. Each standup is limited to 15 minutes, and includes a small group of developers who are working closely together, where each person answers three questions:

        • What did you finish in the last day?
        • What are your plans?
        • What obstacles are in your way?

I’ve found standups to be very beneficial in strengthening a team’s ability to work together. They improve coordination by allowing us to quickly report blocking issues, maintain a shared understanding of goals, and helps to build trust and cohesiveness between team members.

To do this remotely, we had daily standups over the phone, where the same components of a local standup applied. We used a shared conference number with the same access code every day, which mirrors theSame Place, Same Timeprinciple used for local standups. I found that this approach with remote teammates had the same benefits as standup with local teammates:

The Coordination Meeting: The coordination meeting is for projects that involve harmonization of multiple teams. In the case of remote coordination, the teams may be spread across multiple locations and sometimes in different countries.

Unlike the daily standup, it is usually longer and less frequent (in this multi-national project, we met for an hour, once per week), includes a larger audience, and often adds screen-sharing tools. We recommend that attendees submit topics for discussion to the meeting coordinator so that they can be added to a shared agenda.

The coordination meeting has the same benefits as the standup listed above. In addition, it provides a routine time and forum for raising questions between different project groups and for identifying potential system-wide integration challenges.

Tip #2. Be Responsive to Unscheduled Communication

While having regular, scheduled communication times will improve general workflow between remote parties, there will still be times when something comes up and developers will need to do some quick, ad hoc communication to solve a particular problem.

My recommendation is to help out your remote teammate by applying one of the mantras of telecommuting: “Always Be Available.” Embrace phone calls that come from your teammates or use agreed upon tools, such as Instant Messenger, to get these questions answered promptly.

Tip #3. Use Shared Tools

Using a shared set of tools improves coordination between team members. In one recent project, client developers and developers at Syncro Medical used ashared agile task boardthrough Microsoft Team Foundation Server. As a result, task status was visible to all interested parties at all times. Each work item included a discussion board so that developers could ask questions and improve coordination.

Other tools that can be shared include:

    • Software Development Environments (Visual Studio)
    • Software Configuration Management Tools (Git, SVN)
    • Communication Tools (GoToMeeting, Google Hangouts, Skype, Instant Messenger).
    • Document Sharing Tools (OneDrive, Google Docs, Shared Wiki Pages)

Here at Syncro Medical, we’ve used a variety of different tools for different projects. We’re happy to use our client’s tools, or we can make recommendations based on our past experiences.

Tip #4. Use Shared Processes

In one project, our client used an extended version of GitFlow, a popular process around software branch conventions. We adopted this process for our work on the project, including the code review process. A software engineer at Syncro Medical developed features, while an engineer on the client team was responsible for review and integration. The shared understanding and vocabulary around process let these two engineers quickly complete and review software features despite operating in different locations.

Here are some process elements that could be shared between remote teammates:

    • Code Check-ins and Branching Procedures
    • Code Reviews
    • Task and User Story Workflows
    • Coding Standards
    • Sprint Demos and Design Reviews

At Syncro Medical, we often adopt our clients’ process in order to assist with coordination between teams. Or if clients are looking to improve their process, we can offer recommendations from what we’ve learned in our experiences across many different projects.

Conclusion

In this article, I’ve shared some of Syncro Medical’s strategies for improving collaboration for teammates working together over a distance.

At Syncro Medical, we work with our clients to identify the tools, processes, and communication strategies that are compatible with their existing internal workflow and that best meet their development objectives. In many projects, we’ve developed code collaboratively with our clients. In these situations, we encourage direct and transparent engineer-to-engineer communication as a way of meeting a project’s unique challenges.