Some of us work in remote teams, some of us work solo, others are colocated. Most articles debate the effectiveness of one or the other, but there is reason for concern when we look at things so black and white.
The reality is that companies most often find within themselves a mix of remote and colocated employees. Here are three common scenarios:
- Company A hires an agency that needs to collaborate with their established internal teams
- Company A hires both remote and onsite employees directly
- Company A has no (or a small) internal team, so they hire an agency to own a project’s development
I want to share some of the ways my front-end team has been working here at Synchrony Financial. For the main project I’m on, we fall under scenario number 3, but I’m also on projects that fall under 1 and 2. For now, I will be talking about scenario number 3.
What are we working with?
We have two onsite developers (myself being one of them), and roughly 10 developers from a talented development agency working in another state. It’s an odd situation since the agency outnumbers the internal devs 5 to 1. I was the first internal developer, but the agency has owned the project long before I came along.
Basically, us internal folks are the remote developers here. All meetings are held in a conference room at the agency’s office, they have the most senior devs, and they have the most experience on the project.
So how did we maintain communication when at one point I was the only remote developer?
Daily stand ups on Zoom
Daily stand up meetings are found on any agile team, but we always share ours in a zoom video conference. The agency hosts the meeting in one of their conference rooms, and we all give our updates like normal. We can see each other’s faces, and I immediately know who worked on what the day before. It’s your normal daily stand up, just on video with a shared stream of our kanban board on Jira.
Hybrid pair programming
We strongly encourage pair programming for larger features and on boarding, and solo work for bugs and small features.
To make this work remotely, we use Apple screen sharing and a zoom video conference. There are some hiccups when internet gets wonky, but overall it works extremely well.
We generally rotate pairs when they finish working on a feature, and we encourage devs to try a wide range of features, which consequently spreads knowledge across the team like a wildfire. Developers get context on aspects of the project that they never would have touched on before.
This is especially critical for remote team members who can’t just look over someone’s shoulder and see what they’re up to. Remote pairing keeps the offsite team members up to speed, and makes them feel much more apart of the team.
Countless companies do this already regardless of their onsite / offsite situation. Slack channels allow us to organize announcements and information across the team, which is especially important when keeping remote developers in the loop.
The development team has its own channel and group handle so it’s super easy to ask general questions, notify the right people, and get answers quickly without bothering the masses.
Miro (formally Realtime Board)
We mainly use this for our retrospective meetings, but it’s still a super handy place to refer to action items and general comments about the sprint. This is useful for any agile team, but it’s worth pointing out because it allows remote developers to participate equally.
Address communication issues in norming
Every now and then, our team has a “norming” meeting. This is when we evaluate our standards as a team, get new team members familiar with our workflow, and address any gaps we may see. Communication is always a topic of discussion since it’s constantly a work in progress.
Do the remote devs feel apart of the team? Is information being communicated effectively? Are all the right people invited to our team meetings? Or are developers constantly pinging the group, “is there a meeting right now?”.
It’s natural for communication to slip now and then. Norming meetings help us get back on track and remind the team how we want to collaborate.
There is by no means a formula here, and it’s still a work in progress for us. We have found that our velocity is steadily increasing despite the weird ratio of remote developers to co-located developers. Maybe there is something you can take away from this, or maybe none of it makes sense for you and your team. That’s okay either way, but I think there is some value sharing what our team is doing in such an odd scenario.