Agile in a distributed environment: does it really work?

Agility has been mainstream for a few years now even though we’re still trying to figure out what it really means and how it works (I actually wrote an article about that some time ago).

We’ve all heard it at least once, remote or distributed teams are almost unavoidable nowadays. There are several reasons for that:

  • Most companies have offices in different cities and/or countries
  • Hiring talents can be difficult if you limit yourself to where your offices are
  • People want to travel and have experiences in different places
  • Remote or distributed doesn’t necessarily implies different countries or cities, it could just be another building next to yours
  • Big projects usually involve several teams which, in todays context, will most certainly include people in different locations

It’s a complicated topic and you will find advocators on both sides: those who are convinced that the colocation of team members is mandatory and those who say that it doesn’t matter. But hey, what does it mean to be a team anyway?

To be a team or not to be

First you need to take a few people. How much isn’t an exact science but the frameworks and methodologies do agree on one point, a big team is no good! Scrum tells us 3 to 9, XP 5 to 12, SAFe 5 to 11…in my experience the sweet spot is around 7: you should have enough people so that the team has all the necessary skills to work and communication is still manageable (quick reminder, number of communication channels in a group of n persons is (n * n-1)/2).

Get them to really know each other. Yes, get personal, they should take interest in the people they work with everyday. Try to understand what drives them, what are their personal constraints, what makes them feel safe or insecure…I know, I know, you don’t need to like people to be able to work with them and it’s a fair point but still, the more you know and understand others, the easier it will be.

Then you have to give them a mission, a clear vision of the objective. It will drive the team in its daily work, help make the right decision to achieve the goal. Douglas McGregor got it right with Theory Y, people are driven by purpose, and new generations are becoming more and more demanding on this part. We all want to do something useful with our life and work is a huge part of it!

Fourth ingredient, give them the means to achieve the mission. Space, material, support, dynamic, guidance, trust, autonomy…if the objective is clear and was correctly and transparently shared then you just need to give them what they need and trust them to find and implement solutions. They will get things done! Make sure to give frequent feedback, ensure you are on the right path and encourage new ideas.

Finally create situations and opportunities where team members will have to work all together. Quick wins are good, they help build up confidence which is essential to reach the team potential. Work all together means helping your teammates when needed, be genuinely interested in what needs to be done and how you can participate even if it implies using skills that are not your specialty, understand that everyone is responsible to complete the work as a whole and not just your part.

I know I’m not telling you anything new but a reminder is always good right? Anyway, let’s assume we agree that those are essentials traits of a team, now back to our first question, does it work in a distributed environment?

It’s not all bad…

More available profiles

There are some advantages about distributed teams and this is one of them. Recruitment can be really hard, specially in IT (I’ve done it for a year in Paris and it was quite challenging), and trying to hire locally could get tricky as candidates will have many offers. The good news is if you start to open to the international and are ok with people working remotely then you have a lot more possible candidates. It can be a whole team (although it’s a slightly different situation in this case), part of it or even only one person, whatever the case things will get easier.

More availability for clients

Just to make sure we understand each other, I’m not talking about a customer service phone number you can call when your iCloud login froze your mac and nothing’s responding as you just finished writing an article but didn’t save for the last 2 hours (never happened to me, I swear)…No, my point was if you have people in different places with different working hours, you’ll have a larger time slot to react to possible problems (like production is on fire, aliens started to invade the earth or the only thing left to eat on the planet are Brussels sprouts), which is a good thing right 🙂

Cultural mix

That’s actually one of my favorites. There are lots of studies and articles on cultural diversity and the benefits it brings to the workplace (a rapid search on Google will give you enough reading material for a few hours). Along the years I was lucky enough to work with people from lots of different places (Mexico, Morocco, Tunisia, Argentina, Brazil, Spain, France, England, India, Portugal, Italy, South Korea, Japan, Australia, Greece, Netherlands, Germany…and the list goes on) and its a great way to learn and improve! Different points of view and ways of thinking, different approaches to problem solving, communication styles, discipline and so on. It is tricky and yes, you will definitely have tensions sometimes due to misunderstandings (because of cultural gaps or lack of skill in the common language which is usually english) but it always challenges status quo and inertie, forces you to analyse things differently, to think more about how to pass information and explain your thoughts and you will learn a lot in the process.

Flexibility makes happy employees

