Hacker News new | ask | show | jobs
by statictype 5557 days ago
Well, I think we're looking at it from different angles.

You see good outsourcing companies as those that have technically competent engineers. That's not how I see it.

I think part of the reason big companies are still outsourcing to India is not because of the low cost of technical competence, but rather, the low cost of process management in developing IT-related software.

For example, when you outsource a module to be built by the offshore team, you may end up with code which is not world-class quality in terms of maintainability or performance, but you will end up with something that matches the requirements you gave. And if something seems out of place, they will be able to trace it from the bullet point in the requirements.doc file down to the module stored in VSS (yes, sadly, probably VSS, not subversion or git), to the unit test cases that cover it in unit-tests.xls.

This is because all the companies that are outsourcing their IT are not doing it in the hopes of getting good code, or because they're not technically competent enough to write the required code (most outsourced code is of the CRUD variety as people have mentioned here) they are doing it because its cheaper than having a whole team to track requirements, and make sure they map to UI elements in the right places and that the code is documented in a way that someone down the line won't be able to complain about it not being understandable, and that the unit tests are in place and all of them are checked-off.

I guess if you're outsourcing work that requires technical competence, maybe you're right about other countries working out better (I have my doubts but don't have any reason to disbelieve you) but I think a majority of the outsourcing success stories (involving India) work because their outsourcing needs have less to do with the actual code quality and more to do with the process involved in writing boring enterprise CRUD apps.

2 comments

Absolutely agreed -> low cost of process management in developing IT-related software.

The issue I have with this is that success (if you could call it that?) in enterprise IT is driven by both competence in both process management and engineering talent. The paradigm (and the fallacy) of today's IT is that the enterprise sees IT as largely commoditized. What would happen if, for example, a CRUD application was built by developers who understood the benefits of UI/usability and this increase performance/productivity of a salesforce? Naturally I'm inclined to think the 'Enterprise' would simply write off IT's existence ("let's cut costs and send it to India!") and praise the salesforce ("another great quarter of double digit growth")

I think it's wishful thinking, but whatever happened to using to technology to solving strategic problems?

I have an even more reductionist angle: if you look at the success rates of these sorts of IT projects, total failures are somewhat less than 50% but general failures, the latter plus systems that lack significant functions that were part of the requirements are well over 50%.

So you might say that doing this sort of IT is akin to cargo cults: these organizations aren't really doing it, they're just pretending to themselves that they are.

So, if you're going to fail, why not fail as cheaply as possible?