Software Development Off/Near Shoring – It can work
Time and time again technology projects fail due to the lack of communication, understanding on requirements and technical obstacles. Plenty are the reasons. It would be therefore only logical for management to avoid any factors that could adversely influence communication such as language barriers, staff geographical dispersion and more. Off shoring part of a software development process should surely be ruled out, right?
A few years ago, I had requirements but little budget. Against my own beliefs, for the sake of stretching every dollar I started looking for suitable off and near shore partners to work with.
A few projects down the road, I find the results were overall positive: increased diversity, lower costs, quick access to sophisticated skill set/”know how”- all of which is in high demand to address an ever more complex business landscape.
It has never been an easy ride. Here is what I learnt.
Beware of the fallacies
“It is all about cost”
Although cost reduction is probably the main consideration by management whilst deciding towards an off shoring initiative, cost reduction is not the main benefit of it. That is because although off shore rates will be considerably lower than the on shore equivalents, a non-negligible component of the gains is lost in extra communication, vendor management and documentation.
“The rate is the deciding factor”
The most important factor influencing the cost of building a system is the team’s productivity. This can be measured as the number of fully delivered features per unit of time. The ability of technology staff to understand a task, efficiently and quickly delivery it at a high quality standard is far more important to the overall cost than the price point per hour.
“Off shoring helps you scale quickly”
Adding resources to projects cannot be done quickly. As it happens with internal staff, off shore team members need training and it takes time to ramp people up to so that can fully contribute to the customer’s specific projects.
The real benefits
Working in partnership with suppliers in different locations widens the search for and access to talent: Talented people, their creativity, technical expertise and knowledge are a key success factor to any software development project. By working with different suppliers around the world, one gains access to a broader pool from which to select and recruit skilled and motivated people. That means that selection of off shore staff must meet the same criteria (if not more rigorous) than the on shore ones: Crawling through CVs, Online tests, case studies, interviews, the lot. No shortcuts.
I do believe one is able to find smart people anywhere in the world and if some can be found in a cost efficient location – it is a bonus.
Another significant benefit is Diversity. Professionals with diverse backgrounds bring new perspectives to problems and challenges. Different views of the world due to varying education, culture, beliefs, geographical location, help teams challenge each other and the prevailing development process. Ultimately the culture mix leads to innovation in terms of new ways of working and new products.
What has worked ? What hasn’t ?
Fixed price & short team projects
So much effort goes into the old style – “all-encompassing specification” which is already obsolete (surprise, surprise !) the moment that you finish it. Then there is the significant overhead of change requests and additional costs related to them (both in management time and feature costs).
Finally, short term consultants who know little of their customer’s business and processes are less effective and productive that their equivalent counterparts with that knowledge – This can only be built over time and a continuity.
Loosely integrated teams
Success in complex technology projects comes from people and processes. Having suppliers working their own ways and hoping for the delivery to be what was commissioned has proven the wrong decision every single time.
Value was created however from having vetted talented people following the customer’s agile process in tandem with the business dynamics. A tightly integrated off shore team is better placed to address change, understand and meet requirements than a team that works in isolation.
Software developers, architects, testers perform intellectual tasks, they are not commodities whose prices can be arbitraged between different locations. Finding the right talent is the name of the game. Furthermore, even talent needs the right collaboration framework / guidelines (the process) to thrive – software development is above all a team effort – a process that must be defined by the customer, the company commissioning the work.
Given its flexibility, a “pay as you go” approach worked better than fixed price assignments. Long term relationships yields more benefits than short term, sporadic ones.
Communication is THE major risk – it needs constant mitigating efforts such as flying people around, promoting calls, among other things. It is a hidden cost not to forget.
Ultimately, finding the right supplier with the right people that nicely fits with a company’s processes requires some element of “trial and error”.
Hence my suggestion is to start small, monitor and compare to see how it goes, then gradually scale once it works.
Opinions expressed in this article are those of the author in his personal capacity and not those of his employer