6 Best Practices to Maximize Knowledge Sharing while Offshore Outsourcing
Technology has allowed wonderful things. We can communicate the world over. We can conduct research to find any product or service we want, no matter where those may be on the planet.
The implications for businesses have been pretty substantial. Projects can be completed by remote staffers in all different geographic locations without any reduction in team performance. And technology allows to extend a development team and still collaborate minute-by-minute, if necessary.
Yet, largest concern most business owners and executives have is that they are putting part of their company into the hands of someone else – someone they are unable to physically meet with every day. This is especially true for a startup in its early and middle years, when an owner has not added tons of staff and is not delegating. It’s rather like sending a child off to school for the first time – it’s hard to let go of a business function/need, even when the in-house expertise is inadequate or already overloaded.
Considering that you have weighed the pros and cons of outsourcing software development, and came to the “let’s do it” decision, your next step is to ensure that the two teams will double power for your business, rather than double hassle.
Mixing Onsite and Offshore Teams – Can It Work?
There is one single way to ensure that you are still “in charge” when you decide to outsource.
That way is to set up a framework for continual and regular knowledge sharing and cooperation in outsourcing projects between your offshore outsource team/firm and your in-house team. Only when that knowledge sharing and that communication is codified by a framework and structure, will this all work.
When there are regular communication and knowledge sharing in outsourcing, you and your in-house staff will have a comfort level with that outsource team and the project. And, better yet, you will guarantee effective outsourcing.
Below, you will find a quick graphic that shows what is the most effective way to scale a development team without losing knowledge. These may seem substantial and even insurmountable to you, but there are actionable ways to mitigate all of these inhibitors, and those strategies are not hard to put into place.
Image Source: M. Ali Babar, Professor of Software Engineering
How to Outsource Without Losing Knowledge
Knowledge sharing begins with a discussion and, once the decision has been made to contract with an offshore team, the following best practices will show you how to scale an onsite development team with “an extra arm” so to speak.
Draft a Detailed Contract
Knowledge sharing management in offshore software development begins with a detailed list of product requirements and a solid contract. This will codify all of the explicit knowledge that is to be shared, how it is to be shared, with whom it is shared, and when it is to be shared.
Good practices will include meetings, accurate documentation, and systems, not to mention emails and phone calls. Further, a contract should outline contact persons and specifically to whom knowledge transfer will be provided as parts of the project are completed.
Agile Works on Both Sides
In terms of what is the most effective way to scale a development team without losing knowledge, using Agile, and Scrum framework particularly may be the answer.
Each deliverable (or a portion of the software) will be the focus of the entire team. Once it is completed, then, of course, it is tested, evaluated, and reviewed by that team. At this point, transfer of knowledge is made to you/your team who will undergo the same process. Issues, concerns, and potential revisions can then be discussed between the two teams.
The beauty of Agile methodologies is that it divides the project into manageable chunks. When both offshore and onsite teams work collaboratively on smaller chunks, one at a time, there is transparency and agreement all along the way. This results in onsite team “buy-in” all along the way – end success is then guaranteed.
Embrace Shared Storage and Project Management Technology
A good cloud-based storage management technology must be in place. And you need to be certain that the outsource team has a disaster recovery plan. This will ensure that data is not lost. Storage management should also be flexible, so that it can be shared between the outsource and onsite teams and on multiple devices. Onsite teams must have easy access throughout the process.
At Romexsoft, to facilitate remote team management and knowledge sharing we use the next tools:
- Atlassian JIRA – robust issue and project tracking software for agile teams. It’s a one stop shop for creating visual Scrum boards, assigning deadlines, executives and breaking projects into sprints. It comes with the robust reporting system that will fill in both you as a client, your onsite team and keep the offshore guys in the loop too.
- Confluence – another great collaboration tool from Atlassian. It’s an advanced content management system designed specifically for software teams. Use it to store and collaborate on all the project documentation, connect it with JIRA to receive automatic reports and updates and integrate shared team calendars if needed.
- Bitbucket – a web based app for storing source files, sharing them with permission and fostering effective collaboration between different teams.
- GitHub is another popular service to store, share and collaborate on source code files. It syncs seamlessly with popular automated testing tools, meaning that one team can write the code and it could be cross-checked simultaneously by another one.
Create a List of The Main Artifacts of Knowledge Sharing
Now that you have outlined the system of communication, you should specify the documents that must be shared with the offshore team. Typically, those could be grouped the following way:
- Information Architecture (IA) – wireframes, mockups, and screenshots of all user interfaces.
- Design Specifications (DS) – a detailed outline of your design solution. Here you can never go too descriptive.
Product Description (PD) – a functional list of product requirements and product business logics.
Development Handbook – this document may be presented by your offshore team or outlined as part of the functional list of product requirements. It should include information on the key technologies to be used, architecture, quality conformance rules, tools, software development lifecycle (SDLC), and configurations to be used.
When creating and sharing the specified documents with the engineering team, be mindful of the following points:
Account For The Extra Timing and Costs. You may need to hire a technical writer to comprise all of the documents and conduct a series of meetings with your on-site team. Maintaining a lot of documentation can be a hassle, yet failing to have it in the first place can result in much more costly misunderstandings.
Mind The Possible Knowledge Gap. Your offshore team might not yet be familiar with the architecture or code standards you are using. Early in the project, you should invest more time into re-checking the work and identifying whether there is a gap or not. That could be done through peer-to-peer code review (when an on-site team member reviews offshore team code and gives constructive feedback), asking the offshore team to review their code in accordance with the development handbook (code review practices) and comment on the mismatches and conducting joint training sessions with both teams.
Facilitate Process Knowing
Knowledge management assumes creating such outsourcing model, where each team member (onsite and offshore) can clearly answer the following questions:
- Who is responsible for this? Each person understands their role in the company.
- How are things done? They understand their assigned activities and tasks and what their teammates are up to.
- When should this be delivered? Everyone is well-aware of the key milestones and deadlines.
- What are we working on? The team member must understand the work products and their assignments.
To achieve straight answers for these questions, you will need to foster effective communication and collaboration between the two teams. The means for this are shown in the chart below:
Image Source: M. Ali Babar, Professor of Software Engineering
This strategy works both ways. First, you fill in the outsourcing team into the project. Next, experienced outsourced developers will keep an onsite development team up to date and will provide all of the explanation, code commenting, and training that your team needs to become proficient users. And they will provide continued communication support after final delivery. When this happens, the onsite team develops its own expertise.
Communication Trumps Everything
Nothing is more important than communication. And if you want the best advice on how to improve knowledge sharing in offshore outsourcing, it would be this.
Whether you are an executive, IT manager, or other named project leader, you were the one who began this search for software development, and you are the one who must stay apprised of all that is progressing.
You have set the goals (what the software must do). Even though you may not understand coding, scaling agile methods, and all of the details of software development, you do know the outcome you want.
Once you have the framework in place that provides the best communication and collaboration between the offsite and onsite teams, you must also get yourself in the loop of communication.
If you have a professional outsource team at work for you, there will be a project manager on that end. And that project manager will be your point of contact. Regular communication on a scheduled basis is a “must-do”. You and the offsite PM should have a pre-scheduled calendar of meetings that are adhered to. And there must be a method by which contact can be made outside of that calendar when issues arise. Using video chats such as Skype work well. And such technology allows for other “players” to be brought into those meetings on an “as-needs” basis.
Successful Knowledge Sharing = Outcome Success
If you are hesitating about outsourcing a development project, understand that your concerns are real. There are stories of failure out there. But, as with any project, whether in-house or not, failure occurs when the participants are not communicating effectively.
If you plan in advance by establishing a strong framework for knowledge sharing, you will overcome the obstacles that are causing you to hesitate. And, once you find an experienced outsourcing firm that has strategies in place for the knowledge sharing you want and need, you’ll have a successful outcome.
Romexsoft has been in the business of software development for years. It has expert teams of dedicated and enthusiastic software engineers and a history of successful projects. You can become one of our success stories too. Give us a call.