Now that’s an important part too. As we talked about just before, recruitment is a major pain point and as a consequence, employees retention is very important. Not only because finding someone else can be complicated but because of the loss of knowledge you will suffer too. The more flexible you are on remote work the easier it will be to keep your employees. A person needs to be home every Wednesday to look after the kids? Fine, home office is your friend. Someone wants to move to New Zealand but your office is located in London? No problem, we certainly can do that. A developper is going for a 6 months trip in Asia? Ok, let’s see what we can do about it, can you connect a few hours a day/week? When and how? Do we need to synchronize using video call or a messaging app is enough? We are lucky enough to live in a time where communication is made very easy regardless of the distance, lets get the most out of it!

…but clearly challenging

Ok so remote work has a few perks but let’s be honest, it does add extra difficulty, more so in an Agile environment where we want to create frequent and efficient communication.

Main team vs remote team is baaaaad!

Ok, here is a first anti pattern (I can say that right?) that is unfortunately pretty common. The team where most members are or where managers or business are is called the main team, the rest being the remote team. This is very bad! Even though it is not done intentionally or to emphasize any difference it still sends a clear message: we are not just one team…Most of the time people start doing it without noticing but vocabulary is important and has a way of modeling how we see things. It is important that everyone feels part of the same group.

Highly unproductive at the beginning

It takes time to grow a team and the first few weeks or months are very important. Starting with remote people can work and there are a few exemples that demonstrate it (Basecamp or Happy Melly for instance) but I still think that you should get everyone in the same place at least in the beginning. Take some time for people to get to know each other and build a strong feeling of belonging. Organize some activities like a Team Canvas to define goals, values and rules, create support and also use that time to introduce the team to everyone else in the company as they might not have the occasion to see each other too often.

Might need more coordination

There is a natural communication that happens when people work in the same place. This communication is quite important as it allows a better flow of information and reactivity: you need an information? No problem, just ask the person seated right next to you. Have some big news? Great, get up and just tell everybody, they’re here 🙂

With remote teams things get a little bit more complicated. Ok you can always send a message on slack (or whatever chat app you’re using at your company) but odds are they’re not going to see it right away, you can’t make sure they got the message and if you need information that is blocking you on your current task well you can only hope for a quick answer. To avoid those situations you will have to create more coordination calls or meetings and that’s the kind of things we try to reduce to the minimum required.

Communication will be more complicated

I had a project with a team in Greece a couple years ago while working in Paris. We had a weekly meeting with the remote members (which included business analysts and developers) to make sure we were working on the right thing and that there were no alert from anyone. We talked about technical details and answered all questions on both sides. After a few meetings I noticed that the tech lead in Greece never had any question (he never talked much actually), every time I asked if everything was clear or if they needed any more information the answer was the same. As we made important decisions during this meeting I started to write a resume and send it to all stakeholders, including the team in Greece obviously. That’s when questions started to pop up, I found out that he was not so comfortable with english and that it was easier for him to read/write it than to have a conversation. That led to some minor technical problems due to the fact that what he interpreted during our talks was not what we meant.

Having to use a langage that is not native will obviously have an impact. Add cultural differences in the mix and you’ve got a pretty nice cocktail for hard communication.

Delays, delays, delays…

Working in different time zones can be a real nightmare. If you live in Europe and work with Asia or Australia you will sometimes have to wait an entire day to have an answer to any question. The impact is huge and productivity will fall very fast! And this time there’s not much you can do. In my last experience with distributed teams we had people working in India (here again we were based in Paris) so we had 4 hours a day to synchronize with them. Seems good enough right? Well in the end we decided to re-organize the squads and create an independent one with all the people in India and I still think that was the best decision we could make! Coordination needs were drastically reduced, every team could deliver work without waiting and feedback from squads members on their pain points were much better. Delivering quality features is hard enough without adding delays in synchronization and work in general.

So, does it work?

Well…yes, it can work. I’m not going to say otherwise, that would be lying and I did work on a few projects that were successful even though we were not all working in the same place. That being said it is not a good situation and if there’s any way the team can organize so that they don’t have remote members I would strongly advise them to avoid it.

What about you? What’s your experience with distributed teams? Do you agree or do you think it shouldn’t be a problem? Leave a comment with your impressions.


Did you like this article? Show it

Leave a comment, like on LinkedIn 👍 and share! Your help and feedback is important, it helps me to learn and keep improve, thank you 😀

One thought on “Agile in a distributed environment: does it really work?

Add yours

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Blog at WordPress.com.

Up ↑

%d bloggers like this: