Troy Hunt, Pluralsight author, Microsoft MVP and creator of the excellent Have I been pwned service recently came out with a blog entry that he says was "years stuck in his draft folder" entitled Offshoring roulette: lessons from outsourcing to India, China and the Philippines.
In this post he details his observations of the benefits and challenges of outsourcing work to these three countries, including in the aspects of quality, communication, and cost, and his personal experiences. I recommend that you read it for yourself.
Of course I was elated that Troy liked the Philippines enough to write that:
Had I stayed on at Pfizer, the Philippines is where I would have loved to setup an in-house dev shop (I know, developers are a "burden", but bear with me)... In many ways, the Philippines was the best of all worlds; I just mentioned cost then you combined that with the best English skills of the lot, overtly friendly nature and that same "can do" attitude I observed in China and it makes a lot of sense.
Emphasis mine. This makes me very happy mostly because I'm currently in my own journey of setting up a start up here, and it certainly assures me a lot.
However, there's a cold dose of reality that faced me towards the latter part of Troy's post.
Firstly, in my experience (there's that caveat again!), there is a much greater desire for the folks building software products in low cost markets to climb the corporate ladder... Smart technical people wanted to "progress" by stopping doing the things they were doing well in order to become managers. Now that happens everywhere, no doubt about it, but whereas here or in the organisations I regularly visit in the US and Europe, there are many people who genuinely want entire careers building products... There just seems to be less interest - less passion - in code and inevitably that's going to impact quality.
Again, emphasis mine.
In the nearly 15 years of my career and the numerous times I've interviewed people, there are always two kinds of people to look out for: those that are smart and get things done (let's call them SAGTD), and those who are passionate. While these are not mutually exclusive (if you find one who exhibits both traits hire them and never let them go), it's pretty difficult to find either, and in my experience it's more likely you'll get a SAGTD type.
The challenge with SAGTD type persons is that part of their goals is to become a boss of some sort -- team lead, project manager, maybe head of operations or of development. Rarely would you find a SAGTD who stays on to be some sort of "principal developer" (a title a former employer had to invent for a super-senior-senior developer, that's a story for another time). Some of them would go on the software architect route, but more often than not this is simply in pursuit of some higher, C-level or VP role.
Then there are those who have passion. I tend to categorize myself in this box, not only because I'm a slow starter in doing my work, but also because I tend to worry a lot about things like coding conventions and unit tests and readability while I do my work. There are days when it's easier for me to talk about writing code than actually writing code, and that probably explains why I'm the lead for PHINUG. That being said, I've held on to code churning job descriptions for much longer than others.
And here's where it gets, well, interesting.
Non-management opportunities for Filipino developers simply dry up once you hit the double-digit years of experience level. Developers at this level are considered priced-out for the market, and there are practically zero opportunities for super-senior developers. This is not surprising in a country where a developer is considered senior after just 5 years of experience. Right when they get to their optimum level of experience and skill, their commit rights are removed and they're off to be Project Manager or some other non-tech job irrelevant to their technical skills.
I wonder if there's a way to change this, so that all that experience doesn't go to rot and be translated to quality code?
Image taken from http://www.coenbrothers.net/nocountry.html