Our 10 tips about how to find and work successfully with your software development outsourcing

partner.

It would seem that nowadays everybody has an app for their business. But how did they develop it?

How much did it cost? Often SME’s or startups do not have the funds for large in-house teams of

developers, testers and designers.

How to make your CFO happy and still get that new and shiny app? This is where outsourcing comes

to the rescue! But now you have to find the right team and work with them successfully.

Finding good and trustworthy partners can be a long and tiresome process, and unfortunate as it is

many outsourced software development projects end as disasters. To help you avoid problems that

can happen during search and working with partners abroad we have created our list of top 10 things

you should take in consideration based on our experience gained from projects we had with partners

who outsourced development to us.

1. What is the goal of your outsourced software development project?

Just the process of hiring a team to outsource to takes a lot of time so it is important that you know

the purpose of your project and are able to convey some information about what you want to

achieve. First things first. Let’s say that you have a small business or a new startup and that business

is growing and that you want to develop a mobile application to reach out to your customers, these

are some of the questions you should ask yourself: 1. How will application help me get more

customers and increase the satisfaction of current ones? 2. Do I have a preferred list of features? 3.

Who are we targeting with the app? 4. Is app going to be cross-platform or native? 5. How should

UI/UX look like? 6. How should the payment work? It would be prudent to do a bit of market

research and feasibility check to understand what are competitors doing or if there is an application

that is trying to solve the same problem you are working on.

This are all hard questions that will take some time to figure out, and sometimes answers just open

additional questions. Don’t worry if you feel puzzled over all the details. Most important thing is that

you know what the is the purpose of your application/project or that you have some general idea

what you want to achieve with it. Ideally, you will be able to find a developer who can not only code

but also give advice about the functions and is able you help you create a roadmap of future versions

of your app.

2. References and Previous work

Do they follow deadlines? Do they sign an NDA? Were you satisfied with code quality and testing?

Were they willing to accept a test job? How do they manage their projects? Have you encountered

any problems while working with them? Were there any conflicts? If yes how did they deal with

them? How does their development process look like?

This were some of the questions you should be asking references after your potential partners have

given you their contacts. If you have received multiple references and if they all give you positive

answers then your potential company might just be a keeper. To be sure you won’t be scammed do a

bit of research about references as well. A simple background check on LinkedIn can help you answer

if the references are honest partner companies or bogus companies. Of course, there are no

guarantees in life but doing your homework can help you a lot and prevent a plenty of headaches,

stress and loss of money.

Your potential partner should be able to showcase their previous projects. What applications have

they developed? Do they have examples of e-commerce and website development? The more

projects that are similar to yours the better. Take a deep look in the projects. Do you like what you

see? Some of our clients even formed small teams who were tasked with finding and evaluating

software development partners. Those teams represented their company during evaluation and

negotiation and have produced a plan for RFI or request for information.

You are probably pressed by short deadlines yourself or in a hurry; but trust us, you don’t want to

skip this step and rush into development before making sure you have chosen the best possible

partner. Great companies always have a portfolio to showcase.

3. Don’t have selection based only on price

Costs are one of the biggest reasons why companies choose to outsource, however, if you are not

looking into a one-time short-term project then your decision should not be based only on the price.

There are companies and individuals who love to “race to the bottom” just to get a client and most

likely you will run into them while you search for partners but beware – usually if the price is way too

low so is the quality of the end product.

You expect bug-free code and highly competent developers (as you should), so invest in the time to

find partners that have the necessary skills and are professional. Remember what they say “we are

not rich enough to buy cheap things”, the same goes for hiring outsourcing software development

teams. Use information from quotes and RFI as a starting point in your negotiations and try to find

win-win scenarios for both parties.

4. Bit of cultural hacking

We agree that diversity is a beautiful thing that makes our world better place and teams based in

another part of the world will most likely have different norms and behaviors in culture than ones

you are used to. This can impact you and your work in numerous ways and no matter how good the

company you work with you can expect that sooner or later you will experience some form of

misunderstanding.

Cultural differences may be reflected in differences in communications, work ethics and methods

and approaches to problem-solving among virtual teams. A collaborative culture that includes trust

and openness between outsourcing partners is important for outsourcing success. Language

