Software projects, especially the complex ones with new technologies, require high-performance teams. Most often, the first choice is to recruit specialists to the team and hope they can join quickly. This however takes a lot of time and money (the average cost of hiring a software engineer is about $50,000).
To scale quicker, many CTOs choose to outsource one or more software teams. This solution can be profitable and can increase velocity, but like everything, it comes with some price and risks that need to be managed.
The main challenge in any remote software project is how to unite the internal and external teams. This issue is often overlooked, and many CTOs do not pay enough attention to it until it’s too late. The truth is, this issue should be addressed immediately. According to the Project Management Institute, one-third of all projects fail due to poor communication.
We all know how difficult it is to build trusting relationships when people work remotely. Without reliable communication, team members become less efficient. They won’t feel like one team, which would hinder knowledge sharing. In addition to international projects, there are contrasts in culture, time-zone differences, and language barriers that prevents effective communication. Not to mention the coffee machine talks problem. This is when one team discusses and agrees on some crucial details related to the project over coffee and fail to inform the other team or fail to discuss the reasoning behind it properly, which creates friction.
At Scalo we’ve seen this story more than once.
Two years ago, our client decided to outsource software development without informing the internal team about it. He didn’t care much about the collaboration between the in-house and remote teams. From the very beginning, there was unhealthy competition between the teams, which created a lack of information exchange and mutual assistance.
Although the complete documentation was in place, with a thorough backlog ready and available during the entire project, the completion took much longer than expected. The teams spent 13 months instead of planned 9, and the cost went up by several hundred thousand euros. Miscommunication, lack of trust, and failing to establish a real human connection between different team members were the reasons for the projects impediment.
So, how do you remove this threat to allow your project to succeed?
This one is fundamental. The first thing to do is allow the teams to get to know each other and interact face to face. Even though we are fully digital nowadays, and throughout the project, the teams will communicate via Slack, Skype, or other channels, nothing can replace real human connection. The result will skyrocket the overall quality of the communication, let me assure you!
Why? Simply because, suddenly the developer from London, won’t be just “that guy from London” but he will be John, with whom I went for a pint of Pale Ale. I know he’s a bike enthusiast and when he’s not using any emoticons on Slack, he’s not angry or annoyed but it’s just the way he rolls.
To make this happen, you can introduce a couple of different exercises, but from our experience, the best solution for minimizing all the risks is so-called Hybrid IT Outsourcing.
In this model, at least one developer from the external team is always working in your office with your in-house team. The developers rotate over time, up to the point that the entire team has worked desk-by-desk with your team. It will positively impact communication, as people who share the office space naturally, communicate better and have a chance to know each other better.
This approach blurs the line between in-house and remote teams, which results in effective collaboration. Hybrid IT outsourcing is a blend of in-house and external team that work on your custom software development, so it can be easier to organize the entire workflow. It gives you greater control over what is done and makes your internal team focus on their tasks better.
There’s no question when the entire team knows the scope of the project and stays up-to-date at all times, it boosts team morale. Without proper communication between the internal and external teams, you’ll end up with confusion, uncertainty, and office rumours. What do you think, does it help when you have a motivated and productive team on board?
It’s impossible to run a well-developed project without trust among team members. When you have structure, you’ll see a huge difference.
How to do that? It all depends on your company culture, but here’s a few ideas to start:
- Try to introduce Daily coffees as an addition to daily standups. This will encourage the teams to have more informal communication and a chance to get to know each other. Remember to sync both teams in the middle of a day for this one.
- Create a dedicated Slack channel to exchange ideas and solve ongoing problems. Try using groups like: Project-related, company-related, code review, hyde park
- Introduce a brown-bag session at least once a month to exchange ideas and give an opportunity for team members from different teams to get to know each other
- Have a Q&A session with PO, CxO, and other influencers in your business where teams can ask anything they want. This way, they will know where are they heading both in the project but also in overall company strategy, which will positively impact their communication and performance in current and future projects. This can be done either face-to-face or on a dedicated Slack event, depending on the size of the organization.
The paradox is that one of the most common reasons why software projects fail is poor communication and minor issues can escalate to major incidents.
Make it easy for your team to collaborate with other members and you’ll be surprised how it improves project quality. Think about it this way: it’s not the technology that drives success – it’s the people.
So each time when you introduce a change in your team, or your project, make it your habit to think about the other team which is not present – it’s that simple, yet many seem to forget about it.
Get in touch and let’s talk how good communication may support your software projects.