Probably one of the most important things you can gain from an internship is learning that in the business world there is no such thing as purely technical problem. Becasue of that, what seem, to the idealist, to be the best solutions are not the ones the business chooses or needs. Nor should they be.
Things besides pure technology that have to be considered might include:
- Politics
- Delivery time
- Sophistication of the end user
- Ease of Use
- Ease of development
- Current technology stack
- Experience and capabilites of staff
- Likelihood of being able to hire people to maintain the system if the
orginal dev leaves
- Other systems it has to interface with
- Client technology stack
- Specific requests from the ultimate user of the product (if the
client tells you he wants in done in C# you better not deliver in
Java even if Java is better for this specific task)
- Business needs and specific requirements
- Deadlines
- Past experience (if you are suggesting using something that has caused problems in the past, then it may not now be considered because everyone remembers all too well the time XYZ done with the same technology brought down the production servers for days and how hard it was to clean up the resultant mess)
- Conservative attitudes
- Manager personalities
The relative importance of these various factors tied in with the actual technical capabilities will vary from project to project. It is the manager's job to consider these things when making decisions and because he is considering factors that you either didn't know about or care about is why the decision is not the one you wanted.
This is why your immediate boss didn't fight it because he understood that the higher ups are considering a broader range of things than you were. Also you have to understand there are times when you can fight decisions and times when it is not useful to fight them and your boss uses up some of his own power if he chooses to fight decisions made higher up and so he reserves that for times when the issue is truly important to him. The personal desires of an intern to use a different technology is probably not one of those times when he feels the issue is important enough.
Further the best time to present other ideas is before a decison is made. If you want to get effective at getting your ideas adopted, you need to be pushing your ideas as early in the process as possible and you need to be operating from a postion of strength (which generally an intern is not). You need to show the business reasons why your ideas will work. How do they relate in terms of money saved or profits earned or problems solved.
No one above the first line of supervision is going to want to hear why the technology of your idea is better, they want to know what the solution does for the business need. Learn to do decision analysis and cost benefit analysis. Learn that emotional arguments hold much more weight than purely logical ones and that emotional arguments disguised as logical ones are often the most effective. Then find a way to make sure you meet the emotional need of the decision makers in your presentations of possible solutions.
If you are still in school, then take a debate class. You will learn how to frame a successful argument to enable yourself to win out when solutions are being proposed. Of all the classes I took in college, debate turned out to be the most useful (with number theory a close second).
n+1vs.n+2andn+3? It makes the question far more difficult to read. Any chance you could [edit] your question to clarify who these people are in a slightly more understandable way? Thanks in advance! – jmac May 12 '14 at 05:04