Remote software teams - setting the culture

The pandemic has validated the concept that remote work is not only sustainable, it is actually better in some cases than onsite work. This is especially true for software development phase, where the work is very much supported by collaboration tools and the work products are digital and wire transmissible by it’s very nature. And the biggest benefit that came out a fully remote operation is that the key factor that makes software projects difficult - availability of talents - is resolved easily. Remote software resources can be found from anywhere in the world as and when needed. Given this state companies all around the world has embraced remote work and remote teams.

Although this paradigm shift geographically distributed remote team is happening at breakneck speed somethings remain the same. A software team is still a team of humans that must work together with passion to create great software. There is no way out on that theme. So the new challenges that companies are facing are the challenges of keeping the remote team motivated and connected. This is indeed a big challenge as team members from far away, from different time zones and maybe from different cultures make for a difficult setting for create an unified “team feel”. The usual strategies for bringing on the team feel can’t be done and you need to come up with new solutions. We wrote about our best strategies in a recent article about remote team building. Today’s post is about the other side of the equation - the changes and considerations of workflow, processes and policies that enhances the collaboration and the team feel of a remote software team. Here are some out biggest hit in this area:

Create a culture of empathy and collaboration

Empathy is the key to a sustainable creative culture that enhances and enforces the values of great software teams. With processes and talent in place the only factor that makes a software organization excel is its culture. This is absolutely essential for creative organizations and this one factor differentiates companies that are performing at the highest level with quality, scalability and repeatability of performance. And of all the strategies culture is the hardest one to get right.

The schematic here shows some of the guiding principles we aim for in setting up the culture for remote teams. If we can get these key features right in a remote software setup then we are usually on the right path of creating a culture that works. Remember, the culture of a remote team doesn’t happen overnight, it’s not like switch you can just turn on. You have to create the right environment, take the actions that moves the team towards the right direction and then hope that it will all work out and the team’s work culture will be the right one for software development. Every team will have it’s own unique way of doing things - it’s own culture. In the 18 years we have been running remote software teams hundreds of companies around the world we’ve seen hundreds of variations on team culture. Each one of them were different, some worked better than others but overall the environment for the team were more or less the same. So it’s like throwing a pair dice, but you can improve your chances of winning by getting the playing field tilt the right way! Here are those key factors in more detail:

Consensus driven

We usually start with a consensus driven decision process where all team members have equal say in major decisions for the software project or work process. The goal is to introduce by policy and with explicit management preference a process where a vote is taken on all decisions. There is not feel of someone having more power than other just because they are at different level of seniority or from different area of work (say someone from HR). This consensus driven culture will enhance the feeling within team member far from each other that they are individually valued and their thoughts are taken into consideration. We’ve found that it’s really easy for a remotely distributed team to start feeling that they have some disadvantage being away from a certain core group or geographic location. This is especially true when a certain portion of the team is onsite working together whereas the rest are remote.

Low red tape

There needs to be a strong concern to setup everyday work policies that require the least amount of red tape. The less cumbersome the process for say taking a holiday or reporting a project status is the less the team will feel that their time is being wasted. This is true for onsite teams (all of these points actually are relevant for onsite team) but it becomes very important for remote teams. Because of time zone differences or just the availability of the right person to move the process forward, any red tape becomes hugely frustrating very fast. This is something that’s totally avoidable. Remember that the goal is to take away as much as possible the “pains” of working remotely and red tape is the easiest evil to take away. You might have to fight a few battles with the management or the HR but it’s worth that fight.

Flat hierarchy

Software teams just don’t need a lot of hierarchy. Usually a team lead who looks after a bunch of developers (maybe with different levels of experience) is all that’s required to make progress. So, essentially at an everyday level there should be just 2 levels - the lead and the rest. On a reporting level the lead might have a layer or maximum two above her. But that should be it. Having a flat hierarchy just makes for a fast and efficient decision making ability and that creates an efficient team. Now in this mix when the remote team comes in, every problem related to complex hierarchy magnifies ten times. Every decision making start percolating on the layers, bouncing up and down the layers before something final can be achieved. So flat hierarchy is the only sane way of running remote teams. Ideally, individual remote team member should only have one level of management to worry about - so, for example, a remote developer should take instructions from just one team lead somewhere, etc.

Gelling events

These are events where the team members are brought together virtually and if possible physically to connect as individuals. We talked about some great strategies for gelling a remote software team in different post. These are essential in creating a culture within the software team.

Fun, relaxed and creative

This is for the overall tone of the workflows, communications and practices of remote work. By setting a tone of informality the management creates the feeling of ease within the remote software developers. This is essential for moving team forwards in creating the right work culture. In essence this is the background to all the other activities and actions that a company must do for a great software team that works remotely.