differences among virtual teams in terms of accents, style and jargon can impact work so it is

important to ensure that at least your project manager with whom you are in communication speaks

English on a sufficient level. English is almost a lingua franca of outsourced software development

and you certainly do not want to be lost in translation with your team (Gurung & Prater, 2006, p.11).

Design choices and solutions can also be under the influence of culture. Solutions and systems for

Chinese, South Korean, Japanese or other markets in Asia are really different from those in America

or Europe. It is important that you understand the market for which you are designing your

application and/or website and your developers need be able to showcase you previous UI/UX design

work. You need to be sure that besides necessary technical skills your company of choice also

understands designs and is able to make changes.

So how to hack the culture?

Well, it will take time for sure. The longer you work with your overseas partners the more you will

understand. You can try using of some the models that study differences between cultures. We invite

you to explore GLOBE project and work of Geert Hofstede a Dutch scientist that created a model that

differentiates cultures based on cultural dimensions. After comparing culture of your country of

origin to culture of your software developers you might gain some useful insights on how to work

with your partners. You might not get all the answers straight away but it will for sure increase your

cultural awareness and it is a good starting point. Remember, understanding other culture will take

quite some time and patience and your partners should strive to understand you better as well.

What about Vietnamese culture?

As mentioned in Agile Vietnam, Vietnamese people usually need to build personal trust with others

outside of the office in order to increase their teamwork and collaboration. In the virtual working

environment, the key is to build a relationship with your project team. Influenced by the hierarchical

structure in Confucianism, it is often that people in higher positions are treated with high regards and

respect. This is also reflected in working with partners and at first, Vietnamese are going to be shy

and you might have difficulties in making them open up to you because they might see you as in

“higher position”.

What you can do to go around this is to ask open questions during virtual meetings. Example: “Are

we going to reach the milestone on time?” Most likely the answer will just be “Yes” with no

additional information. Try something like this: “What do you think about project timeline and this

milestone in particular?” In this way, you show that you trust your team’s judgement and your team

will be more confident to reach out if something is not going well.

According to Tech in Asia mutual respect is essential when communicating with Vietnamese people

and they also mention how relationship building is important. Vietnam is conflict avoid culture and

this is why sometimes you will have to “dig deeper” to get a straightforward answer. To make them

warm up to you and relax you can start your meetings with some common topics such as weather,

food, music, holidays, movies and travelling.

Generally speaking, Vietnamese developers are good listeners, friendly, perform well in a team and

they learn fast new technologies and adapt to them. They might not express directly it but they will

also be curious about learning more about you. If you are still curious, check out Vietnam culture

portal for more information.

5. Communication & Availability

Time differences affect software development depending on the country and location. Time

differences have both advantages and disadvantages. From one point of view it may add more

working hours but on the other hand, it may add problems with coordinating meetings. Imagine

having Scrum standup meeting at 2 AM. Quite often you will ask a question and receive a reply next

day due to mismatch of working hours. This is why it is important to know how the communication

flow will look like.

It is important that you and your lead developer hear and see each other and our best advice is that

both parties show a certain level of flexibility when arranging meetings and have them booked in

advance. In this way, a relationship is more personalized and there is less stress for both side since

delays are minimized. One trick of the trade is including a time buffer in estimated project timelines

to cope with delays caused with working in different time zones.

Don’t let differences in time-zones deter you from hiring a specific team. If a project is longer most

often you don’t really need to hear with your developers on daily basis. For you to have successful

communication it is important that everybody sticks to the communication flow and that you have a

protocol for emergency situations – like server malfunction etc. Also, good communicators will take

their time to explain you anything you do not understand so check how much time they devote to

communicating with you before you hire them.

6. Common vision, innovation and flexibility

All three things from the paragraph subject line sound important, but how do they reflect in working

with software development outsourcing? If you are looking to outsource long-term project

development than the company you are hiring should understand your company’s vision and what

you want to achieve in the long haul as well. It pays in the long run because the market needs change

and your app/website will need to change as well and you’ll be needing partners who are flexible

enough to make modifications on the go.

In regards to flexibility, your developers should also be flexible with project management and

communication tools and not insist on using just one solution. There are many popular tools used by

companies and developers and often you and your developers will not use the same. To make work

