Our 10 tips about how to find and work successfully with your software development outsourcing partner
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
Share