en flag +1 214 306 68 37

Outsourcing Tips: Main Ingredients of Your Success

Chief Technology Officer, ScienceSoft

Published:
Updated: 
9 min read

Let us have a look at the stages in planning an outsourced project.

Outsourcing tips

Ideally, they will lead to a successfully delivered project. Unfortunately sometimes the results do not match our expectations. So, what can we do to avoid such outcome?

Any project is a multicomponent living organism, so there are many ways to succeed and likewise, lots of ways to fail. Though the topic is well-covered, we would like to share our experience.

Why take our advice?

ScienceSoft has been working in software development outsourcing for over 33 years and during those years we were able to accumulate some considerable expertise and to single out some tips to guide you through an outsourced project.

What are the main ingredients of a successful project?

We believe there are only two: a good provider and properly build communication.

Choosing a provider will be the first, very important step in your project. Nevertheless, communication will stay the main ingredient, because even working with a perfect provider it is highly possible to overlook important notions if they are not communicated properly. This is even more crucial when you think about the project scope.

Generally, you can divide the communication process into two layers – administrative and development – from the very start of your communication with a provider. It is good to have separate people responsible for them.

Answering the question “Is outsourcing for me?”

There is only one answer – Yes.

Any software development project – no matter how big or small, how complicated – can be outsourced, provided it is handled individually.

Outsourcing tips

Let your project’s needs guide you in your future steps

Choose the provider and way of cooperation based on your project requirements. If you are looking for a long-term partner, try to find a supplier that will suit the majority of your projects. Later on, when you have accumulated some experience you will be able to look for another provider to match other types of request you might have.

Important project characteristics:

  • Size of the project.
  • Project requirements in terms of scalability.
  • Your company’s expertise in the technologies you plan to use.
  • Deadlines, release schedule.
  • Your need in support and maintenance.

 

Why outsource? Small or medium-sized company Bigger company
A small or middle-sized project It always makes sense for a small company to outsource as it helps to avoid risks connected with hiring an employee to your office. Another important advantage is that you can reach out to expertise that is otherwise out of your experience range. For a bigger company outsourcing is first of all a way to cut development costs. Though outsourcing a smaller project might not offer much in terms of cost-saving, it is usually viewed as a good way of starting to work with a provider, fine-tuning processes. It is usually easier for a bigger company to start outsourcing as their business practices are easier to transfer
A long-lasting project Longer projects are risky for smaller companies. For example, staff attrition poses a risk for ongoing projects in terms of duration and code quality. Having an outsourcing partner to support you will help to mitigate such risks. Cost reduction is also a major advantage of outsourcing bigger projects as the saving is more significant. Working on a bigger project can be a first step in setting your own offshore development center.

Communication tips for this stage

Now it is internal work, so sit down with your team and analyze the challenges you are facing. Is it big load of projects, necessity to expand to some new technological expertise, something else? This information is crucial to your understanding of the company’s needs.

Choosing and getting to know the supplier

Choosing a provider might be a bit baffling: you are to choose between thousands of providers with very different characteristics.

Outsourcing tips

Step 1. Some of the factors that will help you narrow your search

  • Experience and technologies used.
  • References.
  • Location (including time zone difference).
  • Language and cultural proximity.
  • pricing policy

NB! Never base your choice on rates only. In the long run, it might turn out to be cheaper to work with a more experienced provider with higher rates, but highly efficient teams.

Step 2. Consider the offering for all the most important positions and choose 5-7 complying companies

When you have your short list – … (step 3)

Step 3. It’s time to get to know the companies better. Possible ways:

  • Visit them in their office.
  • Conduct a couple of interviews with developers, ask for code samples.
  • Initiate a small test project. We, for example, offer our customers a free test run.
  • Ask the provider to provide an offer for your project. Examine the way they break up tasks, incorporate Project Management, Quality Assurance. Other important matters are the warranty period, possibility of further support and maintenance.
  • Depending on your agreement practices (including confidentiality requirements) it might make sense to look at a typical contract the provider is using. If your legal department has some requests it is good to know in advance whether the provider is able to comply.

Step 4. The decision

Now that you have all this information, it should be pretty easy to decide which provider will be a good partner for you.

Communication tips for this stage

