Guest Column | November 30, 2020

Product Development How-Tos: 5 Communication Strategies For Distributed Teams

By Igor Efremov, Itransition

Better Site Communication Means Better Trials

Delivering a high-quality technological product and ensuring success at every stage requires the collaboration of several smaller projects executed by different teams. The product owner’s team works on the continuously evolving product requirements, the QA team ensures the solution works as designed, while the development team brings the product to life. The whole mechanism needs to run like clockwork, and each team needs to do their part successfully to reach the goals of the project.

The trend now is to cast a wider net than in the past, providing a bigger pool of qualified candidates and putting less importance on who is available in a certain geographical region. Therefore, teams are rarely located in the same place, forming functional and structural project silos. Different backgrounds and time zones add to the difficulty of communication and knowledge sharing among team members.

This is how most software development companies, including Itransition, operate today. In their fast-paced product delivery environments, they arrived at some fundamental practices that can be used to boost the efficiency of communication in large geographically distributed project teams.

1. Hold Daily Meetings

When teams are geographically dispersed, some (or even all) team members have to be flexible enough to shift their working hours to attend daily voice or video calls.

Hosted by the team lead, the meeting sets the scene for all team members to report on the status of the tasks previously assigned to them. The team lead assigns and prioritizes the tasks due to be completed within the current iteration, while developers discuss issues on the current tickets. Occasionally, project managers should join these meetings to update the team on the upcoming product versions, project direction, and delivery process adjustments.

After the meeting, short follow-up reports should be published on the team blog, indicating the tasks that are completed and adding notes to the recently created ones. Team blogs are instrumental in providing project managers with a 360-degree view of the status of all current tasks.

2. Create A Project Book Club

Using proven design patterns and any other software development best practices provide for a consistently high product quality even under difficult requirements. A project book club is the collection of books, articles, and any other resources that are useful for the current project activities.

As a single source of information on all the templates, approaches, and styles used on the project, it facilitates seamless knowledge transfer to new team members. A project book club also can be a reliable reference for team meeting reports or project documentation.

Enable all team members to share their thoughts and leave recommendations on the educational materials they study on their own. This will significantly enhance the team’s overall level of competency.

3. Address Issues With Spikes

A spike page is a task aimed at investigating issues. It’s a powerful tool that lets individuals bring the problems they run into to the team for collaborative troubleshooting. This brings in more brainpower and can not only provide systematic solutions as the project complexity grows, but also detect dead ends at early stages.

A spike page starts with stating the problem and describes all facts and details that need to be considered. Experts can take time to think about it and propose solutions during one of the subsequently scheduled spike reviews.

In the long run, spike pages help other teams grasp the system design principles. They also explain why certain design decisions were made and how the system is going to evolve in the future.

4. Practice Code Reviews

Peer code review enables developers to not only timely detect and correct defects in the source code but also help one another learn during the process. When reviewing peer codebases, a developer gets to know solutions, classes, or system enhancements that are new to them, allowing them to evaluate their own coding decisions and adjust them accordingly. All in all, peer code reviews help ensure code consistency even when whole parts of the codebase get rewritten.

5. Encourage Developers To Publish Daily Reports On Their Blogs

Blogging helps communicate one’s thoughts. Modern team collaboration software enables developers to create blog posts that are available to other team members. When running into a particularly tough issue (or a spike), a developer can describe it on their blog to solicit comments or suggestions from other team members.

Daily reports contain feature implementation histories that may be useful for other teams as well as for the project managers who can refer to these reports when planning new iterations.

Chances are, some of the developers on the team have dealt with the same issue and have a tried-and-tested solution to it. Moreover, sometimes taking time to articulate the problem helps the person to eventually come to the solution all by themselves.