An article about various approaches in dedicated teams organization (creating offshore development centers and remote teams). There might be various models, depending on the level and localization of project management for the concrete project. Project management is an important question in general and its importance increases when we start speaking about such sphere as software development outsourcing services.
Challenge of Outsourcing
Outsourcing is a good thing, saving costs and giving access to high-skilled resources only in one case – provided it is properly organized. So, the main challenge in making successful the outsourcing development project is its proper organization. Below you will find some basic ideas about that.
Generally the outsourcing is divided in fixed price and dedicated team models. Our main focus is setting an effective offshore/nearshore dedicated team, so I will leave fixed price model apart. When organizing a dedicated team, there might be also a number of options, which differ by the way the project is managed.
Project management on the client side
Here belongs the model, when you provide all the project management of the team. That means, you treat these developers as your ordinary developers, as usual extension of your own team, you give them tasks, you supervise their progress, check their commits and motivate them in case they do things right, or criticize them in case they do something wrong. They use your project management system, bug-tracking system and usually there is a person they can address with questions on the client side. Or even you take time and let them get acquainted with the whole team, so they address the right person in case of necessity. This is possible but takes time to achieve.
This model is effective in case you are ready to dedicate your time to manage things as if you have a team of guys depending on you in your offices. It works well, in case you have good project management traditions inside the company, organize projects in a smart way and are patient to explain things, especially at the beginning, when the guys just start getting acquainted with the project.
The drawbacks – it still takes time and you need to dedicate at least 1 person at your premises to manage your dedicated software team.
Project management on the executor side
It is usually used in case you decide to outsource the full project. In such case a fully-functional team is created on the side of the Executor, with PM, team-lead and architect, you communicate to your team the project objectives and business specifications, and the team develops the projects from the design stage to the maintenance.
The only thing needed from you is to check the demos and other intermediate results frequently in order to make sure the team is going in the right direction. It is easy to do with new projects, but require time to launch such cooperation with already existing ones, since the new team needs time to get acquainted with what is already present in the project.
In this case a team with a certain hierarchy (PM, senior, intermediate, junior developers) is created. You should also take care to create a good communication channel between the responsible person on your part and the project manager on Executor’s part (remember, communication is IMPORTANT).
So, when the team is gathered and the communication is set, you finally can relax and enjoy the advantages of outsourcing - you give your team big pieces of work and almost forget about the team for a while – it is the task of project manager to analyze the task, estimate it, make the planning, subdivide into tasks, make sure the team understood everything right (here PM might ask you some questions), give the tasks to developers and supervise the development and test the results.
In this case you will have to spend a bit more time on the initial stage, when explaining the project in general and setting these big tasks carefully as well. Provided this first stage is a success, then further development is done practically without any involvement from your part. You will only look at the reports the PM will send you on a weekly basis (or less often if you want to) and check the intermediate or final results when they are available.
As you can see, all three schemes have their advantages and disadvantages and are applicable with various types of projects. The main thing here is to establish good communication – once you’ve chosen a reliable software outsourcing company you feel comfortable doing business with, it will be easy to discuss project and agree on the way of cooperation that will suit both of you. Communication here, as in any other sphere, is the true key to success.
Speak to each other, enjoy the process, feel delighted with the results and be successful!
VP, Binary Studio