Tactical tech-sourcing takes many forms/flavors; my previous post dealt with bringing skills in or increasing capacity by augmenting your in-house team with an outsourcing service provider's resources. This post is about going offshore on-demand.
More often than not going offshore on-demand is a strategic decision and not a knee jerk reaction. The decision to outsource software development offshore or on a hybrid model is based on a combination of factors; saving time and money on a short run activity, bringing in temporary skills they do not wish to add to their skill base on a permanent basis, in some cases introducing their in-house resources to new skill sets with augmented team members, to benchmark internal capabilities against an external service provider, bringing in fresh minds to give your innovation team a boost and of course to relieve capacity issues. Clearly not an exhaustive list as some of you might be hoping to find here but the point is to make you think and not dump data on you! having said that lets waltz with a tad bit more detail.
Saving time and money on a short run activity: The classic reason, where the project outsourced is tight on timeline and budget and outsourcing companies by their nature (with considerable exceptions!) are tuned for fast turn around; that is the nature of a specialist. A fallacy is that for project outsourced offshore that has a tight timeline and a restricted budget the requirements have to be set in stone, they do not. As long as the end client or domain experts are accessible, the time line and budget reflective of the project needs any outsourcing software development provider can apply a number of methodologies to deliver on time and on budget regardless of the state of the requirements or specifications. Agile is the only road to take on such projects, short sprints ensure the iterations are used to keep the domain experts, client expectations and developer understanding in sync.
Bringing in temporary skills a company does not wish to add to their skill base on a permanent basis: The best example everyone is familiar with on this note is still Y2K! adding legacy platforms skills to the current skills mix was not on anyone's priority list hence Y2K saw a boom in offshore software service demand. This holds true for not only legacy systems but for one off projects as well in today's languages, it is not only programming or coding that falls into this realm, online demos, search engine optimization, technical and content writing outsourcing all fall under this category... and the list goes on and on!
Introducing new skill sets with augmented team members: Not only is this a more productive means of introducing new skills it turns out to be more economical as well in comparison to externally sourced training and development programs or running internal training programs. The best example I have to cite for this is a recent engagement where I sourced and managed senior contract resources to augment an in-house client team, the client's objective was to add Ruby on Rails to their existing skill set and having already invested in a few externally run training courses with no significant result they were open to my suggestion of 'learning by doing', the combined teams worked on a project over a four week period and though the learning curve was steep for their in-house resources their competence levels, confidence and understanding of the frame work got a steroid boost no in class course or online training materials could have delivered.
Benchmarking internal capabilities against an external service provider: Everyone, every team needs to test itself frequently. Though every challenging project is a test of skills and attitude we all should benchmark ourselves against those who are niche specialists or those we consider better than ourselves at a given function. I know peers in the industry do not agree with me on this approach but hey it is not the next man (or woman's) validation that should drive our desire to better ourselves! it should come from within. Previously I have uses third party service providers to do just that for selective internal functions in my ventures, our favorites being user experience and software testing.
R&D and innovation: getting to a prototype at a fraction of the cost: The general perception is that innovation is not the realm of an offshore software service provider, this is simply untrue. Innovation and creativity knows no boundaries. Now more so than ever client briefs assume the software service provider will deliver that elusive silver bullet not yet defined. Tactical outsourcing of innovation is much more objective and quantitative than that! The most common form this takes is the off-shoring of your prototype product, reengineering of an existing one or testing out a 'back of a napkin' concept on a shoe string... its all outsourcing of software R&D/innovation. This is an area where only the best of software development providers survive and size does not matter!
Joint onshore/offshore innovation is not as simple as suggesting alternatives as some have come to believe and expect in the industry, it is a managed positive conflict that creates value in the output of both the teams. It is a balance of relationships between very bright and talented individuals and teams... lets not mince words aingh! and where it works it delivers value beyond plans and expectations and leads to a more strategic view of the outsourced provider's capabilities and value in the supply chain.
Relieving capacity issues: Some may argue this the most common reason for clients to outsource projects on an on-demand basis, be it special projects or unexpected demand outsourcing is the best method to bridge the gap. There is a preconception that such engagements are exclusive to software development; as if it is only the developers who may be maxed out in a tech company! such temporary relief can take the form of complete project/product builds to documentation of an upgrade being released over the winter break, testing, content writing... even deployment of applications have been outsourced to trusted partners on a tactical basis.
It is often the case that a tactical decision to outsource software development offshore leads to a strategic one following the success of the tactical option taken for any number of reasons. And It is not necessary that your on-demand needs exist in isolation to any ongoing strategic outsourcing arrangements you may have in place already, it is often the case that on-demand services are utilized on top of existing longer term strategic outsourcing contracts. All this of course depends on successful delivery and realization of the benefits the success yields.
I hope this post has given you enough food for thought to last you through the festive break! my next few posts will get closer to selecting an offshore software services partner (as a few of you have emailed for)... what to look for, what to avoid and how to assess which one of the shortlisted are best suited for your business.
And being the last post before 2011... have a fabulous Christmas eve, day and a new year break, good luck with your resolutions (peace on the third rock goes without saying!) and thank you for following the blog, I look forward to sharing more of my experiences with you in the new year!