“Do More With Less” the latest marketing slogan from Microsoft. Is there more to this than a spin on their technology or could this be more of a subtle hint, an invitation to go offshore?
But, let’s not read too much into the marketing slogan. Let’s look at the intrinsic characteristics of the .NET development environment. The .NET enviroment attempts to remove complexity out of the equation by removing choice. In the .NET environment there’s usually just one way of doing things, it may not necessary be the best, however for that one way, Microsoft has optimized that process.
Contrast this with a Java enviroment which oftens choice in almost every direction. Any neophyte will be bewildered by the vast amounts of options. That’s the down side, however the upside is the opportunity to develop more complex applications is much greater.
No vendor can anticipate all the requirements of its customers, that’s a clear fallicy, if it were true then why do we have a job programming at all? Even a behemoth like Microsoft isn’t even close to achieving this. The reality is most package solutions are incomplete and the opportunity for developing something new will always be there. That’s where Java and it huge open source base truly shines.
Microsoft however doesn’t have a large developer community that shares development know how and resources. That task is abdicated to Microsoft’s internal development organization. You don’t have to look far for evidence of the lack of external innovation. I for one haven’t seen a single innovative .NET open source project, everything all seems to be copies of what already exists in Java.
But I digress, offshore development work appears to be more conducive in Microsoft shops. This can’t be attributed to uniformity in applications, afterall Java has been around longer. Microsoft applications tend to still have a lot of legacy VB and COM artifacts. What makes it conducive for offshore development is the simplicity of the applications and the fact that rarely do they use technology outside that provided by Microsoft.
In the older days it was utterly complex with C, C++, VB all intermingly. However, with .NET it has become more uniform. I can’t think of a better application to offshore than one that is overly simple. One where soliciting customer requirements are a bare minimum, one where innovation in unnecessary.
In fact, porting to .NET is the ideal offshore job. The requirements are pretty stable, they’re already defined in the existing application. All one needs to do is provide an army of low cost laborers to do the porting work.
Is it any wonder that the Microsoft group, that built the Java to .NET converter (i.e. JLCA), is based in India and Costa Rica? I don’t know where the other Microsoft migration tools where developed, however I can bet you that Microsoft’s “center for excellence” in porting and migration is located in some offshore location.