.Net OR Java what technology projects you outsource
Does technology matter for making decision to whether outsource or not? Here I am referring technology to either .Net or Java.
Your views, experience please.
Good Answers (3)
Nick K.
Information Technology Executive
Best Answers in: Offshoring and Outsourcing (7), Software Development (4), Corporate Governance (1), Project Management (1), Small Business (1), Computers and Software (1)
In my experience outsourcing .NET projects nowadays is easier than Java projects; the main reason is that in Java there is always 10,000 ways to do achieve the same goal, many competing technologies, etc. while .NET provides a clearer path; a couple more reasons to consider - .NET dev tools are getting increasing better and Visual studio today replaces a whole bunch of tools you would need to assemble in order to run Java project, as well as a very reliable support infrastructure from Microsoft vs. several vendors + vast yet less reliable open source community. There is of course a price to pay – being locked in Windows as OS and semi-lock on MSSQL and plenty of other Java over .Net issues, but that has nothing to do with outsourcing.
Links:
Clarification added October 21, 2008:
i put a few more thoughts on the subject in my blog, see the link below
I do not believe the technology is relevant. What matters is whether you have the onshore staff to support an offshore development model. The biggest issue I have dealt with for an offshore development model, regardless of technology, is management over-head. Offshore development models tend to require higher management over-head and more detailed technical specifications. In an enterprise environment, time for detailed specifications and management is hard to come by. I have not been able to reliably outsource software architecture. The results have not been acceptable and always require re-work.
I have found the offshore models work best for operations and support roles. Roles where there are pre-defined steps and guidelines.
Dan M.
CEO and Chief Engineer at Liftoff Software
Best Answers in: Public Funding (1), Economics (1)
As far as outsourcing, the language shouldn't matter that much depending on your requirements. If this is just a short-term project that has a life cycle less than 5 years .Net or Java would be fine (depending on your requirements).
If you're looking to build a longer-term solution I'd go with Java. Only because Microsoft has a habit of abandoning support for languages every few years in an effort to force everyone to buy their latest offerings. How many companies are still using ActiveX or old-fashioned VisualBasic? Microsoft has made it clear that the future of their platform is in .Net... and/or Silverlight, and/or their new language, "M". See what I mean? Who knows what they're going to force everyone to switch to next?
Also, using .Net ties you to one platform: Microsoft Windows. You can use Mono on Unix systems for .Net but you'll never get the functionality of .Net on Windows (Microsoft did this intentionally).
With Java you can run your application on whatever platform you desire and have the ability to scale it up way beyond what Windows servers are capable of (if that's a concern). Also, if you're outsourcing development of a .Net application you can bet that the developers will want to use Microsoft-everything in your software to save time (they're all made to tie themselves together). It'll end up tied to Microsoft SQL server, Microsoft Office, and (lately) Sharepoint running on Windows servers with absolutely no option to ever migrate off of the platform.
Whatever you choose make sure that getting data OUT of your shiny new application is as easy as getting it in. You don't want to be stuck with a proprietary black box you'll have to reinvent in a few years.
-Dan McDougall
"'One tool to rule them all' was the governance policy of Mordor."
More Answers (4)
Allan K.
General Manager(Market Development, Sales, Technical Support Conduit) S. Korea at Unicoi Systems
I don't think it would matter at all.
Instead, one would need to think whether it's embedded system that is hard to outsource as a separate module or whether it's core logic that you might like to secure. If decision is made based on this, whether it's JAVA or .NET doesn't really matter.
Sean V.
Geek in a Suit: Creative Developer with Pragmatic Business Sense
Best Answers in: Equity Markets (1), Ethics (1), Enterprise Software (1), Software Development (1)
I agree, the platform is not a primary concern. Instead, I'd say the decision to outsource is best decided on three criteria:
1. The clarity of the business requirements - Ideally every development project would be well-defined, but projects at particular risk to scope creep can be expensive to outsource in both time and vendor relationships.
2. The expected revision schedule - Modifying code is expensive, even more so if performed by other than the original author(s). Clients have no control over the assignment or retention of development resources within contracted firms, creating a risk of business knowledge loss.
3. The relative balance of required business/system knowledge - If all the required knowledge is in-house, knowledge transfer takes time, and strictly in-house communication is probably more clear, open, and fluid. I would stress "relative," because outsourcing can create opportunities for better use of internal development resources, outsourcing the least specialized components. Finally, if there's limited knowledge in-house, such as would be required to extend a proprietary system, it can be more cost-effective to outsource development to system-specific experts than to develop the expertise in-house.
The last of these points, outsourcing components to niche firms for expertise you don't have the time or money to develop in-house, probably has the most compelling argument.
Thomas L.
CEO at Chestnut Street Group
Best Answers in: Software Development (2), Exporting/Importing (1), Offshoring and Outsourcing (1), Change Management (1), Commodity Markets (1), Computers and Software (1)
Not really.
It's more the business objectives thjat I take into consideration.
The technology does make difference...
If you use Windows as an OS then use .NET. If you ever need to integrate with Windows, MS Office, MS SQL Server, third-party software you will have more options and less problems .
The real question should be "Should I Outsource?"