Selecting the right offshore company can be puzzling, especially if you have little idea where to start from. So, here is a short list of questions to ask yourself before you jump into the nearshore/offshore adventure.
1. Define your needs properly
It is very hard to get the right product built if you don’t know what you want. This simple truth is far too often forgotten. Software is a very versatile tool. You can create almost anything with it, from a simple watch to handling a plane. Now, if you go to a developer with a lousy idea of what you want, you will be sold the next marvel of the world pretty quickly. Why is that? Because IT experts are passionate people and they always dream of making the next software nugget. Now, if you go with something reasonable in mind, they are likely to be able to tell you what it really takes to do it.
Defining your needs is not necessarily complicated. On the contrary, you can follow techniques that help you go through your needs pretty thoroughly and painlessly. It is not the topic of this article but keep in mind that you need to spread the proper energy defining what you want if you want to have successful project. In the context of offshore software development, it is key that you understand the scope of your own needs. It is only when you understand these needs well yourself that you can share them with a remote team.
2. Find a local champion
Inside your organisation, you need someone who really cares for your project. This person should understand your business well enough to make decisions. She also should have the power to actually make decisions. Her daily life on the project will be made of dozens of questions and decisions to make: “Shall we consider scalability as a must?” “How do we identify a bad transaction?” “We cannot get feature A and B together in this month’s release. Which one do we do?” Etc.
Without someone committed and knowledgeable on the project, your developer partner cannot really deliver what you need. If you do not want to invest time on your project, then you need to buy off-the-shelf software and tune your business to fit the software, not the opposite.
With an offshore project, it is very tempting to hope that the project partner will handle everything. They very well might, but their decisions are unlikely to be the exact same as yours. They do not see the world with your specific business eyes.
3. Be realistic
Okay, you are going offshore, you have found the right partner at the right price. What you have found is a team of human beings, not a bunch of wizards. Even excellent teams have limits. If you are promised a huge delivery by yesterday for really cheap, you should wonder where the trick is. Have a look and ask how that will be possible. Are they using a framework that will speed up the development drastically? Are they working 24/7? Are they happy to cut corners?
Yes, you will find amazing teams around the world. If you find a group of passionate experts dedicated to customer satisfaction, then you’ll have great results. But they still need to sleep. So, make sure that what you are asking for and what is promised to you is making sense. Offshore teams are not less realistic than local ones, but ensuring proper match between what you ask for and what can really be done is essential.
4. Think about the time zone
The time zone sounds like a dull question. After all, why do I care if the offshore team works when I am sleeping? The answer is: you care because if you sleep when they need you, they will wake you up. And when a project is lasting for months, the fun of working at night on top of working during the day might not be that obvious.
So, you should wonder who will be talking with the team when they need it. Is it you? A colleague? Why would your colleague find it fun and not you?
It is possible to work with people with 10h difference, but it requires a team capable to handle it. It requires being legally allowed to have workers video conferencing at night beyond normal office hours. It requires a setting that allows taking advantage of the time difference. If you do not, it is likely that instead of benefiting, you will endanger your project. In such case, you should have a look at nearshore teams rather than offshore. Working in more or less the same time zone increases your opportunities to get in touch during your working hours.
5. Local Project Manager
Using a remote team to develop your project means that you are not in touch with them face to face. You have to drive the project from where you are. Because the best way to express your needs is to do it face to face with someone understanding you perfectly, you should verify that the service provider you are trusting with your project has someone local you will interact with. You must be able to describe your needs, give feedback to someone who will get it first hand and takes responsibility for delivering your message to the team with the adequate means. The relationship between this Project manager and the remote team must be strong. They should share a common interest in the success of the project.
6. Remote manager
The remote team will have a Project Manager or a Scrum Master, someone who will take responsibility for the project success. You have to make sure that the communication channels with this person are efficient. This person must understand what is at stake for you and what can be done to achieve your goals. The relationship between this remote manager and your Local Project Manager must be excellent. Even if you can be in touch with the Remote PM you are going to interact with the Local PM for every major step and major decision on the project. You also want a great communication channel from the remote Project manager to the Local one. This way you can have a fast and true vision of where your project is standing.
7. Adopt an adaptive process
Process might not be the first thing you are thinking about regarding your project. But it is an extremely important factor in the equation. Indeed, it is the methodology that will be applied to engineer your project. Although we said in Key #1 that you need to define your needs properly, we do not advocate the use of the Waterfall process, especially in this case. On the contrary, you want to steer your project with the best possible precision. To do that, you need to see as often as possible the current state of the application and give a feedback to the team to ensure they are going in the direction you want. You are using a remote team and therefore, you do not see them on a daily basis. You want to have the opportunity to confirm they are doing well or not as often as possible.
An adaptive process is just that: a process that allows adaptation during the course of the project. There are several processes entering this definition. To keep things simple, you have all the members of the Agile processes family plus the Unified Process. The final choice may depend on your own experience, your service provider’s experience, the nature of the project itself.
Benefiting from the quality and price tag of a nearshore team is allowing your business to go further with the same level of cash flow. But to increase the chances of success you need to setup your project properly. Communication is the challenge you will add to the normal challenges of an IT project. You decrease your costs but add a difficulty by not seeing the team face to face on a daily basis. If you respect the key points presented here you should be on your way to success.
If you like this article, what about tweeting it or recommending it?
Sylvain’s personal blog can be found here: blog.sylvainliege.com