Try to make your requirements as clear as possible. A wide-spread approach is to prepare an RFI document and ask the providers to fill it in – on early stages it will help you to identify the most relevant providers.

Project planning

So, you have decided to outsource a project and have already chosen a provider. What’s next?

Analysis and design is the most important part of the project. It is the stage when you build the foundations of your product and if it is done properly, your project will be a pleasure to develop and use.

Outsourcing tips

Do develop a technical specification

Get a comprehensive document developed by your in-house BA or do it as a separate project with a supplier. This document will help you organize project development and be your anchor in case of any disputes.

Plan several milestones

If the project lasts a couple of months(or more) it is good to have several milestones, so you can test intermediate versions and direct the project to the correct result at early stages.

Plan a fair amount of time for testing and bug fixing

This one is self-explanatory, isn’t it?

Team, Team, Team

You do take a lot of time to consider a new hire, don’t you? A member of your outsourced project is a part of your team. Make sure the project has a logical team structure and every member is tuned to accord with the rest of the guys.

It does not mean that you should hire only senior developers, it is even often inadvisable. Build a team that is balanced, with a couple of senior developers who will be responsible for their part of the work and more junior team members lead by them; do not forget about QA, etc.

If you are confident in your provider, allow them to build a team for you. They know the strong and weak sides of their employees, and so they will be able to use those characteristics to your advantage.

Now, when almost everything is ready for the project start, there is an important question to ask yourself is:

Do I want to be involved in the development process closely?

From now on there are two ways to go:

Fixed Budget/Price. If you have a clear list of requirements and no time on your hands, it might be a good idea to let the supplier handle the project in its entirety. This way you will get the expected result with minimum involvement form your side.

This method is good for small and middle-sized projects, when you know exactly what you want. So, a technical specification is a key to success.

Time and Material. If you prefer to exercise full control over the development process, you should probably go with Time and Material model. It is perfect for long-lasting projects which are gradually upgraded, flexibility is important.

Communication tips for this stage

In terms of communication this stage is the most important. Set it as your highest priority to establish a close connection with your provider. Make sure you are on the same page in terms of project characteristics and requirements. Some might argue that this should be the provider’s responsibility, but without the customer’s involvement it is virtually impossible.

Project start

That is when your provider’s development team takes lead. How it goes depends on how much has been done during the previous stages. If you have planned everything properly, there’s almost nothing that can go wrong now.

Outsourcing tips

Use version control software and do backups

We live in the real world and things happen, be prepared. It will be very useful especially as your team is distributed.

Communication tips for the project development stage

  • Communicate actively

Though it might seem superfluous to spend a lot of time on communication, it will pay off. There will be no misunderstood tasks or architectural collisions.

  • Do invest in a good contact person/project manager in your office

This person will be the connection link between you and your supplier. He/she will be the one who knows what are the project’s bottlenecks, the one who will be able to handle tight corners and ensure flawless communication.

  • Agree on the reporting method in advance

Make sure you know what your project’s dynamics are. It will also help single out best performers for your future projects.

  • Arrange regular status meetings

Whether you are using Agile or not, regular meetings will help you activate your project process, resolve issues quickly and in general, learn to communicate better.

  • Spend some time in the beginning of the project on knowledge transfer

It will be a good idea to provide the team with as much information about the project as possible. Plan some introductory meetings or even have part of the team travel to your location to get the ball rolling.

Conclusion

  • Work together with your provider for the benefit of your product

An outsourced project is a job for two (companies). Even if the development is done completely on the Contractor’s side, it always makes sense for the Customer to check intermediate results.

  • Voice your concerns

Tell you provider if you are not satisfied. Chances are it’s an honest mistake and the situation can be improved. Any sensible service provider is highly interested in continuous cooperation with a Customer, so they will do everything possible to resolve any issues.

  • Do not expect miracles

Outsourcing offers a lot of advantages, but it is not a plaster for all sores. In order to outsource effectively you should first and foremost get your internal team ready for the undertaking and plan the work thoroughly together with your provider. Communication is very important and might turn out to be tricky. Just like any other project, an outsourced one will take some effort and time, but with reasonable planning it will help you save time, money, increase flexibility.

Looking for an outsourcing partner to take over your software development project or the entire pipeline of projects? ScienceSoft is ready to support your business growth and digital transformation initiatives.