Currently, I am facing a very strange condition. I am working on a particular project and for particular task and for overall project I feel that Java would be the best option but as company has major expertise with PHP they want to use PHP as compared to Java, if you were in my shoe how would you deal with this situation.
views:
108answers:
7Here is my two-cent-
It is best to stay with what you know and build upon it. However, dump it completely only if you are 100% sure that the new technology meets you needs fully, you have the resources to use it (funds for tutorials, time to learn the quirks, hardware etc) and people willing to switch to the new technology (aka your "alpha-developers" want the switch). Otherwise, you may be in for a war which you cannot win.
If PHP is wholly inappropriate, fight to use the right tool.
If Java just seems to be "a better fit", don't saddle the organization with unfamiliar technology that will annoy maintenance programmers.
Your question really needs some more specifics, but the above is the general rule I'd follow.
Does your language choice affect your customers? No - what affects them is your ability to deliver effectively and quickly and both effectiveness and speed are enhanced by using tools that the company is familiar with.
Let's face it - if Facebook can be done in PHP, then your project can be done in PHP.
This is what we do in our company. Before selecting a technology, we sit down and do a SWOT analysis on the factors contributing to the decision.
Its important to have developers , management, marketing and various other important people contribute to the SWOT table. We normally put the document on a server and encourage everyone to write down their opinions.
Only then, decide on which technology to use.
Make the process as transparent as possible. This way stakeholders in the development wont feel that their opinions don't matter and everyone else is stupid.
If you really think that Java would be much better (due to Java matching up well with the application domain, or the number of libraries available, or other concrete advantages provided by the language), then I would suggest first making an estimate of the cost of everyone switching to Java. All costs should be considered, such as time for people learning Java or brushing up on it, any license or support costs for servers. Then try to estimate short-term cost benefits of taking the language, such as simplified maintenance requiring less hours, time saved by using Java libraries, time saved in refactoring by using strong typing, etc. And see if it makes sense to switch for this app.
If you're planning the future design and development of many applications for a company, it is sometimes worth it to consider switching even if the short-term cost is higher than the short-term benefit. You'd have to consider what things are going to be like in 5 years, and what advantages and disadvantages each approach would have as the code base grows.
And of course, it could be possible to mix and match as well, but it requires the company to have more knowledge to keep everything working, which adds to cost.
So far it sounds like there is a good business case for using PHP. If you think that Java should be used, then you must provide evidence that Java development would be cheaper for this project in some way, either at development time or at maintenance time. Or you need to provide evidence that using PHP increases certain risks to an unacceptable level, in this case, the risks need to have a cost associated with them, i.e. x dollars to fix problem or x dollars lost down the drain.
Without a business case, you will never convince management. And managers are real good at telling when someone just makes up some big numbers. If the real answer boils down to that you just don't like to program in PHP, perhaps you are in the wrong job.
The decision should be based wholly on ROI. But, there are many angles to what that means from a personal and professional perspective. You're paid to do what's in the best interests of the company, but not if they are against your own perhaps. You need to be able to argue that there are benefits to the toolchain and language capabilities that places Java far above those of PHP. You must also prove that the ongoing cost of maintaining and diagnosing issues with a well designed Java app are lower than those of a PHP app.
If you can't make these assertions honestly, which doesn't sound likely if they are a strong PHP house, then you probably shouldn't opt for Java anyway.
You should probably not point out to them that doing Java over PHP will improve the value of your resume. :P