views:

489

answers:

16

How do you manage not being able to do what you what to do or feel is the right approach to something? Have you ever been in a situation where you are told to "follow the spec" even though there is a blatant issue (design, UI, performance, etc.) with it? Have you ever looked at a problem and recommended a technology that would solve it quicker than traditional methods only to be told you can't?

Admittingly, we're never right all of the time; however, so many things in this career is based experiencing different ways of thinking or processes. How do you manage when you are confronted with such a formidable wall that can stifle creativity and passion?

+13  A: 

If you want to stay employed, you'll pick your battles and choose which ones are worth fighting. Given a firm answer of what you're instructed to do, you should do it.

If the pattern is that one is consistently told to do the "wrong" thing, at some point you'll have to evaluate the positives of the job and decide if it's a good long term position. If you're consistently unhappy with restrictions being placed upon you, it might be time to seek a new employer.

ahockley
+14  A: 
  1. Document very clearly why you believe the decision is wrong, including the negative outcomes you foresee if the "wrong" decision is taken.
  2. Work out who you need to persuade. This isn't always obvious.
  3. Try your hardest to persuade those people, but maintain a professional attitude and keep your temper.
  4. Once the argument is done, don't dwell on it. Get on with implementing what has been decided, whether that's your personal decision or not.
  5. Make sure you keep hold of the documentation you wrote in step 1, so that if your predictions are accurate, no-one can claim you didn't warn them.

In addition, if there are legal/ethical questions, research your company's whistle-blowing policy.

Jon Skeet
Don't bother whistle blowing. No mater how good the policies and legal protection is it's never a good thing for the whistle blower. The only time I'd consider being hoisted on that petard is (perhaps) as a sacrifice for the common good.
CodeSlave
It would depend on the exact situation, and how clear-cut it was. In some cases if I felt strongly I'd just make my case to management and then resign. In more serious cases I see nothing wrong with taking it as far as possible.
Jon Skeet
A: 

Look for a new job at a company that has opportunities for advancement and career change.

Elie
A: 

Unfortunately, most work environments frown on murder. In many cases it's quite illegal. It's really a shame, because selectively applied violence can be a great stress-reliever.

Dave
See the first quote from Mr. Burns here: http://www.simpsoncrazy.com/downloads/sounds.shtml
Bill Karwin
+5  A: 

If it is your project, you can do what you wish, but when working for others, you have respect their desires.

I'll argue against a decision, but one the choice has been made, move on. Life is too short to worry about what might have been.

While not want to push religion, Saint Augustine comes to mind (my paraphrased version);

Grant me the courage to change what I can change, grant me the grace to accept what I cannot change, Grant me the wisdom to know the difference.

Jim C
A: 

It depends on the reasons for the decisions. If you're in a big company then a new funky tech might just be too hard to roll out across all the platforms, departments, time-zones and while you might know it inside out, your dozens/hundreds/thousands of colleagues might not be as up to date. Also, given enterprise level testing and licensing, a cool tool to get that job done might not scale.

If it's a small company and it's your boss giving you a parental "because I said so ..." then yes, maybe it's time to hit the jobs ads ... or maybe set up in competition. After all, you know you can do it better than them ...

Unsliced
+8  A: 

The answer comes in the form of an e-mail

Dear Project Manager/Sponsor,

As per our conversation on 1970/01/01, I identified the following issue:

    blah blah blah (short, polite, and non confrontational) blah blah 

It is my understanding that you would like me to proceed as originally 
specified.

If this is incorrect or you need further explanation, please contact me.

Random J. Programmer

Now you've covered your butt, and you can get on with your day. "Captain, I understand your order is to sail the ship all a head full across the reef and then beach it. Aye Aye"

CodeSlave
I think this comes across as arrogant and difficult. Better to silently keep a record of what occurred, just in case it comes back to bite you. No need to be confrontational about it unless you get blamed later on.
Draemon
Upvoted. You can your best to educate and persuade, but in the end, you have to follow orders. Just make sure you have a record of it, so that whatever hits the fan does not land on you.
MrZebra
Draemon - as I said in my original post... "short, polite, and non confrontational"
CodeSlave
+2  A: 

The first thing is always to check your own work and assumptions. I assume you've done this.

The best you can do is to make your objections known, whether or not they're listened to - and make sure they're documented, so that if someone decides to blame you for the result, you have a "Get Out of Jail Free" card.

If you're freelance and not on the edge of starvation, you may also have the option of simply not taking the job.

If not doing the job isn't an option, I've had some success with simply reminding myself that I'm paid by the hour, and I'm paid the same whether what I'm doing is a good idea or not. I give my best advice and my best work always, but in the end it's the client who decides my work priorities, whatever that means for them.

Finally, if these issues come up frequently, you might start looking for clients or a workplace more compatible with your style of work, or that values higher quality work, or otherwise doesn't have this issue. (This new work will have its own issues, but some issues are easier than others.)

bradheintz
+2  A: 

Are you one of multiple developers, or a one-person team? If you solicit the support of your peers and show that there are multiple people who see the shortcomings of a proposed solution, it does bring more merit to the argument.

