There are three ‘platforms’ for building corporate applications today: J2EE, Microsoft.NET and the ‘Open Source’ platform. In the later I also include Java software that is not J2EE like Struts, WebWork, Hibernate, Castor….a big oil company and an airline company. Both have J2EE as their standard platform….Slow moving is not a problem for most corporations. They usually move slowly, and they feel comfortable with ‘designed by committee’ technologies, so J2EE has a good value proposition for them….
via [Andres Aguiar’s Weblog]
Andres does a good job articulating one aspect of a fundamental tension in corporate software development — the processes by which software development is done today are known to be inefficient and expensive, but they’re known and therefore somewhat controllable. Many corporations would prefer to budget $100 believing it’s +- $10 rather than $80 that’s +- $25. In no small part this is because for 40 years, they’ve been told that new processes “cut development costs in half” or even “by a factor of 10.” I estimate the overall productivity advantage of .NET versus J2EE above 10% and less than 20%, which is tremendous, but a MS reviewer criticized comments to that effect in Thinking in C# as “overly cynical and detracts from the author being viewed as the authority on the subject.”
These are the numbers that Microsoft uses in their own VS.NET 2003 ROI calculator: Unified IDE +10% productivity. Drag-and-drop server components: +10% productivity. OOP: +10% productivity. Debugger improvements: -20% debugging time. Improved test scripting: +8% test productivity. Web forms designer: +25% Web UI productivity. Dynamic help: 24 hours per developer per year. Even if you accept these numbers, (–25% debugging time? Hah! Advanced debugger features have minimal impact on the overall time spent correcting defects!), how in the world can you argue the tools give you >20% productivity over J2EE using, say, IDEA and jUnit? It’s just not true.