Hi my name is Ant and I have work at Canonical the company behind Ubuntu for over 10 years now. All of which I worked in the office. For the last 7 years I have been a manager of a mix of in office-based and remote team members.
Unexpected challenge over the last 12 months
We used to hold company get together called Sprints within Canonical. In which, a large portion of the wider company would all get together for a week of meetings, planning and socialising. Over the past year and a bit we have not been able to do this and has led to a weaker cross team relationship.
The last few Sprint weeks have been held remotely which does not allow for hallway discussions and organic team building and idea sharing/forming over coffee or dinner.
For example, in the last Sprint we were talking about a technical challenge which lead me to think of how that could positively effect another project. I would normally wait to the end of the meeting and catch the person working on the other project on the way out and explain the idea as we grabbed coffee before the next meeting. In this case, we both just closed our call and left it there.
How do you keep remote and distributed teams in the loop and prevent the feeling that people are siloed and isolated?
A lot of us will say Good morning in the team chat channel when we come on board. This gives people a feeling of light touch with others is not straight into work.
We hold regular cross team meetings such as guild or chapter meetings which keep teams from only talking to their immediate squad.
Tools we use
- Miro: for brainstorming and sharing our ideas collaboratively
- Figma: for creating and archiving designs
- Zeplin: for presenting finalised versions of designs for comments and feedback
- ZenHub: an augmentation of GitHub which provides a view of issues and PRs as a board which auto updates based on the status on GitHub.
- Mattermost: as our internal chat system
We have an internal team optional meeting were someone can put forward a session based on a topic they would like to share with everyone. These are called Masterclass and they allow for the entire team to get together and learn and questions each other across disciplines.
What creates a productivity and collaboration in a remote environment
Canonical has always been a truly global company. The teams here have been trail blaze async working processes. We developed Launchpad which is a software collaboration platform before GitHub or GitLab.
All teams across Canonical and the industry are different and should adapt others processes to suit there teams. The web team at Canonical is also always evolving its process but I will detail some of the structures, processes and cultural changes we have utilised over the past 12 months.
- Shared meetings notes: we encourage all meetings to have someone taking notes of the meeting and posting them as an issue on a private GitHub repo we have all subscribed to. That way we receive a nicely formatted email when a meeting has finished and allows for searching, tagging and continued discussion. We assign the issue to anyone that has an action from the meeting and so appears on there assigned issue list. Which is a nice way to tie meeting actions with our standard working practise.
- Record team meetings: we perform a number of rituals as a team. Such as end of iteration demos and a fun meeting at the end of each week which a number of us present something they are interested in. These meetings are recorded and shared with the team so all team members can watch the sessions and its not just a summary of the fun the team had.
- Reviews are async: as stated above in tools we use Zeplin as our tool for performing design reviews which can happen at any time by adding comments to the design.
These tips and processes do not just benefit teams with people in different time zones.
This also is a huge benefit to members of the team that are more reserved and less likely to talk up in a group meeting. I appropriate the time to think though my ideas and gather my thoughts before putting forward my opinion on something. How often has a decision been made in a meeting and only later turns out the decision would have been different with more thought or discussion.
Also, everyone has holiday, can be sick or are just busy. These processes allows for these members of the team to miss meetings in the knowledge they can catch up later and add any opinions they have without missing out and being left out.
What do you look for in the hiring process to determine if engineers will succeed with remote work?
It is not on an individual to succeed or fail when working remotely. It is a team effort and if someone is having trouble then it should be noticed or they need to feel safe enough to speak up on the matter. A truly good team will react positively to any troubles a team member is having. Finding ways to remedy to issues and adapt the working processes.
There are of course exceptions but that is where the manager need to support the team member.
We have developed an on boarding epic which contains a number of categorised issues with list of todos and things to read. We normally give a new member of the team two weeks to step through the items and encourage them to take there time. It’s inevitably overwhelming and the best thing we can do is remove any time pressure a person might feel.
How do you introduce remote teammates into the organisation so they have a strong chance of being successful?
We assign a new member of the team a mentor. A mentor is generally a person that has been in the team for a while and can act as an unblocker and someone that will explain things in familiar terms.
One aspect of the on boarding process is to arrange and have welcome meetings with members of the team that they should know and likely to interact with. This reduces to pressure when communicating about work later on.
How do effective engineering managers build trust – and support individual engineers, teams, and organisations?
You need to allow them autonomy on the project and work they work on. No one wants projects to all move in different directions but that needs to be controlled by a strong team culture which emanates from the engineering manager.
For managers, 121s with reports are the most important meeting of the week. Try as hard as you can to never cancel or reschedule them. It may feel like another of many meetings for you but for the report it is likely one of there few meetings in the week and will likely be very important for them. I generally start 121s by talking candidly about life and how things are going. It’s important to build an honest friendship and rapport with them so your team member feels comfortable coming to you with any issue they may have.
Let’s round up by sharing one key takeaway on leading distributed teams, What’s your one piece of advice to any engineering leader?
Stay close to the code. It might be difficult as you may find you are no longer the expert in the room on something but you build a lot of respect and good culture by trying anything, asking simple questions and allowing the team to help you.
As a avid football player, I treat work like a game of sport. You may be the captain but that means you work as hard, keep your humility. Provide Servant leadership from the front.
Don't put yourself above others in your mind, stay connected, stay friendly.