Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

We are working in a Java/.NET company and my team and I are planning a project for a client.

One of the requirements is that the project has to be done in .NET

I've asked about this requirement, and the client said that it doesn't matter, and that if I have a good reason we can use other technology. But, I have to justify the decision.

As a Project Manager / Analyst I'm interested in making the project in Java because:

  • The team knows java much better, regarding the language and frameworks
  • I don't know anything about .NET technology (and maybe we could make bad decisions thinking in a Java way to do things)
  • There are other people in company that have more skills in .NET but they have other projects with more priority.

For experience, I'm sure that if we use Java, the project will have much more quality. But this arguments could be weak from the client perspective.

How can I justify making the project in Java?

EDIT: I'm not asking if one technology is better than other. "It's not a technology war" question.

share|improve this question
19  
Well I think you did the answer in the question. You know that java is suited for the project and you team has better competancies in java, ths resulting in a better product and faster release for your customer. –  deadalnix Nov 16 '11 at 13:32
2  
Is your next project a web application? –  A.DIMO Nov 16 '11 at 13:59
    
You don't. All you can do is troll .NET engineers. –  Raynos Nov 16 '11 at 15:52
1  
+1 for mention "technology" instead of "programming language". And to consider all the "technology" or "framework", instead of just "programming language", its relevant to your question. –  umlcat Nov 16 '11 at 16:14
add comment

6 Answers

up vote 17 down vote accepted

Why is the argument that you'll produce a better quality product in Java weak?

Assuming that the technology you are familiar with can be used to (relatively) easily implement the solutions you require you should go with the technology you (as developers) know for several reasons:

  • You are more familiar with the libraries, frameworks and tools so you'll work faster.
  • You'll produce a higher quality product for the same reason and this will lead on to:
    • A more stable product therefore less support calls.
    • Easier development of enhancements

Conversely, using an unfamiliar technology will lead to the development

  • taking longer
  • be more likely to have errors and hence require more support
  • be harder to extend in the future

Obviously this only holds true if there is isn't a business case for using one technology rather than another. Such an case would be where the customer has the infrastructure and IT skills for .NET and not Java (or vice versa).

share|improve this answer
2  
+1: If the client doesn't care, then take the path of least resistance wrt skills. –  Steve Evers Nov 16 '11 at 14:26
    
@SnOrfus: I imagine the client must care to some degree, otherwise why mention .NET in the first place? Why allow a switch to Java but only with a "good" reason? –  FrustratedWithFormsDesigner Nov 16 '11 at 14:37
2  
@FrustratedWithFormsDesigner: I've previously seen those types of requirements being based marketing buzz or whatever their competition is using especially if they're not primarily a technology company. The "good" reason could easily be just some way of keeping control over the project, or they honestly want a backed up opinion because they don't know any better. When someone gives me any advice, I always ask why, unless I already trust them (ie. my sister the accountant usually doesn't need to explain herself). –  Steve Evers Nov 16 '11 at 14:48
    
I'm not sure I agree that this is always the case. Usually, yes, but always? What if the technology you are most comfortable with happens to be resistant, given the problem you're trying to solve? Say, creating a restful web service using WCF, for example. –  pdr Nov 16 '11 at 15:38
    
@pdr - you raise a good point. There is an implied "the technology you are most familiar with can solve the problem" here. I ought to make it explicit. –  ChrisF Nov 16 '11 at 15:58
add comment

I don't think there is a client on this planet who would consider quality to be a weak argument.

However, as a project manager / analyst, I don't really think you should be the one making this decision. Ask the team what they want to use and why -- make it clear that it has to be a reason that you can explain to the customer (i.e. something more beneficial to them than "I want .NET on my CV"). Autonomy is the number one motivator for software developers and allowing them to make technical choices is important. They're the ones most qualified to decide and they're the ones who will have to live with the decision.

If they have good reasons to choose .NET then let them. Your lack of knowledge of the technology is irrelevant. But it is more likely that they'll choose the one they're most comfortable with, which is a perfectly good reason to choose Java.

share|improve this answer
    
I agree, it's an architectural decision. He can have input however, from the business sides perspective. –  James Drinkard Nov 16 '11 at 13:48
    
@JamesDrinkard: Yes, everyone is entitled to input, and the project manager can certainly say things like "the most important thing to this customer is security|up-time|quality|flexibility|cost of hosting." And the development team should take that on-board. I'm talking about making the final decision. –  pdr Nov 16 '11 at 14:00
1  
@JamesDrinkard The Java vs. .NET choice is always an Architectural decision and sometimes a business decision. Case in point, I once developed client-server software for a client that already had production machines with IIS configured and hosting other .NET applications. The client had no in-house experience administering Java application servers thus the .NET platform was actually a business requirement. –  maple_shaft Nov 16 '11 at 14:14
add comment

I put myself in your shoes and I would definitely go for Java but as far as I understood, you already made the decision. your problem is how to explain the decision to the client. (correct me if I am wrong).

I would tell him/her/them that your team is more experienced in Java than in .Net.

Don't make a cheap marketing decision for one client and tell him/her/them that Java would suit better for that project because that would be a big lie. not because .Net is better than Java, because you are not experienced in .Net and don't know if it would suit well for this project or not.

share|improve this answer
    
(+1) @tugberk Agree. His subconscious already has a reason to choose one technology over the other, it just has to tell to his "concious" the reason, so he tell the customer;-) –  umlcat Nov 16 '11 at 16:11
add comment

Quick short answer:

Java is a good, stable, up to date, programming framework (technology), and we have years of experience with them. (You can say that to your customer)

Long, boring, descriptive, philosophical answer:

As mentioned in other posts, you already have the answer, your team have more experience in Java "technology" than ".NET" "technology".

Both technologies have good features, but, it requires time & skills to learn them. ".NET" have some enhanced features.

You cannot discard any of them for been "obsolete" or without "enough libraries", or "not supporting international languages", or other stuff.

Propose Java framework.

Nevertheless, You may consider to put some of your developers to practice with ".Net" with a "real world", not books, requirement.

For example, in some free time, let them make some forms or web pages that have identical purpouse, using a copy of the same D.B. Even, if its seems waste of time. This way, you'll be prepare when another customer arrive and want a similar app., but with ".NET"

Oracle, it starting to put Java on the track.

Just my 2 cheseburguers (2 cents).

share|improve this answer
    
"Oracle, it starting to put Java on the track." : you mean Oracle is promoting Java or the other way ? –  Matthieu Nov 30 '11 at 19:25
    
@Matthieu: I meant: Oracle seems to start promoting, and updating the Java Framework –  umlcat Nov 30 '11 at 20:03
add comment

I would rather answer, not as a programmer, but as a manager. I am responsible for a future within my department where development continues to be affordable and flexible.

I prefer Java, not because Java can work on multiple platforms (who actually migrates Java apps across platforms?) but because my developers (with Java as just one of the environments) can work across multiple platforms. I am much more concerned about nurturing developers with many skills who have an itch to learn technology.

If I buy .Net just because it lets me hire a cheap programmer or help me to stick with Windows (arguably easy to manage) then I lock my developer community to one platform. The only guaranteed future there is that Microsoft will find a way to change it and then charge me more for the privilege.

share|improve this answer
add comment

I am surprised no one has mentioned the cost. .net is going to cost client more for maintaining and buying the framework while Java is Free and platform independent. How much you argue - at the end JVM ships free with every OS and CLR does not.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.