In Asian countries, most mobile-web technology start-ups have found major difficulties in building technology teams. A few factors contributed to the problem, with lack of talent being the most common cited reason. Other factors include weak entrepreneurial ecosystem and inactive programming communities. Any start-up founder with a business background will tend towards outsourcing the building of the technology to freelance programmers or programming houses as a result. The problem is also endemic in large technology companies in Asia. The common argument put forward by most business owners is cost effectiveness. However, drawing from various anecdotal evidence, the small and medium business owners tend to end up spending more. In the first of the series, I want to debunk the cost argument and reveal some hidden costs in building technology that most business owners do not see that would come back to bite them in near future, and present this conundrum of whether to build an team within the organization or outsourcing the technology to freelance programmers or programming houses in a clearer light.
Why Companies outsource and the cost effective reasoning does not work
In a typical start-up particularly one in the mobile-web technology space, should you build your own technology team or outsource your technology building to someone else? If the technology you seek to build exists, it is likely that an Asian business owner will pay a programmer to clone it. Why is it cheaper to clone? On a macro-economical scale, the Asian business owner is trying to perform a technology arbitrage where he or she clone something and execute the same business at a lower costs. You will hear about the thousand Groupon clones in China, or the AirBnB clones in Southeast Asia or Middle East funded by a few group of people.
The common thinking among people with business but no technology background (particularly those with MBAs) is to outsource. Of course, if you are Asian (or even American), you will typically hear everyone telling you to outsource the job to Indian programmers. In fact, the common case studies most people will cite are the multi-national corporations from Microsoft to Nokia claiming success in outsourcing their operations to India. Unfortunately, when you start talking to start-up owners even if they are trying to clone a Silicon Valley start-up, you will start to hear the following about Indian programmers: (a) they are lazy and very hard to manage if you are far away, (b) they don’t seem to understand your instructions because they seriously cannot communicate and (c) they don’t get what you want to do correct and worse, they made a mess out of it. This is not intended to insult or dissuade you against using or hiring Indian programmers. The same problem spread across most Asian programmers. Very few and good Asian programmers exist but chances are, the lure of a giant salary from an investment bank or a multi-national company will draw them away.
One must be wondering why most Asian companies (even for start-ups) have consistently perpetuated the myth that outsourcing is good for building web and mobile technologies. Cost effectiveness is often cited as the main reason. If you are outsourcing specific operations which are mechanical, the reasoning is correct. However, some people with business backgrounds (particularly MBAs who were former consultants and investment bankers) tried to map the same reasoning into building their start-ups. The eventual result is that most of them crash and burn because they did not have a proper technology team or worse, not even a technologically inclined co-founder. The same goes for middle to large businesses in Asia. Why is that so? Why are these people did not want to invest more resources in building proper technology teams in Asia and wasted money later to repair large scale IT infrastructure or technology failures?
The Intangible Cost of Technical Debt
“Shipping first time code is like going into debt. A little debt speeds development so long as it is paid back promptly with a rewrite… The danger occurs when the debt is not repaid. Every minute spent on not-quite-right code counts as interest on that debt. Entire engineering organizations can be brought to a stand-still under the debt load of an unconsolidated implementation, object-oriented or otherwise.”
– Ward Cunningham
The management from any start-up or company often justifies their outsourcing of technology based on the argument of cost effectiveness. It’s a very one dimensional argument and we can’t really fault them because their intention is to take the product (a website or a mobile application) to market at the shortest time possible. What they end up discover later, is that the solution that they are building is not entirely what they have intended or some failure in the IT infrastructure which they did not foresee like database crashes or security breaches.
What business theory did not teach them is the problem of technical debt in building a web or mobile technology. When a business owners builds a website by outsourcing it to a freelancer or a programming house, they often rely on them to pick the correct technology to implement the solution. What they don’t realize is that the business model for freelancers and programming houses is that they need to make a profit by working in several projects at the same time. For a start, both your business objectives do not align, because you have no awareness of your technology and you are being held hostage if problems happened by the vendor. Since we know that if the team you are outsourcing to is not focused, it results in three things: (a) lack of focus and hence poor code written to build the features on your site, (b) selecting the wrong database infrastructure or frameworks which may not align with your business objectives and (c) drop their hands off the project if you are not paying them enough and ended up you wasting more financial resources to repair the problems you have. So, when you outsource your technology building, you have actually incurred more technical debt with a higher interest as compared to those who start off by spending more money in building their own technology teams but reducing the interest rate of technical debt. The problem will come back to bite you in the future.
Precisely, the cost effectiveness argument fail because in the longer term perspective, the technical debt that was incurred in building cheap will come back to bite the business owner. In most cases, it will trigger a rewrite of the code, which the business owner is reluctant or have no choice to pay or they have to give up on the entire technology platform.
Dealing with the “I can’t hire any tech talent” problem
Another common excuse for most business owners is that there are no technical talent available. As a matter of fact, this is a common problem endemic not just in Asia but also in technology clusters such as Silicon Valley and Zhong Guan Cun. According to some, the problem is worse because the better engineers in Silicon Valley will prefer to work in the bigger companies like Facebook and Google rather than with start-ups unless they are on the ascendency. The correct way to phrase this is that there is no software engineer which fits criteria of your choice. In my experience working in a research institute, most researchers usually enter with no relevant software programming skills. The problem is exacerbated in Asia because most software engineers don’t fit basic requirements. Not just software engineers, the same can be said of user interace and user experience designers for web and mobile.
Why is Asia having so much shortage of good engineers? The key reason is that IT programmers are treated like digital coolies, a term which is used for labour workers in trading ports during the 18th and 19th century. There is a lack of incentive for innovation because people do not spent time or provide any incentives to help engineers to upgrade themselves or a feasible and decent career path. As a result, we have a shortage, and the better ones decided that it is better to service clients on a project basis and become freelancers. As a result, due to a mis-alignment of objectives, the problem of technology talent in most Asian countries has grown worse in the past decade.
There are ways to build a technology team in Asia but it requires configuration changes in not just building them from scratch and providing some allowance for error. In the next post, I will discuss a few models on how one can build and manage one with also the correct incentives and objectives. However, it requires some resources and a change in business owners’ attitude in Asia.
- Sanjay Anandaram (adjunct faculty from INSEAD and also co-founder of Jumpstartup Venture Fund) provided two interesting references: (a) TechCrunch, Should Tech Startups Outsource Product Development? and Serious Changes in the Global Startup Ecosystem where he contributed some thoughts on the issue.
- Patrick Turner (Professor of Entrepreneur from INSEAD business school) wrote this comment to me via email, “Outsourcing to project-based engineers works much better for start-up teams that have a solid full-time CTO on board. This is obviously because that person is able to control for the deficiencies of remote coders in a way in which teams without such a person cannot possibly do”.
Author’s note: This article is written in conjunction to a similar talk I have given in Barcamp Singapore 7 on 10 Sep 2011. The author thanks the audience, particularly several founders from various start-up companies in Southeast Asia for their feedback and lively debate on the topic. The picture used here is credited to LGB06 from Flickr under a creative commons licence. If you want to republish this article, please contact me to seek my permission first.