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 manager, an enthusiastic programmer, is full of good energy to program. But he has a ... habit were he will be negligent in meetings if he can't understand the issue or argument. As a result, he screws up a couple of things.

For example:


When we were talking about the design process for REST web services, I suggested that we write down the specification of REST web services first and then start implementing.

He insisted that if we could use JAX-RS to implement the reusable component, then documentation for the specification would not be a priority. I said that reusable components would be a problem if we changed the specification of REST web service and tried to upgrade the systems which uses these components. He didn't understand or care what I was talking about.

After the JAX-RS API was released and used in other projects, he realized that something was wrong in design of the Java classes. He wanted to change the Java interface of the client API (annotated with JAX-RS) but didn't know how to upgrade systems that used it, so he decided to write a whole new API. The new API was a disaster because of lack of documentation and building with his intuition. Finally, the API of REST web service he finished did not correspond with the specification of REST web service on the server.

We modified our projects to use the new API. Our projects broke, we found the problems and he fixed them; end of story.


This may be a problem of communication (always communication), but he doesn't care about technical things that he is not familiar with - yet he used to write code intuitively.

Should I keep convincing him of better practices I am experienced with or just do my work? This is not an isolated incident.

share|improve this question

2 Answers 2

up vote 4 down vote accepted

I think you're right that its mostly a matter of communication. "Giving up" and just doing what you're told do is never a good thing, a little piece of your soul dies and motivation goes out the window. On the other hand, if you keep bashing your head against the same door over and over you'll also end up miserably, bitter and frustrated.

The trick is knowing what you can change, what you can't and how to convince someone of affecting that change. If someone has major ego issues and is simply stonewalling you there's little chance of breaking through, in those cases the best thing is to work around that person or look for a new job.

If someone is just a bit inexperienced or have some minor ego issues you can almost always work with them. First off make really sure you understand all aspects of their side of the story and make sure they understand that you understand it. This is most easily done by asking questions to sort out their viewpoint, distilling it down and repeating it back to them. "So if I understand you correctly you think it would be better to a and b because of c and d".

If there are some merits to their proposal do say so, then offer your opinion on alternatives. "Have you thought about doing c and d, do you think that would work?". It's always easier to work with someone than arguing directly against them. Finally if you can convince someone to switch to your viewpoint, try to work out a compromise: "Ok, let's do it your way, but perhaps we can also do x and y to be really sure of making work".

Sometimes something is so complicated that just discussing it isn't sufficient. To bone out cases like that it helps to try and write things down (but keep it as short and simple as possible). Then you can together go through that document and the different points. I someone doesn't understand us, it's our "fault" for not being able to explain it better. Simplify, use metaphors, whatever it takes :)

Sometimes issues are so complex that it's really hard to know which option really is best. In those cases it's better to just pick one than delaying to long, and then mitigate the downsides and be prepared to change direction if it ends up being a mistake.

Whatever you communicate the key is always to be sincere, humble of being wrong yourself, respecting the others opinion and trying to work together.

share|improve this answer
    
Thanks for your candid advice. It's helpful. –  Mike Lue Jul 8 '11 at 7:43

Perhaps you could just bring this up with him?

You dont need to have a formal meeting even you could just 'pleasantly' drop it in an email and ask could he be a bit more open to suggestions and give him the honest example from above as to why.

Then openly offer to discuss it with him if he thinks your being at all difficult or 'subordinate'. I use the last word as a joke, you can re-use it to perhaps take the edge of what is a potentially trickey situation/email.

I prefer the direct approach rather than trying to step around people. But be warned the direct approach has its -ves you can only do it a few times per job in my opinion. 90% people are okay you just get these odd few that need to be re-trained thats all.

Good luck!

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.