The outsourcing discussion continues. The subject came up on the ChAD mailing list.
Steve Stamps was defending a product called Flywheel that was coming under attacks from XP supporters. (XP clearly demands an onsite customer, whereas the product is designed for collaboration over a network.)
He invoked Clayton Christensen's Innovator's Dilemma:
One of his key conclusions is that the incumbent (us) focuses on the higher-performance, high-margin offering and does not respect or embrace the emerging offering which starts out with lower-performance and lower-margin.
The reasons this is a mistake is because:
- many customers are not interested in the higher performance (whether they should be or not), so their cash flows to the low-performance product (has already happened in our industry)
- with the infusion of customers and cash, the new offering builds a strong trajectory of cost and quality improvement. It eventually blows the old product out of the water (or leaves it a very small market segment) and dominates the industry
- the incumbent eventually tries to provide the new offering, but they are late to the game and their heart is never in it
This has happened in the past with Xerox playing the role of the incumbent and Canon as the upstart. Xerox made the better photocopiers but neglected the low end of the market. Canon captured the low end (the small businesses and individuals) and was able to build better and better product from a bigger customer base until it eventually challenged Xerox at the high end.
In the software world, Richard Gabriel's essay Worse is Better describes the same kind of phenomenon in a more technical setting.
Another book, All the Right Moves, describes strategy as a process of defining a market niche for yourself (or your company) by answering three questions:
- What do I sell? (A product, a service, some combination..?)
- Who do I sell to? (Which customers do I aim for?)
- How do I sell it to them? (What will make my offerings attractive in a way my competitors cannot match?)
The questions are subtler than they might seem. For example, it's as important to define the negative side of the answer, for example, which customers you do not aim for. You might even go so far as to discourage them altogether, even if it means losing business.
In the case of Xerox, they had decided that big customers were their target market and they would win by offering full-featured products and better service than anyone else. It was a superb strategy while it lasted. They failed to understand how the market could evolve. Had Xerox seen Canon coming the dilemma would have been how to preserve its existing business while meeting the challenge.
A standard scenario for outsourcing goes something like this. Developers in rich countries work to create version 1.0 of the product or service and they do it at a speed and with an understanding of the target markets (also in the rich world) that cannot be matched in poorer countries. Physical proximity and agile development are part of the reason why. As the product matures, the work moves offshore. (That's when Flywheel might be useful.)
Work that can be easily done offshore will move there. Generally, that's the more routine work where profit margins are lower and risks are in general lower. Highly innovative or specialized, high risk, high profit work is going to stay in the rich countries.
If the Innovator's Dilemma applies, it's not enough to be agile and to concentrate on high value work. Markets and competitors are always changing and strategy must evolve. Developers in India and elsewhere are going to want to do the high value work, not just the stuff that traditionally gets outsourced.
The nature of what is considered innovative, risky and profitable will change and rich workers will need to change as rapidly. Purely technical innovation still has its place. Think of Google, which is still producing better search results than AltaVista three years later. However, I think that rich developers will need to think more in terms of business strategy and how to find new answers to the three questions.
In the long term, salaries are going to converge. As software developers in the developing world get more productive [in broad terms — they're already good at writing code!], their salaries will rise. Salaries in the rich world may already be falling. I suspect that the multipliers (such as one fifth) that are bandied about are based on numbers that are getting out of date.
In the mean time, it seems a good idea to follow the pragmatic practice of maintaining one's portfolio of skills as one would a portfolio of investments. That avowedly includes non-technical skills such as marketing and product development that help one to develop a good business strategy.
My more recent blog with the linked post above can be found here in case you wanted to know, which I am sure you did :)
http://www.9rules.com/whitespace/our_thoughts/knowledge_portfolio.php