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.

My question is simple. I'm a developer and work with another developer who's been here for many more years than I have. He has his opinion about implementing stuff; he's more of a do it yourself kind of person. I'm more of a let's not re-invent the wheel kind of person. Recently for example we had a big discussion about how I think we should move to the cloud and how he thinks that we should keep an in-house solution for our servers (to host our websites). Or how I think Java is better suited for what we need, but he likes PHP so that's what we have to use.

These are all arguments that people have on the web... some like the cloud, some don't... some like Java, some don't. And I'm totally ok with diverse opinion... however it's come to the point of being unproductive, and without a boss that knows about programming (our boss doesn't know anything about coding, he just manages us) that takes the position of making a decision, it's always a winner towards his opinion, because he's the more experienced developer... which I don't think is productive.

Did you ever confront such a team issue? What do you think I should do? What is the best way to create a productive environment?

share|improve this question

5 Answers 5

up vote 6 down vote accepted

Your boss needs to ultimately make the decision. If your boss makes the decision, then you'll have an environment that is more productive than the two of you pulling in different directions. Try to make your case to your boss by presenting evidence like articles and case studies that are similar to your situation. Invite your peer to do the same. Hopefully if your views will make you more productive, you should be able to find lots of articles, books, etc. to back you up. At the end of the day, your boss (technical or not) should trust the judgement of his employees that are in the trenches every day. So, research your point and have the three of you sit down and have an honest discussion on your views with the understanding you will both follow whatever your boss chooses (which will usually be whatever has the best ROI, which is almost always the most productive route).

share|improve this answer

From your description it seems like you can't change these conditions. What you can do however, is change your mindset. You have to use PHP, though you think Java would have been way better. Then make it awesome anyway. Take it as a challenge to become a better PHP programmer than you were before. Write idiomatic, reliable, good code. And don't think about how it would have been better in Java, because it doesn't matter.

If this frustrates you so much, try to talk to your manager. If he doesn't listen then start interviewing for other jobs.

share|improve this answer

I'm dealing with a similar situation. Having different opinions is normal and healthy.

however it's come to the point of being unproductive,

This isn't. First thing to do is identify why things are not being productive. Then fix it immediately.

Second, "switching to the cloud", "moving to Java"...these are big fundamental changes. I'm inclined to lean towards the "more experienced" developer here. But, this could very well be because you haven't explained to us why you feel these changes are necessary, productive, work for the team and are cost effective.

If you feel strongly about the need to switch, then take the time to plan it out. Then, explain it to the senior and get his thoughts. Also, whatever happens don't take your ideas personally. Think of them as "ideas" rather than "your ideas".

share|improve this answer

Most importantly, I believe you need to be able to talk about it, try to understand why a colleague has a certain opinion. Given that he is more experienced than you are, be very open to arguments he mentions and explicitly ask for them.

After discussing the subject and weighing the pros vs the cons, if you still feel your opinion is a better solution, try to explain in terms of its benefits why you prefer the other approach. At this point your boss should be able to join the conversation, as you talked through the problem enough to translate it into cost and time.

It's up to your boss whether such an investment/risk is a good idea, it's up to you to try to give good estimates and results of such a change.

Judging from your examples (cloud/PHP vs Java) those are issues which you probably can't just change overnight. Perhaps propose to use a new approach in a next separate solution as a tryout, instead of converting existing solutions.

share|improve this answer
    
Very few people are comfortable with large-scale change. If you're the one pushing it, you should have demonstrable proof that it's a sizable factor better than the current way of doing things. All the talk, articles, and handpicked expert opinions won't sway me a bit, but if you can measure how hard it is to make the change and what measurable benefits there are then I'm going to be far more receptive. –  Steve Jackson Apr 15 '11 at 16:05

There are always technical disagreements about the best way to proceed and always will be as long as there are multiple ways to do things (which is basically forever). You win some and you lose some, that's the nature of the game. When you lose, you need to lose gracefully, the time to argue is before the decision is made, not after.

If you always lose, you need to ask "What am I doing wrong?" You can't change them, you can only change yourself.

From what you said, it seems as if you need to first gain the trust of the boss before trying to suggest changes. You do this by producing good workable code using whatever he has decided you will use without complaining continually that you would rather use....You need to have a reputation both as a team player and someone who can be relied on to deliver the goods before anyone will take your suggestions seriously.

You have to understand that this is a business and using the newest latest fun thing is irrelevant when you suggest changes. There are real impacts to the existing code base in changing tools. There are real impacts to customers when things that used to work don't any longer because we decided to use a new tools and there are now new bugs. There are cost impacts in making these sorts of changes. Your manager cares about this more than he cares that you think using the cloud is a cool thing to do. You have to dig in do your research and show why it will be better in business not technical terms.

share|improve this answer

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.