“What we’ve got here is a failure to communicate”. Classic movie fans will recognize this famous line from “Cool Hand Luke”, starring Paul Newman. At Accelerance, we often hear about “failed communication” in our post-mortems with new clients who seek our help. These clients had disappointing results with prior attempts to outsource software development. As a result, they ask Accelerance to help them outsource “the right way”.
Poor communication is never a good situation, but becomes doubly damaging when software development project teams employ highly-iterative development methodologies such as Agile. When Agile methods are introduced into the development project:
- Gone is the rigid, top-down progression of software development and is now replaced by iterative software development.
- “Big Bang” deployments are replaced by MVPs and continuous software release
In contemporary software development, the need for speed and nimbleness can only be achieved through effective communication.
Communication is a two-way street
Think of communication as a two-way street between you and your offshore partner. You reside at one end of that street and the software development company lives at the other end. It is your mutual responsibility to maintain the street and create free, unfettered exchange of information between each other.
The decision to outsource software development is an important, strategic decision. You want to achieve the business objectives, software / product objectives, timeline objectives, and budgetary objectives of the project. Similarly, your outsourcing vendor wants to protect their economic objectives, create something of meaning, and (hopefully) walk away with a positive customer story that can be used as a reference. In other words, you both want to see the relationship succeed.
Bottom Line: Communication requires mutual commitment and participation. The success of your software isn’t “the other guy’s problem”, it is a mutually-owned responsibility.
Connect the Dots - Business and Technical Objectives
Still, it’s surprising how many times we see companies fail to share enough of “the big picture” with their chosen outsourcing partner. Virtually every software project is born from a set of business priorities:
- Create new product or service offering.
- Outpace competition with improved capability.
- Scale more rapidly.
- Drive more revenue and/or drive costs down.
Your business objectives, of course, will make their way into attributes of the system design. Does your software outsourcing company understand that tie-in? Knowing the business context and expectations makes your outsourcing team more effective software developers.
Bottom Line: Start your outsourcing relationships well by helping your partner understand the business goals and objectives that justified the software development project.
Ask Good Questions - Give Good Answers
Questions - asked well and answered well - are a cornerstone of good communication. This is even truer in the complex, creative process of outsourced software development because:
- A fast pace is the norm for the team
- The involved parties are geographically displaced - often thousands of miles and multiple time-zones apart
- Culture and language distinctions can affect important nuances of clear communication
Our advice is: have robust conversations which invite exchange of ideas and clear understanding. Whenever possible ask open-ended questions that force dialogue, NOT closed-end questions with robotic “yes/no” responses. Conversely, look for opportunities to share “why” you want certain tasks to be performed (“I want to be able to ..., so I’d like this piece of code to ...”).
It might sound trite - but don’t assume. Making assumptions and leaps of inference can be deadly in a software outsourcing relationship. Your offshore partner is not trying to be deceptive, but certainly realities can come into play:
- The programmers may tend to be highly deferential to superiors (and clients). In their culture, it may be disrespectful to ask questions or make statements which seem like a challenge or disagreement.
- Language usage might cause confusion. Your use of certain terms might vary from how your offshore team uses that same term. Probe and – and be clear... when does “done” actually mean “done”.
Bottom Line: Take the time to ask questions that encourage creative exchange of ideas with your outsourcing partner. Likewise, make sure you understand fully the questions being asked of you - and give full, useful responses.
Properly Exploit Collaboration Tools
Technology can never replace effective communication - but, used wisely, the great collaboration tools available today can really ENHANCE your ability to communication with your offshore development team.
- Email and Calendaring. These tools are fundamentals. Obey this rule: “One person, one email address". It's surprising in small companies how some key individuals may flop between multiple email addresses. Don’t be that person! Similarly, you may want to create and manage a TEAM calendar on a common platform.
- Organized Document Repository. GoogleDocs and Sharepoint are the flagship tools for creating good file organization with helpful search engines. Whether or not you use one of them, their functionality represents what is ideal for this kind of communication tool.
- Task / Work Management. There is no RIGHT tool here. Each team has a rhythm that lends itself to one kind of tool over another - and feature/function of the tool will vary accordingly. Many companies use cloud tools like Trello, Teamwork, Monday, Basecamp, and others with great success.
- IM/Video Chat. Sometimes, the choice of this tool is a default decision, because of other platform technology you are using. If your team is going to be a heavy use of IM - then your collaboration tool should have an effective method for managing history and organizing discussion threads.
- Case / Issue Tracking: Whether a well-maintained spreadsheet - or a robust cloud tool specifically designed to log issues and track-to-resolutions - a software development project needs a process and supporting tool to communicate issues and defects.
There’s no doubt that you and your outsourcing partner will be more effective with good collaboration tools. A word of caution, however: We observe that too many tools, or undisciplined use of tools, can be as bad as a no tool at all! Make sure that there are common ground rules established for where documents are kept, where key calendar events are stored, how important information will be conveyed among the team, etc.
Bottom Line: Take inventory of what an how you want to communicate, then make sure you have a plan to use tools to assist you. Establish file organization rules AHEAD OF TIME to avoid mid-project chaos when key collateral can’t be located.
Accelerance Consulting Services Establish Communication Practices
No one knows more about outsourcing success than Accelerance. Most tech leaders outsource only a few times in their careers. But, our experienced advisors work with offshore and nearshore partner teams every day. Our coaching services can guide your team - and your outsourcing partner in establishing the communication practices that produces high performance and maximum ROI for software outsourcing.
Accelerance Coach helps you maximize your success in software development outsourcing. Your Accelerance Coach will:
- Prepare your organization BEFORE you engage a software development outsourcing partner. We ensure that you have the organization, processes and tools in place to communicate and execute successfully with an offshore partner
- Successfully on-board new outsourcing partners and kick-off engagements effectively
- Guide you - or take full ownership to outsource your software development for maximum results.
Accelerance coaches have decades of experience launching and managing software outsourcing relationships. We have successfully completed hundreds of software development projects using outsourcing partners, domestically and around the globe.