Communication is a key ingredient, or a deal breaker, in outsourcing software development. When you add in the complexity of co-development between an internal and an overseas team, ensuring clear communication is even more important—and challenging. In this case communication is further complicated by differing country cultures and regional influences. It’s tough, but if you can achieve it, good communication in outsourced co-development means your project and your internal team are better off from every angle than they would have been had you not outsourced. Done right, there’s no downside.
What it looks like
The outsource team will enhance, rather than detract from, the internal team’s velocity, knowledge, and morale. Both teams will be on the same page, sharing common goals and successes. If the going gets rough and you find your project stalled in the dirt, your vendor will be right there with you (or before you) to get you out of the mud and get your project across the finish line. Common goals, and common definition of success.
What it takes
The key to communication in co-development is to get every member of both teams connecting at all levels and working cohesively as one unit. Communication must be less of a word and more of a culture. But how is this achieved? We’ve worked on communication for 25 years and we think we’ve gotten very, very good at it. Here are what I believe to be key ingredients:
Communication, hard coded
Our hiring, training, travel, and promotion policies are designed to support the vital role communication plays in getting good software built:
- Hiring: We hire for attitude and train for skill. This is a delicate balance because our quality standards require awesome coders and our communication standards require no ego. Every candidate must have a passionate interest in deploying their technical talent to understand the client’s goals and find the path to achieving them. On top of that candidates must have a growth mindset. For communication, this means learning new people and personalities right along with new technology.
- Training: Apart from technical training, we have a communication expert in-house. He mentors team members in key elements of communication such as verbal, non-verbal, lingo, tone, and accent. If I pick up the phone to talk to you and you seem stressed out, my approach should change to accommodate this. This extends to situations like a 10-person stand up with the client including stakeholders–knowing when to speak up, about what, and how much depth to go into.
- Travel: When a programmer travels from our office to yours to meet you face to face, work with your team elbow to elbow for a few days or weeks, things become more meaningful. Even with tools like Skype or WebEx, there remains a communication gap that can best be addressed by sharing physical space. Your Integrant team, in meeting with you and your team in person, may get a real appreciation for the pressure you’re under. Maybe we feel the frantic pace in your development department and really understand how important it is to take some pressure off you by communicating during certain time intervals or with certain people for certain issues. Travel, to us, is not a “nice to have” but rather a “must have” to achieve the results you want, and as a result we build quarterly travel into our standard fees.
- Promotion: We promote from within, almost without exception. This way, every new hire benefits from entering a culture where their mentors and seniors are fully able to model the communication standards we expect.
Communication applied to co-development is about working together to find a solution. We expect every programmer to speak up, share ideas, and raise flags. This can be challenging in a field with a high percentage of introverts and people who learned English as a second language. At Integrant we address this by:
- Helping our staff gain confidence in their English skills (we have a full-time English instructor on staff).
- Encouraging every member of the team to speak up in internal meetings. If someone doesn’t contribute, we’ll ask if they’ve got any comments. Some folks need a warm invitation or a little prompting! In this way employees gain confidence around communicating during client meetings.
- Encouraging task-based decision-making at the individual level. If you’ve thought it through and weighed all options, make your move.
- Providing ongoing, positive coaching including role playing, from senior team members who embody our culture.
Every programmer is expected to listen and speak for themselves, not through a coordinator or supervisor. This is why we find the agile practice of stand-ups (or the functional equivalent) to be vital. In this setting a programmer hears directly from the client what they want, and why. The programmer then takes responsibility to ponder the problem, come up with options, and recommend a solution. Good solutions are born out of every single member having their head in the game.
If you’re not falling you’re not running
If you’re afraid to mess up (or be proven flat-out wrong!) you’re a lot less likely to try a new tool or look at something a different way. If we don’t allow our team members to try and fail, they’ll do neither and the client will suffer with a mediocre, “you asked for it you got it” final product.
At Integrant, strategic risk taking is encouraged. This involves a programmer presenting a new or alternate idea, clearly communicating their proposed steps and associated risks, and managing expectations. If their idea fails, they take ownership, remediate the problem, and apply pre-built safety nets to ensure the project isn’t negatively impacted.
Our infrastructure supports this mitigated risk-taking culture, including 20% bench, cross-training, and shadow programmers.
Our technical leads put the client’s situation in context
Our technical account managers and project leads inspire compassion and commitment in your Integrant team by making sure they understand where you are coming from, beyond the project requirements. When push comes to shove, understanding your motivation and circumstances is the difference between your team being inspired by a challenge or disheartened by what might look like unreasonable demands.
Case in point: For one client, the product owner was a business visionary who kind of reminded us of Jean-Luc Picard in Star Trek saying, “make it so.” His requirements were lofty, unspecific, and constantly changing. We struggled.
Then the technical account manager (TAM) communicated client perspective to the Integrant team to keep them motivated. She described the product owner’s background, skills, and weaknesses. He wasn’t technical. He wasn’t organized. And he owned another business – the project with which we were helping him was his dream project. He was passionate and had great ideas, but needed help organizing requirements and controlling scope. She motivated the team by communicating the personal story behind the client’s struggle. This was his baby. He had worked with two other vendor teams who failed to build a marketable product. He had wasted a lot of money on the first two attempts. He was counting on us.
The result was a team that was motivated, passionate, and shared the client’s goals. Communicating the client context resulted in a committed team and a successful delivery.
Communication: beyond a buzz word
Imagine how much more productive your outsourcing would be with you and your vendor working together and communicating at all levels. Communication is a critical ingredient and there are specific, describable infrastructure and cultural expectations that go into good communication results. We’ve worked hard to achieve a proven track record in this area. Contact us to see for yourself.
For tools we use for technical communication with the client (eg, project progress), check out my blog titled “Do you speak my language?”