Software Outsourcing Guide Book (2020)
by Steve Pham
This is our complete guide book for companies that are developing a strategy toward software outsourcing.
The best part?
Many companies have APPLIED WHAT WE SHARE AND SUCCEEDED.
If you are new to software outsourcing, you will love our guide book.
Let’s dive right in! 1. What is software outsourcing? And why outsourcing software development?
In a nutshell, like any other outsourcing service, software outsourcing is hiring 3rd party service providers to handle one of your internal operations, in this case, your software engineering team. The outsourcing partner can help you:
- Develop anew
- Maintain
- Upgrade
- Migrate
- Etc.
There can be multiple advantages of outsourcing software development, but the most common are:
- Cost-saving when you can make use of income gaps between countries/regions and pay outsourcing developers less compared to local developers with the same skill set
- Time-saving by quickly making use of your partner’s resources instead of building your team and going through the full recruitment process
- Knowledge sharing because your outsourcing partner should be an expert in the softwaredevelopment process, and if they have experience with a similar project, that would be a huge plus
- Overseas resource abundance, especially in Vietnam, India, etc.
Depending on your needs, outsourcing can help you cut costs, save time, upgrade your knowledge base, etc. 2. A step by step guide to starting your first outsourcing project
There are a lot of questions to be answered before you can start your first outsourcing project:
Should I outsource my project?
How to start my software outsourcing project?
How to find a software engineering team that matches my project?
Important note when doing software outsourcing?
A step by step guide is just what you need. Step 1: Identify your need and create a draft software development plan
There are thousands of different outsourcing companies out there globally, and each of them offers a unique set of skills, experience, abilities. To avoid a lengthy screening process, and find a partner that best matches your needs, it is essential to know what you need first.
- What are the project details and requirements?
- How do we plan to start the project?
- How soon can I start my project, and what is the expected timeline?
- What is the expected budget that I can allocate to this project?
To answer these questions, you need to prepare each of the following documents:
Essential:
- A short description of your project, describing your idea or concepts
- A specification document, describing the project function, expected architecture, its relationship with operators, or another system if necessary (it is best if you can produce a Software Requirement Specification)
- An expected timeline, identifying your expected start/end dates, and detailed milestones if necessary.
- An expected budget range or the maximum budget you can invest in this project
Additionally, depending on your project:
5. Do we need more outsourcing developers to add to our current team, or we want someone to handle all the work and just deliver the product to us?
6. What technology (coding language/platform) will this system use?
7. What management methodology will we use to manage the project?
8. Are there any laws or special requirements we have to fulfill when building the project? (Government laws, company policies, etc.)
The more details you have, the better chance you can find a suitable partner faster. An example of your discussion
***Note:
– When you agree on each of these terms, remember that your team knowledge and experience are limited. Try to keep your mind open for change when you go down the process. (E.g.: you may find out your expected timeline is not suitable to build a system the size you planned)
– A software outsourcing partner is like a tailor that will make your suit. The better you can describe it, the better the suit can be. Step 2: Narrow your scope before reaching out by knowing where, what, and who?
After step 1, your team should have an excellent base to start looking for partners, but where do you look? What are you seeking for? Who should you ask?
Where can I find local providers that match my criteria? If a foreign provider might suit my plan better, which countries should be in your consideration list?
For example:
If your business is in Singapore, it is usually tough and expensive to work with 100%-local providers. And due to various factors like time zone, culture, regulations, it will be best to consider your outsourcing partner located in Vietnam, India, Indonesia, Malaysia, Thailand.
Do your research and learn more about your options. You find, classify minor/significant problemsthat potentially increase the risk or the potential of each option. Discuss with your team and remove one that cannot process further.
For example:
Keep analyzing and researching, and you will find out:
- Vietnam is usually not the cheapest, but Vietnamese teams, on average, can deliver a medium to excellent level of deliverables. Singapore companies have been working with Vietnam software outsourcing companies for years without significant problems with working culture. However, their English is not that good. -> next consideration.
- India usually has the best offer in price, but overall performance is not stable at all. Many companies are working fine with India partners, while many others have failed and wasted a lot of resources. -> next consideration.
- Etc.
By the end, your team decides to proceed with Vietnam, India, and Malaysia. There are many countries in the Southeast Asia region that are suitable for Singapore companies to find outsourcing partners (image source: e27.com)
By now, your team has made use of most of your subjective experience and knowledge to narrow down the list. It’s time for some fresh ideas from the outside.
Depending on your network and your situation, there are multiple sources for new insights:
- Software outsourcing experts are sure to be a useful insights source if you know one. Someone with experience working with many different outsourcing teams from various regions can give you valuable practical advice and sometimes contacts.
- Your friends and networks have their network and experience that can provide a new view of your project, and they can sometimes help you connect with an outsourcing expert.
- Public forums and social media are some of the best sources too. You can find similar questions or post one yourself, asking for your network or a group for their experience and advice on your plan can be the fastest way to gather outside view on your options.
List down all the pros and cons points for each option, and rank them by priority.
Example:
Your final list of options should look like this:List down all the pros and cons of each option, you want it to be as detail as possible
***Note:
– Try to keep an open mind and confirm others’ feedback before deciding. People are giving you advice based on their experience, views, and biases – it’s your job to make the choice.
– Information sharing can be sensitive. Be clear of what you can share. Step 3: Call out and start collecting offers from software outsourcing providers
Based on the narrowed list of potential outsourcing locations, it is time for you to reach out and collect contacts. There are many ways to do this. Here are a few suggestions of what you should do:
- Get referrals
- Google Search will help you find some interesting contacts, and as everyone is doing digital advertising, you should be able to find some relevant ads too.
- Shout out and let people know so they can help. A typical way to do this is by posting on social media like Linkedin or Facebook and ask for all your networks to help.
- Get listed means go public about your need and record it everywhere so salespeople can find you, publish on your website, your company fan pages.
Collect as many contacts as you can, and start the discussion with each of them to collect more detail. Compare each offer with your project requirement, discuss with your team to filter out and keep only reasonable offers. It depends on your project but there usually a few essential things to look at in each offer:
- Price is undoubtedly one of the essential factors. Just remember you are not buying a jean or laptop; financial cost is not the only thing you are considering. It is best to classify offers by price range and pick 1 or 2 offers that are best between the classified range.
- Timeline is one thing critical to look at, as little as one month sooner can be a game-changer for a new product to get ahead of competitors.
- System architecture shows how your outsourcing partner approaches your project; it shows their understanding and ability to complete the project.
- The management process has to match your team and guarantee a suitable level of control over the progress.
- Security can’t just depend on the matter of trust. If your project is related to payment or finances, you have to pay a closer look at security to avoid a breach.
- Unique offers can be exceptional additional support that your partners can offer. For example, Inspius provides help to all local Singapore customers to apply for EDG Grant that covers up to 90% project cost.
It depends on the situation and how you break your project down to a smaller project or keeping it as a whole, we suggest you filter and keep 3-5 options before making the final decision. Linkedin is a great place to publish and get some connection to software outsourcing provider Step 4: Decide, keep track, prepare backup plans and repeat
Remember, every decision you made can turn out to be the wrong one, no matter how hard you try to make the right one. So it is best to prepare yourself a process to be able to identify problems as soon as possible, and ready to take action on it:The circle of making your decision, keep track, and prepare backup plans
Based on our experience, there is no fixed template for making your decision. Each project requires a different decision-making process that heavily depends on your project’s stakeholders, purpose, budget, timeline, size, etc.
However, we strongly recommend you stick to your original plan of what you are seeking. There are some specific errors that you should avoid:
- “The cheapest is the best” is a sweet trap that many businesses that new to outsourcing software development fell for. Always calculate your cost with risks and opportunity included. The lowest price offer can be the riskiest one.
- “This team is referred to, so I trust they are good” is a two side blade of trust. Some businesses can quickly make a decision just based on trust and soon after regret it. There is no guarantee that a solution that works with others will also work with your situation.
- “They have so many big clients; they must be good” is a fatal bias. It sometimes happens that companies with big clients devote most of their top quality resources to big clients and end up providing low-quality services to small clients.
- “All the un-match offers are trash” is just wrong, offers can sometimes contain ideas and solutions that your team hasn’t thought of. It is good to spend some time going through each offer; you may find some exciting ideas that save a lot of resources.
It is critical to keep track of and analyze your new partner‘s actual ability, but it is also vital to continually keep track of your current partner(s).
The purpose is to identify potential problems before any significant consequences happen and correct those problems or prepare suitable alternatives accordingly.
What should you keep track of?
- Deadlines: Including your partner’s ability to set up and catch up. Did they estimate correctly? Can they meet the deadlines, or they just commit based on our demand and miss those deadlines later?
- Quality: How each of the released code functions? What is the bug rate? If you have experience with coding, you can try to determine if the coding is neat or just an oversized piece of code?
- Transparency: Can you keep track of the project’s progress? Can you actively join the development discussion of all stages if required? Did the report match when you double-check randomly?
- Stability and scalability: Are key personnel of the project stable or changed continuously? Is there any delay or long wait when you need to scale up the team? Team members changed a lot or are stable through time?
Tracking all these factors will help you maintain a stable development process, identify potential errors, and act on them early, as well as give yourself time to prepare alternatives if needed. A Platform like Trello can easily track progress and create report for bug rate or deadline follow up
Well, when keeping track of and maintaining a good workflow with your chosen partner should be your top priority, it’s smart to prepare yourself with alternative options too. There are a few reasons to plan different backup options:
- Unexpected incidents on your partner can backfire and affect your business as you usually do not have any control over. Having backup plans can help you gain control faster if such an incident happens.
- Your business growth can require the development team growth with it, but your partners might not be able to keep up with your pace and slow you down.
- There can be better options out there. While your current team is good, there can always be a better provider that you can not know about if you do not actively look out.
- Security requirements can sometimes require different teams to work on different modules of a project, and you do not want to delay your development because one of the team has problems, and other groups have to wait.
You can see that having a backup partners list will reduce your dependence or single or a few partners, and significantly improve your flexibility as your business grows. Keeping multiple teams running is a great strategy if you have a strong financial base
Below are a few strategies that depend on your resource and situation, you can apply one or all of them to keep your backup partners list fresh:
- Keep yourself searchable for sales: every company has its own sales team that is actively looking for a business like you to introduce their product. Publishing information about your needs online can be an effortless way to connect with service providers; they will actively find you for an introduction that you might need later.
- Scheduled researching means actively planning for searching and doing research once a month or quarter to update your list of contact with new names and remove some outdated ones.
- The list of qualified vendors is something big corporations usually have. You identify the qualification that you will need from your outsourcing team, then regularly check and qualify suitable contacts to the list for rainy days.
- Using a small project to maintain a close connection with sub-teams is an excellent strategy that experienced business owners use. Aside from 1 to 2 main partners that you can rely on, keeping a daily operation with a dozen smaller sub-teams can significantly improve the speed as well as minimize the risk you have to take when things change.
***Note:
The backup plan’s aim is just to minimize the risk for your product development; keeping things stable is the key to a long-lasting business. So keep in mind:
– Try your best to pick the best-suited partner each time you make a decision.
– If you made a wrong choice, at least learn how to make a better choice next time by going back and updating what you need from a new partner.
– Backup plans are just for a rainy day. Maintaining a stable business relationship with your long term partner should be your top priority instead. 3. Software outsourcing FAQs (Singapore focused)
In this section, we will point out some questions that companies usually have to find software outsourcing partners. We specifically share questions that usually Singapore businesses ask because we have been working with Singapore clients for years and understand them best.
- Which country provides the best software outsourcing service?
– First, we wouldn’t say a country is best at outsourcing; each country has its own workforce’s unique culture and business style. If you do not know which country to look at first, just do some research and stick to the mainstream choice that other companies around you have chosen.
*E.g. Singapore’s located company usually finds software engineering teams in Vietnam, India, Thailand, Malaysia, Indonesia. - Which part of my software development process should I outsource?
– It depends on your need and situation; you can either outsource everything or just a part of your process. How much control do you want to have over the progress? Do you have the resource and knowledge to have that kind of management?
*E.g. Our company Inspius is specialized in helping clients in an almost complete software development circle. You mostly have to work with our project manager to handle your request and receive updates and the final source code later. This is best suitable if you have a small team and do not want to spend too much effort to monitor the outsourcing team. - I am a small startup, so I would like to keep everything in-house. Outsourcing service sounds expensive and only for a big corporation. Is it suitable for a startup?
– Indeed, big corporations usually have outsourcing teams in other countries, but they also have a big local team that they heavily invest in. If you keep things in-house, you will have to fight with these corporations with much more resource to acquire local talent. In that case, maintaining an in-house team can be way more costly than finding yourself an outsourcing team in another city or country.
*E.g. Singapore startups in recent years have been struggling to keep local talents working for them as big corporations like Google, SEA, Facebook, etc. with big budgets and good company branding. Many startups find it is way easier and cheaper to outsource their software development to a country like Vietnam, with a big pool or tech talent at a reasonable price. - What makes Vietnam a good destination for Singapore companies to find software outsourcing partners?
– We recommend you go through our article: Why choose software outsourcing in Vietnam (2020) for more detail to understand the pros and cons of software outsourcing in Vietnam.
Vietnam is one of the most popular places that Singapore companies choose to find outsourcing partners 4. About Inspius:
In case you are finding a local Singapore partner that can help you set up an Agile/SCRUMteam, Inspius has more than six years of experience in assisting Singapore startups with a similar plan. With our certified SCRUM masters and effective practices of agile methodology, we are always ready to jump in and help you to realize any projects successfully.
Drop us an inquiry to discuss how we can help.
Source: Free Articles from ArticlesFactory.com
About the author: Steve is a Senior Project Manager at Inspius. He have 5 years of experience working with Singapore startups, to help them build their tech product and software.
No Comment