The specification owner is often very defensive of his or her thought process, and sadly there is a lot of the "what does a developer know about this?" kind of attitude in a lot of workplaces. It is a fine balancing act to provide a compelling argument while not being the squeaky wheel.

joseph.ferris
A: 

I've only ever been in such a situation once, fortunately. And back then I was just starting at my second job and had pretty close to zero real-world experience.

Back then I just thought "Well, those who manage the project heard my objections and decided to go on anyway. They probably know better, I'll just do my part." I had to leave the company (for unrelated reasons) and when I came back one year later to check on the project it was gone.

I learned a lot from that. Among others that it's not wrong to voice objections and possibly defend them, when they are discarded. And that helped a lot.

Joachim Sauer
+1  A: 

I take a methodical approach to this problem. The first step is to approach the source of the problem in a private setting. I often find that getting someone alone and out of the standard meeting environment really allows them to relax and consider alternative solutions. Usually a private meeting allows me to resolve the issue

If that doesn't work, I spend a bit of private time getting a really good argument against the design I'm facing. I tend to focus on the negative portions of the design. I present, in a private meeting, where the design can and will go wrong in a normal case.

If that also doesn't work, then comes prototyping. This I consider a last resort and only if I feel deep within my bones that something is wrong. Namely because it takes a bit of time. I prototype my way vs. their way and present the results.

If that doesn't work, suck it up and do the design. But leave yourself a quick way back to your route in case it fails

JaredPar
+3  A: 

The professional will try to get management to pursue the best alternative. However, once a decision is made, a professional accepts that decision and does his or her best to implement it. To do anything less is childish and results in loss of employment. The boss has the right to decide and, as long as what your boss tells you to do is not illegal, you have an obligation as an employee to do it.

A professional doesn't need to be motivated to do work he or she isn't crazy about. A professional recognizes that all jobs have some work that isn't fun and yet must be done and does it anyway. You are paid to do those tasks, you shouldn't need to be "motivated" to do them.

If too many decisions seem to be poorly thought out, it might be time to move on to a place that suits you better. But there will never be workplace where you won't have to do tasks you don't think need to be done or that you think should be done a different way. And frankly, much of the time the decision may be based on factors that you are unaware of and once you consider those factors, it may be the correct one. Developers tend to want to do what is new and interesting, businesses tend to need what will work with existing systems and at the least cost.

HLGEM
A: 

No matter what position you have in an organization there is always some aspect of what you do that is under your direct control. If you focus on the areas where you do have influence and try to disregard everything that is not under your control I believe that the areas that you can influence will grow almost automatically. Try to always do the very best inside your area of control and avoid remarking on decisions by managers that you can't change anyway. This is not always easy but I truly believe that it works if applied.

Of course, if you feel that every day of every week is a loosing battle then perhaps looking for a new challenge is a good idea. This doesn't always have to mean a new employer but perhaps a new role or a new part of the organization is enough, I'm sure your manager is interested in placing you where you can create the most value for the company.

Carl Serrander
+1  A: 

Remember that often there is more than one acceptable way to do things. Each with pros and cons, and weighing these up is down to the project leader. Obviously your input should be taken seriously, but in some cases he may have a different evaluation.

It may be that he's not wrong - but he's explained his position poorly. If you go about documenting the problem you may just discover why he thought differently.

Of course, he may be totally wrong, and you may be totally right. This shouldn't matter. If you've raised your concerns and he's made a bad decision, the buck should stop with him. Of course, keeping some documentation will be useful in case he decides to use you as a scapegoat.

As for working with the decision - I think it's a matter of accepting that you're not in a position to change it, and then try to assume the mindset that you're working within immovable constraints rather than imposed limitations. Think of it as if it were a limitation of the language you're using, or legacy toolkit. Whatever stops it being personal, and lets you find the best solution for the code you're writing without getting lazy and blaming everything on his poor decision.

It does take discipline, but it will come back to bite you if you can't work well within set parameters.

Draemon
+1  A: 

I usually take the "following orders" approach for most of the work I do. If it is specified to do a certain way, then while I may object to it initially, I may be overruled and then just accept what has to be done and do it.

I have worked at places where my suggestions were routinely shot down and even had to roll back code that re-introduced bugs into the system because my code change couldn't be properly tested in the time for the release. I remember saying this in an interview and having the interviewer almost go, "WTF?" on it since it seemed like a stupid thing to do. Of course after getting shot down a few times, I lost some of my motivation to do good work and eventually moved onto another better work environment.

JB King
+1  A: 

Learn to become a better communicator. Ultimately every business is driven by a want of cash. If you have ideas that you are sure will help generate revenue or reduce expenses why would they be ignored?

Your boss wants to look good. He'd love to be able to tell everyone how much money he saved/made for the company.

Your leads would love to do things in ways that will improve their quality of life.

So why are people not listening when it's so obvious that they need to change? Most likely because you've only convinced yourself and no one else.

Try looking into how to make a business case for the changes you're really passionate about. If you need help go to one of those spec wielding managers and tell them you see problem x, y, and z and that your tool will resolve that. Ask them what you would need to do to prove your case to them. Ask people what they'd need to see in order to make the changes. It might help.

Justin Bozonier