One of the key questions that arise once you decide to go into outsourcing is choosing the model of cooperation. I am often asked about the differences and I believe this is the decisive factor for the success of a project. That’s why I decided to write this article, to share the ideas, vision and initiate a discussion.
So, when it comes to outsourcing the IT part of your business, you basically have 2 options: either allow the company to do the whole project for some fixed price, or “hire” the IT guys, thus forming a remote development center and manage them as if they are employees of your company.
Each model has its advantages and disadvantages, which I tried to cover in this article.
What you get if you choose the fixed price:
- Most importantly, you control the project budget;
- You can not bother about project management issues – all the management is on the other side, but for the key things you choose to leave under your control;
- The planning, schedule is clear, you see the deliverables and the whole process is visible to you.
Risks of the model:
- The model works well in case of small to midsize projects. As you know, software development , as any thinking process, is not a linear and easy task. It is complicated and can’t be neatly and easily estimated in man-hours with ideal level of proximity. So, big projects can be only roughly estimated, with the correction of the volume of works in the process of development.
- Still, be it small, midsize or big project, the risk of extension of the volume of works on the project is always there. And here the team executor has 2 options:
a) either ask for reestimation and set a higher price (I am told Indian companies do this trick quite often) or
b) do the project according to the sum agreed.
In the latter case company-executor bears all the risks, which results in:
a) desire to minimize the risks, thus setting the highest price when doing the estimation or adding extra hours to feel safer;
b) if a company extends the volume of works due to this or that reason, and stops getting profit out of the project, the motivation goes down.
- The success of the project depends on the exact specification, the more detailed it is, the better for the project.
- The process of making changes is therefore complicated and not quite easy – every change needs to be estimated and added to the estimation of the project, even if you apply the change management techniques to facilitate this process.
- Agile methods are not applicable here, as how you are going to make a fixed price estimation for an agile project with unclear requirements?
- When working with companies, having not much experience in delivering projects, there is a risk of you getting the black box – silence during the development and, voila, a ready project in the end, not always corresponding to what you thought it will look like and what you really wanted.
As for dedicated team, here the advantages are:
- You can work in agile mode and be much more flexible as for the methodologies.
- You work directly with the team or you set a development center with its own management facilities, in both cases able to have the full control over the team working for you.
- You can choose the guys to work with, train them, teach them and develop the team in any way you find most suitable, thus in reality treating them as employees of your own company (whom you still don’t have to employ in reality), and who, by some strange coincidence, cost you much less money (2000 EUR for a guy a month is not that much, is it?).
Risks of the model:
- The most serious risk here is budget extension. It can be a problem with inexperienced company. This is the most common nightmare of all those trying outsourcing and even with internal projects this is a usual situation. Which brings us to the question of advantages of working with a professional company with strong and smart IT management.
- In case you are running a dedicated team with a mature company, it helps you to do the planning of the budget and volume of works, prior to coding anything, thus taking into account your risks and minimizing them. I firmly believe planning is needed in any case, always, in any circumstance, at least some basic one for the whole project and a detailed one for the closest couple of milestones, so that you always know where you are, where you are going and how long is till the end.
As a result of my mini-investigation, it becomes clear that the dedicated team model is preferable in most cases for the following reasons:
- Flexibility of development and choice of development methodologies.
- Stability of the team and ability to teach it and use it long-term as a branch of the company.
- Fair pay – you will be able to control your budget and pay only for the actual hours spend on development.
- The risk of budget extension can be mitigated via careful planning and proper project organization.
- When working with the team long-term, with processes carefully set, team trained, you will save not only on the immediate difference in prices per hour in different countries. The permanent offshore team with the knowledge of your projects, your specialization and your company’s culture, traditions and processes will be much more effective, than some outsourcer that come, do the project and go… So, you’ll do the projects together quicker, with a good level of understanding and high level of effectiveness, thus saving both by paying outsourcing prices for a good quality development and also saving on making things faster and more effective.
Do you agree? It will be interesting to know your ideas. Write me your comments at email@example.com
VP, Binary Studio