smoother a certain level of flexibility is to be expected. We have seen a rising trend of using tools

such as Asana, Skype, Hangout, Slack and Trello.

Your potential partners should be innovative and keep with the latest trends in software

development industry, in other words, they need to be able to show their technical competency for

technologies and tools that will be used to make the project happen.

7. Contract is (not) the king

Don’t worry, it still is but there are some things you should understand when working with

outsourcing software development and that the contract is not the only king and if you rely solely on

a contract you will be exposed to some risks. The best way to minimize your risks is by having

payment models where you pay after the milestone has been accomplished and the code was

delivered to you.

If your developers ask for whole payment before they deliver a single line of code it should make you

at least feel suspicious about their motives. With this being said you can expect that you will be

asked to pay a small percentage of the project beforehand as a gesture of goodwill. After all,

scamming works both ways and there have been situations where developers were targets. This

happens more to individual freelancers but it is also a raising concern among companies as well.

Keeping your milestones short and making sure that code review is done correctly can be another

way of protecting yourself. Does your team offer you post launch maintenance? For example, in

Vmodev we offer minimum three months of free maintenance after product launch as a quality

guarantee.

8. Clear milestones and scope of work

Once you finally have the company you would like to work with the next logical step is to discuss

project milestones. Milestones are important because they tell you what is happening with your

project and enable you to track the activities of your developers. For your developers to have clarity

of mind and to avoid errors and assumptions the best thing is to provide detailed project description

or make sure that the same developers are hired from beginning to the end of the project.

Quite often clients do not have a full list of specifications done and are still in discovery phase; if this

is the case then it this also another opportunity to review if you have chosen the right developers.

Good developers will actively listen, ask questions and give suggestions about the project. It is crucial

that both sides are on the same page before the development starts and that all aspects of the

project are defined.

Software development projects often take months to complete. The best way to proceed is to align

calendars and milestones. Also, important thing is to have an agreement about the timeline of

communication and how are you going to receive updates about the project.

9. Build Relationship

Often companies check up on their developers, but what is also important is to show that you believe

in their capacity to deliver. Trust is the foundation of any relationship and if you have trusted your

outsourcing development partner enough to sign a contract than that trust should be visible during

all development phases.

Having friendly atmosphere and good relationship outside working hours can help boost productivity

and trust. In the beginning, this may seem hard or even waste of time because you can be a

thousand kilometers away but in the long run, this pays off. It is small things that can make a

difference such as sending birthday cards or greetings for big national holidays or simply taking a

minute or two to get to know people with whom you are working with.

As mentioned before Vietnamese people are often shy and reluctant to express their opinions but if

you show that you care and treat them as equal you will soon practically become like family. Don’t

forget, you hired them because they seemed like the best solution for your project and if you respect

their opinion on the matter that will for sure build trust and strengthen your relationship. Show

transparency and honesty and expect the same in return and if things stop going in right direction try

not demoralize them but use facts to resolve the challenge and move things forward.

10. Visiting the team

Visiting the team you outsource to can be a great way to jump start the project. Spending few days

and working with the team can prove to be invaluable in the future stages of development because it

helps to build trust and human to human relationships and you can also take charge and steer the

project is something is not going well. Another great tip is that you invite a representative from the

team to work in your office for a few days and that will for sure help them understand you and the

way your company works even better.

If you have enough resources, on-site visit during selection process can also be beneficial for several

reasons:

- You get to see the team first hand and see if they really understood all aspects of the project

- Learn from being in a different organizational culture and working environment

- Explore other opportunities on market that are not related directly to your project

- You have an opportunity to do in-depth due diligence

In Vmodev our partners are always welcome to join us and spend some time with us. When they are

here we provide them with a separate room for privacy where they can work or relax a bit.

Additional hidden benefit from visiting us is the great coffee place on the ground floor that serves

traditional Vietnamese coffee so delicious that will satisfy even the biggest coffee lovers.

And there you go, this were our 10 steps on how to find and work successfully with your outsourced

development partners. We hope that you have found them useful! What could we possibly add to

the list? Let us your thoughts on the matter.

Additional Resources:

Gurung, A. and Prater, E., 2006: “A research framework for the impact of cultural differences on IT

outsourcing.” Journal of Global Information Technology Management, 9(1), pp.24-43