As some of you may know, I have worked in various non-technical roles as Business Unit Director, Project Manager, Delivery Lead and Technical Pre-Sales Architect over the past 7 years before I took over as Application Maintenance Manager in a large software engineering project in the banking industry a couple of weeks ago.
Despite my passion for technology, these roles were not only very important for my career, they also shaped my thinking and helped me to understand more of the real value of software engineering. Based on that experience, I decided to write this post and to share my thoughts on one of the most difficult trends in the software engineering space today: Offshoring work to low cost countries like India.
My view on this topic has always been kind of wary, until I recently decided to apply one advice I’m constantly giving to other people to my own thinking: Accept the current reality, understand the reasons, change your attitude and deal with it right away. So this post is basically a recommendation to accept the current situation despite all the negative feelings that might be attached to such a change and to adapt strategy and operations accordingly.
Living in one of the richest countries of the world has a lot of benefits – no doubt. The “drawbacks” of this can mainly be attributed to the fact that the price of work is to high for those results that can be produced somewhere else on the world for less money. Of course, this is especially true for the IT industry, as the costs for transporting the results of this work (software and services) over the internet are very, very low.
When I ran the software engineering business unit at my former company, we made a first attempt to get in touch with offshoring as a concept in 2007, but decided to back away from that strategy. In retrospect, that may have been for the wrong reasons and I think, I approached it with the wrong mindset.
The truth is, offshoring is not very different from other trends in the IT industry. For years we have seen new layers of abstraction in the form of new programming languages (Assembler, C, C++, C#), runtime platforms (Mainframe, Unix, Windows, COM, .NET), and frameworks (JSP, Struts, ASP.NET WebForms, Modern MVC Frameworks) that incorporated the learnings of its predecessors and added an additional layer of indirection to safe time and money.
Offshoring is basically the same, although it is applied in a different area, namely organizational structure, processes, people, and skills. The fact is, there are certain types of work you can outsource (and thereby offshore) pretty good, if you can clarify the outcome to a degree that is sufficient to let someone else carry out the work. This, of course, raises the bar for consultants and local software developers significantly. It is no longer enough to be able to complete relatively simple tasks like HTML development very quickly, you now have to explain someone what result you want and give him all the information available to fulfill your expectations. This calls for management and people skills, and it demands good judgment in terms of business value and strategic thinking.
In addition to that, there are types of work you will never be able to “offshore” somewhere else. This starts especially with a good relationship to your customers, partners and suppliers, continues with strategic consulting, business analysis, requirements engineering, software architecture, project management, and ends with certain types of development, testing and deployment. Having said that, there are of course a lot of tasks that can and should be put into action by an inexpensive work force if the outcome meets the demands in terms of quality and delivery performance.
Therefore, one of the biggest challenges for successful organizations in this decade will be to a) find the right kind of work that can be delegated to offshore resources, b) hire the right people in a low cost country and integrate them as part of a global team, c) create a culture of trust and performance among your distributed work force, d) help your local people to define the outcome they need in a way that guarantees good results and e) educate your staff to delegate and manage their remote counterparts effectively and efficiently.
Of course, this will especially be difficult for smaller organizations that currently rely on a local work force and lack the right connections to important peers in India or on the Philippines. But it is nevertheless a problem they will have to address with the right mindset as soon as possible.