I totally get this mentality.
But outsourcing doesn’t have to be difficult or stressful. Its aim is to facilitate the successful product development.
However, if you follow the steps that I’ve written in this article, outsourcing can save immense hours and resources that you can reinvest into your business.
I have found, in my experience as a client and CEO of the outsourcing web development company, that there are two main factors that make outsourcing a success: transparency and care.
Everything else is secondary.
If your outsourcing partner is not aware of the importance of these factors, you inevitably face some serious problems. It’s almost like a personal relationship: it will be short and strained if you can’t trust your partner and don’t feel that he/she cares about you.
You should understand who and what is doing for your project, when you will get results, what difficulties appeared during the process and how they were dealt with, how much of the budget has been spent, what expenses are coming, etc.
According to the white paper released by SourcingFocus.com,
You shouldn’t be the only one to initiate communication with your outsourcing vendor, or be solely responsible for creating appointments, meetings, and checks – you don’t need to hammer your head with their intermediate tasks. This distracts you from other important tasks and wastes your time.
Such an attitude from an outsourcing company can lead to anxiety and distrust.
The outsourcing company should build their processes so that you are always up to date on what is happening on the project and warned in advance of all the difficulties. One of the main aims of IT outsourcing is to give you an opportunity to concentrate on your business tasks, while a team of technical specialists is working on your product.
Based on my experience, I have compiled a list of best practices on how to successfully outsource product development. Here are the rules for hitting your stride at outsourcing and protecting your startup from the most common mistakes.
Here are the rules for hitting your stride at outsourcing and protecting your startup from the most common mistakes.
What to Examine Before the Cooperation Starts
1. Comprehensive services
Find out what services the company provides. Full stack companies usually put business analysis, design, development, quality assurance, project management and support at your disposal.
If it’s not a full stack company it may only deliver design or code, so you will need to find more vendors to complete your product.
2. Whether the company is familiar with outsourcing or not
We recommend you opt for companies that specialize in outsourcing, i.e. the one that aims for the oversea market.
Outsourced product development companies build all their business processes in consideration of the offshore location of the client.
This means that company already knows how to work in various time zones, understands cultural differences and has the necessary skill and experience to make successful communications, otherwise it can be difficult to receive and maintain seamless cooperation.
Reach out to other clients of the outsourcing company and learn all the pros and cons of their collaborations with the agency.
You may also find out if the company has already done projects for clients from your country. In such case, you can get first-hand recommendations by contacting these companies directly. You can collate better ideas of the success or otherwise from their experience.
4. Language barrier
In case you are thinking about hiring an offshore team, this advice is vital. Even though knowing English is a sine qua non for all IT specialists working in outsourcing companies, you’d better check twice.
You can form an opinion of how well your future team knows the language, understands you and your demands at the negotiation stage. Insist on personal communication or online meetings.
If you plan to work with a company based offshore, an unwillingness on their part to communicate directly can indicate language issues that can cause huge misunderstandings and lead to future disappointment.
5. The talents you need
Ask whether the company have the experienced specialists you need in your team or you will have to find off-site experts. Explore the skills and experience of possible squad members.
What to Take Care of at the Beginning of the Cooperation
1. Sign a confidentiality agreement to mitigate security risks
When you involve anyone in your business, even if it is a new employee, your confidentiality risks increase. Outsourcing is no exception. Some entrepreneurs or enterprises don’t want to share proprietary data about their software or technology, that’s why they are afraid to use outsourcing technical teams.
The easiest and the most common way to mitigate such risks is to sign a confidentiality agreement. Such agreements usually set out the terms and conditions under which information is to be kept confidential. The terms usually include any work or discussions relating to the product, it’s future versions or development process.
A confidentiality agreement also provides the consequences of disclosing specified confidential information to a third party.
A signed agreement protects the information you disclose during negotiations, meetings or the development process, and it should guarantee that all of your proprietary data will remain confidential.
2. Risk management
Almost every outsourcing company claim they know how to manage risks – but only those who really put customer interests first have actual risk-mitigation mechanisms.
While choosing your future partner, think about the problems you might face during the development of your product and ask the outsourcing vendor if they have faced similar problems before and how they managed them.
Don’t forget to ask if they conduct a risk analysis for every project to identify and manage risks.
3. Set up communication channels
Reputable companies usually have their own standards, defining the communication channels they use. The most common communication means are emails, instant messengers, phone and video calls. Your outsourcing team should know the communication options and which work best for you, whether it’s your own Slack channel or maybe you prefer weekly phone calls.
As for MindK, we prefer to add clients to project management tools we use every day, such as Jira and Trello, so that our clients can see the progress and status of each task. For online meetings and conferences, we use Skype or Uberconference.
Outsourcing companies that care about their customers and in maintaining their trust, will always keep clients up to date on project progress and related issues.
For our projects, we’ve adopted the following approach: before beginning the project we work out and ratify a сommunication plan with our client which identifies the most convenient means of communication for both sides, who is responsible for different tasks and stages of the project, and how often we need to hold meetings and provide demos.
In this way, our clients have a clear understanding of what to expect from us and when, so they can plan their work easily and efficiently.
4. Assign internal project manager for your project
This person is often called Product Owner or Decision Maker. He will coordinate all the processes inside your company related to the outsourced project.
I advise that you assign one Product Owner from your side for the project. As a business owner, you already have many responsibilities and these may distract you from the development process. All these distractions will affect development time and the final quality of your product.
5. Ensure you are acquainted with the pricing
Choose an engagement model that best fits your project. We’ve already covered the models’ pros and cons in the article about mobile app development pricing, so you can read it to get the basic information.
This step is vital because different companies have different notions about fixed and non-fixed price models. Ask if these models work in the agency you’ve chosen.
Find out what additional expenses may occur (e.g. hosting) and whether they are covered by the outsourcing company or not.
6. Trust your outsourcing partner
The team is here to share their technical experience and expertise. Take advantage of it.
This is where transparency and trust come first. If you hire professionals, they will need some freedom to do things the way they are used to doing them. If you try to control every step, they will be unable to operate at maximum efficiency which may result in a lower quality product. And if you did make the right choice, your partner will keep you informed of what is happening at every stage of your product development.
Any reputable outsourcing company understands that your product is like your child and they will share your aim of raising it into an admirable adult.
Things to Do After the Work is Started
1. Don’t think you can outsource your brain, document your requirements thoroughly
Make sure that all your requirements are taken into account and documented thoroughly. High-quality documentation reduces labor intensity and the duration of your project’s development.
Precise and accurately formulated requirements allow developers to better assess the scope of work and can save your budget. It reduces the scope of questions about the system and eases the work of the technical team.
2. Get to know your team
It doesn’t matter if you are working with an in-house or an outsourcing team, for the whole period of your partnership you are one team. Set up a meeting to get to know the individuals who will work on your project.
Apart from online meetings, it will be good to meet with all team members in person or at the very least the project manager or business analyst. Personal meetings are required for long-term projects and dealing with complicated issues.
Since our company is focused on working with foreign customers, we frequently visit our customers’ offices in the USA, Norway and other countries. In the same way, we invite clients to our R&D office to personally meet the development team. Otherwise, we may set up meetings on the neutral ground wherever convenient for the customer.
Our experience has repeatedly demonstrated that such meetings are most effective and can’t be replaced by Skype calls or e-mails.
3. Follow the development process of your product
If you choose to completely subtract yourself from the process, it is highly probable you’ll regret it because you might get a final product that does not meet your expectations.
Participation in the process and control of the products quality at different stages increases the chances for success, helps you push your project forward and speeds up the overall development process.
Your participation also gives you a clear picture of the product state and further steps required. Understanding the development process helps you obtain skills needed in the future.
As you move along the development stages, don’t forget to be involved and deliver feedback on what’s been accomplished.
Always ask questions whenever you don’t understand something. That’s a golden rule to avoid misunderstanding between you and the outsourcing team. This rule works the same for the agency: if they want to get to the core of your business and build a really valuable product, they should ask LOTS of questions.
4. Learn to focus on what is critical
Do not overload an outsourcing team with your internal problems and try not to transfer your bureaucracy into their work.
Together with the development team determine the most important features which will be included in the Minimum Viable Product (MVP) or the first version of your application. Make sure the agency provides all estimations of each included feature and task.
5. Consider unexpected costs
It is no secret that the IT market changes very rapidly and technologies constantly improve. Things that were innovative not so long ago can start losing ground to newer systems. Companies have to adapt or they will be simply crowded out.
The same happens with applications created for any swiftly changing market. As new requirements appear, be ready to set aside some additional budget to keep your product up-to-date.
These changes lead to extra tasks and extra tasks equal extra expenses. Even if you agreed on a fixed fee, the outsourcing company will of course charge for work that wasn’t outlined in the scope for fixed price.
6. Prevent problems before they arise
In any working process, there are always conflicts and disputes that need to be extinguished. Dispute management is one of the processes required for effective interaction management. Although agencies know what to do with angry clients, here is what you need to restrict problems:
- сheck whether your project manager keeps you informed about what is happening at every stage of your product development;
- make sure the agency subjects your product to constant QA processes and whether code reviews are conducted regularly;
- be aware that if the agency actually makes some kind of mistake, they should hold up their hands, explain the reasons and suggest the recovery plan — demand all these things!
At the End of the Cooperation
Finishing product development doesn’t always equal ending of collaboration. You should be aware of these things:
- make sure you keep the agency close to hand — you may need outsourced product development services in the future;
- check whether the code you’ve been given is well-documented and double-check whether it has been handed over to your internal team;
- ask about any maintenance and support services for your product.
Is the Game Worth the Candle?
While you still hesitate if you should outsource product development, dozens of worldwide known startups and corporations became successful through outsourcing product development. Some of these companies altered to enterprise level, others built a really strong brand.
Over the last decade, Skype became a verb. But did you know that Skype reached out for Estonian developers Ahti Heinla, Priit Kasesalu, and Jaan Tallinn to help build their product?
Skype outsourced at the very first stage of their product development but that was enough to start their ascension.
At the beginning, Opera’s founders could not predict whether their startup would be successful. They decided to lower the cost of this risky project and outsourced software product development to foreign countries. This decision resulted in Opera’s public release and further success.
GitHub’s co-founder Chris Wanstrath met their future Git consultant Scott Chacon at a Ruby conference in San Francisco. After a conversation, it became clear that Chacon understood the idea of Git very well. Starting as a consultant, Scott Chacon eventually went on to write the backend of Gist, a sharing feature on GitHub. The company may not have coped with Git without his help.
An example of the above success stories proves that outsourcing your startup product development to offshore companies can bring significant benefits. The steps I’ve shared in this article are exciting possibilities that can help give you the edge while outsourcing your product development.
Did you have an experience of working with outsourcing companies? Was it a failure or success? Why? Feel free to share it in the comments below.