Have you ever considered using “off-shore resources” for your projects? If you work in “the west” or should we just say in countries with an hourly NAV developer rate of USD +100, then most likely you have. Especially if you work on large projects.
But have you ever been in a project using these so-called off-shore resources? And how did it go?
My friend Peik has done this many time and have written a blog post about how to outsource your development tasks, especially to off-shore resources. Peik gives some tips on how to make your outsourced projects a success. They primary focus on:
I completely agree with all of his comment’s and tips. If you decide to outsource your projects, then that’s a list you need to save and remember.
Now that we know a little about how to do it, then the big questions is, if you should outsource your projects?
If you read Peik’s post, then you also understand that there are a lot of things you need to focus on and give a lot more attention, compared to only using inhouse/sourced resources. You need a very experienced project manager/architect and often much more time on design, documentation and QA. Don’t expect that it comes easy. Face-to-face meetings between the inhouse and offshore teams are very valuable, not just via Skype with video.
My personal experience has primary been gained by working as the ERP solution architect on large international NAV projects. So that’s in a customer environment. Peik’s recommendations are based on his experience in the partner channel. But they are just as valid when used by a customer managed inhouse NAV project.
In the offshore projects I have worked in, we estimated about 15 minutes per outsourced hour for extra project management, communication and quality control. And that’s where you have “your own” team of more or less fully booked developers.
If it’s a one-time project of less than 200-300 development hours, then I would say forget it. And still it could easily take you at least 2-3 project of that size, before you would start seeing the results your expected.
If you are a customer, and your use a Dynamics partner who are using outsourced developers, then make sure to check out references first. If your project is the first they are outsourcing, then I would be scared.
The most successful tasks I have outsourced are within development. And here as already said, primary larger, pre-designed coding tasks. But the more you know your offshore team the smaller task you can assign them. If you have a large user base and a lot of user support, then that could also be an area, just watch time differences.
You have to make sure that your team stay's the same as much as possible. Each time a new developer is assigned to your team, then expect the same delay in productivity, as if you hired a new in-house developer. Here you need to follow the same advises as if you are managing your own employees. If they get bored working on your project, they are more likely to go work for a different company. And much easier if they just have to switch tables.
In the same way, don’t be afraid to tell the company hired them through, if some the developers you were assigned does not live up to your expectations after “a few tries”. Just as you would do if they were your own employees.
As Peik also points out, documentation is very important. It always is, but here even more so here, as it is often the primary source of knowledge transfer. You need to extra carefully document everything. It’s not enough to write a simple requirement specification in a few lines, like just forwarding an error message from a user. If you want things to be done in a special way, then you need to say how. If you have a Skype video meeting, always remember the minutes with any decisions or any follow-up points.
If you are in a company with large enough projects to consider outsourcing, then you probably already have always spend quite a lot of time documenting the processes and standards to be used. At least that’s been my experience as an ERP solution architect. But make sure that your outsourced team are aware of these standards. They should be as easy to use and as close to “Microsoft standards” as possible.
Left is then only to enforce the standards, verify that they are followed. Have a strict code review, before merging any changes with your core system. Give a clear feedback, Skype is often much better than just an email.
If you are not just doing a few projects, but to work with a good full-time team, over a longer period, then yes.
I cannot recommend it unless you give it 100%, as it will take more than one project to get and see the benefits.
To have success with outsourced resources you need to treat them exactly like you would treat any other in-house employees. Which is a lot harder, when they are not in your physical office, but 1000’s of miles away. If you take your time and extra efforts, then you may have great team of relatively low cost Microsoft Dynamics developers.