

Ask HN: How can one deal with bad management? - bad_user

I'm working at a big and renowned software company, but I'm not living
in the USA, so my experience could be different from people working
there. After all, big companies only come in third-world countries for
cost-savings.  I also read pg's essays, which I liked, so I may be
influenced by his thinking.<p>I am a regular software developer, and I'm really passionate about my
work, that's why it hurts me to no end when I see decisions being made
that do not benefit the project. Some gripes include, but not limited
to:<p>* changing a good design with one that's not visually appealing, and
   is really confusing, because we had to make it look like it's part
   of the company's website<p>* to change the design, and to accomodate future changes, we are
   including external server-side files in our HTML, files that
   gathered a lot of cruft over the years, with bad coding practices
   (inline CSS/Javascript). We have to load them from external
   sources, such that when they change, it changes for us too.<p>* With our old design the main page had 100Kb, with 80Kb being cached
   static content. Now we have 1 MB of static files that do not have a
   cache header set, and a ton of inline code that adds an extra 300Kb
   to one request. And this is after we negotiated with the right
   department to slim down those files.<p>* we rewrote the administration interface because it was considered
   to have business value the usage of a certain technology,
   sacrificing months with code going down the drain.<p>* cool features that provided value to real users where pushed in
   favor of features that provided value to the upper-management. How
   useful is a statistics dashboard for a product that doesn't have a
   community yet?<p>* hacking on cool stuff is not encouraged. After all we have a
   release coming. No reason to waiste time on unplanned stuff.<p>* we had to negociate a period dedicated to increasing the quality of
   our infrastructure / code.<p>* we have been working for over a year and I would really be ashamed
   to place it on my resume: I really don't know on what we worked for
   the whole year.<p>* my manager has a certain mentality that I don't like: he says he
   trusts the upper management because they have more experience, he
   says that we don't know what customers want (where customers mean
   both real customers and the upper management). This one time, a "UX
   expert" placed a link totally random and out of place, and my
   manager agreed with the decision because the expert knew better.<p>* I have been practically forbidden to talk about these issues with
   the team members.<p>So part of the blame is that of our management. I have never seen a
"NO" answer given to any request. Not to mention that my manager is in
the habit of passing blame ... the milestone release went wront? No
problem, we can blame it on John from Sales because he was the one to
request a last minute feature.<p>I also have an annoying passive-aggressive attitude, and because I
care about the project more than I care about my job, I think I became
the whiner, the bad apple of our project. I hate myself for this, but
the morale of the team is really low, and I'm not alone in thinking
that every possible bad decision ever was already made, although the
others cope with it better.<p>Of course, I was blamed for affecting the team's morale, since I was
so straightforward and sincere about it. I do admit that sometimes my
words are not "politicaly correct", but this project is like my
child. And since feelings are involved it is really hard to be
"politically correct" and say things in a "nice way".<p>So how can one cope with bad management? Am I wrong to think like this?
======
SwellJoe
Fire them.

Life is short, and jobs exist elsewhere. If this one makes you unhappy, change
it. If you have a family to support, you obviously have less flexibility, and
will probably need to line something up before leaving the current position.

Of course, you may be too inexperienced to recognize the wisdom of some of
managements actions and decisions (and we can only see your side of it from
where we sit, so maybe we're missing that wisdom as well). Your application
may be a small piece of a very large puzzle, and the cost of making other
pieces fit what you're developing is far too high and the benefit too low.
Humans often consider the things they are familiar with to be far more
important in the grand scheme of things than the community as a whole does.
Where you see huge glaring problems, management may see something that
negatively affects only 5% of their users only once per month, while making
the sweeping changes required to implement your vision could potentially
effect all users 100% of the time.

Again, I dunno. I can only see what you've shown us of the picture.

As for this:

 _I also have an annoying passive-aggressive attitude, and because I care
about the project more than I care about my job, I think I became the whiner,
the bad apple of our project. I hate myself for this, but the morale of the
team is really low, and I'm not alone in thinking that every possible bad
decision ever was already made, although the others cope with it better.

Of course, I was blamed for affecting the team's morale, since I was so
straightforward and sincere about it. I do admit that sometimes my words are
not "politicaly correct", but this project is like my child. And since
feelings are involved it is really hard to be "politically correct" and say
things in a "nice way"._

This is a serious flaw on your side of the equation. The words "nice way"
should not be in quotes...and since you've put them in quotes, you make it
clear you hold them in the same disdain you hold "politically correct" (which
most folks do have a bit of scorn for, these days). But, basic civility in the
workplace is something that isn't optional.

Work on it. You cannot change things in your current state. Victims don't make
things better for anyone, including themselves...and though the situation may
not be your fault, if you want it to get better you'll have to take some
responsibility for making it better. Which could mean accepting that this is
not the company for you and moving on to another (maybe starting your own,
since we're on a startup-focused forum, and most of us think starting a
company is the only way for us to keep our sanity).

I've known several folks who quit their corporate job, and yet continued to
work on the same project as a contractor...making four times the money for the
same job, and able to come and go as they pleased. But, this requires
circumstances that probably don't match yours (project is vital to company,
employee is vital to project at least for the short term, and everybody still
likes employee when he announces his intention to leave--and he is able to
make a strong case that he's doing them a favor by staying on as a part-time
contractor for a few months while they transition in new people for the
project), and if you've given yourself a reputation for being difficult to
work with, you'll probably find they're not so eager to have you back.

In short, you can't change other people. They are out of your control. What
you can change: Your approach to working with those people, whether you work
with those people at all, and your own approach to the problems you perceive
that are making you unhappy.

If you can't change jobs, and you can't make this one a better fit by dealing
with people more diplomatically, the best you can do might be to simply view
your tasks in smaller, more humble, pieces. Instead of making the whole
application beautiful (and thus requiring buy in from every department and
uncooperative management)...make your little pieces beautiful...not visually,
if visual beauty requires going against management mandates (I think you'd be
surprised what you can do within such constraints--embrace the limitations and
try again--color scheme, logo at the top of the page, and type is probably all
that is really required to keep your bosses happy, but even if many things are
dictated by style guides and such, you can still build nicer look apps than
the standard by being simple, consistent, standards-compliant, and
accessible). Just make your code smaller, more concise, nicely commented,
well-tested, and reliable as hell. When you've done that, volunteer on any new
projects that come up that touch your code...and do the same. Eventually,
everything _you_ have to deal with is wonderful (or as wonderful as you're
capable of making it), and at some point you'll hopefully be happy enough to
not be a jackass to your co-workers, and they might even begin to appreciate
that you know better than they do on some things. You might just find yourself
in a project management role and able to make real changes (not likely, but
stranger things have happened). I can assure you that picking fights won't do
it, though.

~~~
bad_user
Thanks @SwellJoe,

This is the kind of advice I searched for. I actually feel like a jackass, but
I don't have experience which such conflicts and I let things get out of
control. I actually was under the impression that I could change things just
by pointing out the flaws. I was wrong of course.

Unfortunately I am the type of developer that's interested in multiple topics,
ranging from algorithms (parsers, data-mining, inductive reasoning), to
usability. And it sucks because I have opinions about everything.

Thanks,

------
maxklein
Learn this lesson very quickly: Do not complain! You care about what you do,
but think about your priorities. Really, think about them. You want to:

1\. Be happy 2\. Make money 3\. Be promoted

It's not a startup, so you are not trying to be ultra rich. Now, when you
complain you are first and foremost making yourself unhappy. That defeats the
purpose of working there. First rule is that you be happy. And the best way to
be happy is to ignore the bad stuff, focus on the good stuff and work on
making everyone else happy.

You guys may be producing terrible code at work, but imagine a workplace where
you are producing terrible code, but everyone is laughing and making jokes and
so on.

Refocus your energy on making you and everyone around you happy. Forget the
technology - let them make the decisions! That's what they are there for! Just
focus on making yourself happy and your team members happy.

When everyone is happy, morale goes back up, make your manager part of this
pleasant team. When people are laid back and relaxed, they are more likely to
do sensible things.

The minute negativity comes into the team, it's all going to go downwards. You
dislike your job, everyone gets infected by your dislike, and even if you win
the argument, you lose at life.

So, forget the technology and focus on the people.

~~~
oldgregg
This kind of hits it on the head because it begs the real question of how are
you fundamentally motivated? Art or Commerce? Or?

Most people are perfectly happy settling for commerce. :-/

~~~
maxklein
If one wants to create art, then one should be implementing ones own ideas. If
you are implementing someone elses ideas, you are a builder, not an architect.
A builder should do his job as best as he can, which is to make sure the thing
gets built according to the architects vision. He should not be challenging
the architect.

One really has to consider these issues. If you NEED to make art, then go do
your own stuff! If you are there to make money, then do the best job you can
for them, which means that you should not drag down the entire workplace.

And anyways, I would not waste a day of my time in a place where I could not
make myself happy. That's the most important focus - people have to make
themselves as happy as they can within the system. If you want to change the
world, then don't start by being a html programmer in a large company.

------
Harkins
Leave.

The bullet points all sound like typical developer gripes, except being
forbidden to talk to team members means one of two things: 1\. Management is
all messed up and is attacking 'troublemakers' instead of the problems. 2\.
Your coworkers have complained to management that you are a ball of negativity
that they don't want to hear.

Read the book "My Job Went To India". It's a great book for career planning
and it'll help you figure out whether you're in 1 or 2, I can't guess which.
If it's 1, you can't fix it, you need to find a company with a healthy
culture. If it's 2, you need to start fresh with a good attitude at a new
company.

Best of luck with your career.

~~~
swombat
_Leave._

And start your own company. It's easier than you think and you'll be a hundred
billion times happier.

And if it doesn't work out, well, you can always go back to a regular job...

~~~
hugh
Point of caution: _"Leave and start your own company"_ is exactly the same
advice you're always going to wind up getting on this site.

You'll get it in response to any question from "I think I have a great idea
for a company, and..." to "My coworker slurps his coffee" and "I can't decide
what colour tie to wear today".

That doesn't make it bad advice, of course.

~~~
swombat
I think you should leave YCNews and start your own company.

------
oldgregg
Aww man, you couldn't have described my situation any better. I came to the
decision it wasn't worth my time to try to make a difference (they didn't
really deserve the help anyway). I started working only hard enough to not get
fired while living like a miser and working crazy hours on my own projects. It
was really only a few months before I was ready to make the jump.

Unless it's a job you very deeply care about you probably need an exit
strategy. Both you and the world will benefit so much more if you're
passionate about your work. If squeezed, management will often make
concessions, but they almost never actually GET IT. If you choose to stay you
will go bat-shit crazy unless you just resign yourself.

Also, you mention you're passive-agressive and I'm right there with you... I'm
a type-B INTP. One thing I have really had to confront head on was that while
I do great work, I have a ton of fear and uncertainty about changing gears
because I'm simply not like the type-A jackass in management with more
confidence than brains. So everyday I have to confront that and just be
willing to live in place that feels uncomfortable and reckless.

------
ewoodh2o
Well I've got the viewpoint from the other side here. I work for a large
company in the US that has set up an office abroad for outsourcing some of the
engineering. (I'm actually planning to leave to start my own thing soon, but
that's a different story.)

I think points 1 through 7 you made are typical in any large company. I've
found that I've had to just pick a few things, and learn to ignore the rest.
It helps to have at least one higher-up who agrees with you...find that person
and get them to like you. It's probably better for your career not to be the
one who always complains and upsets people. This is pretty difficult when you
get attached to a project and think that the contributions of others are
making it worse, but you have to be diplomatic about it.

Your last two points are intriguing thought. I recently had to sit through a
training session on "How to work with India". It was chock full of ridiculous
generalizations, mixed in with a few useful comments on the cultural
differences. They have an equivalent "How to work with the US" class over
there and I'd love to sit through that one too.

However, the two things you mentioned echo a lot of my experience with our
foreign counterparts. I rarely get a "no" or any pushback, and I really wish I
did. Our management here relies on the low-level engineers to make the
implementation decisions. They, after all, are closest to the problem and have
the most information to base their decision upon. For some reason our
management here however treats our Indian counterparts as a black box project
factory - requirements go in, solution comes out, and there's little to no
feedback in between. The class we sat through made this out to be a cultural
difference, where it's disrespectful to disagree with a superior, and the
manager is always supposed to have all the answers. Maybe that is a cultural
difference, but it's not benefiting either party in the long-term. I tend to
think it's really because we've treated them as cut-rate engineers for so long
that it's now an ingrained behavior. Of course, if we didn't and instead
genuinely expected their productivity to match ours, then we'd have to pay
them a full engineer's salary and that sort of defeats the purpose. I'd love
to hear some comments on how this plays out at other companies...

In any case, it sounds like you're unhappy. In that sort of situation, your
output will eventually decline to average, at which point you're doing neither
them nor yourself a favor by staying. At a minimum you now know what to look
for when finding a new job. But if you take a job at another big company, know
that some of these issues will follow you there and you'll have to learn to
pick your battles. But if you can at least find a boss you respect (and get
him to respect you), it'll really help to mitigate the issues.

------
Protophore
I see a lot of bad behaviours on all sides here and have to agree with many of
the posters below that it may be time to jump ship to a different company. Or
if the company you work for is large enough you can transfer to a different
department, just get away from where you are now.

In regards to some of your points above, I think that it is often an issue
that changes are made by upper management or by someone in control/power that
do not make a lot of sense to everyone else. I'd suggest taking a positive and
proactive approach to this situation. You can begin by approaching the
individual responsible in a friendly manner and ask something along the lines
of, "It was interesting how you decided to do XYZ. I want to understand your
thinking here. Can you tell me why you decided to do that?" The basic idea is
to get them to open up to you. They may have a very good reason for their idea
that you aren't aware of. Maybe it will make perfect sense to you afterwards,
or maybe their idea is sound but how they implemented it does not make a lot
of sense, or could be improved. If the later is the case then you can work
with them to help improve it, maybe start with, "That's a really interesting
idea. Do you think that it would be helpful if we were to move the link over
here to make it more visible to users?" or something along those lines.

A good technique when you have to say something negative is to make a sandwich
out of it. Start with something positive, state your negative, and finish with
something positive.

Shame on your manager for passing blame. IT sends a bad message to everyone. A
good leader takes responsibility for their team work even if someone else
screwed up. If someone is going to get fired over it, then it's a slightly
different story, but for the most part a good manager is a shit shield for
their employees.

Passive-aggressive = bad, unhealthy attitude It will only cause problems and
you'll lose respect and friends Being a whiner= bad, you can "complain"
constructively so it doesn’t come across as whining. You'll get a lot more
accomplished and gain recognition/status in the process.

Decreasing team moral = bad. It's not always easy to say the right thing or be
"politically correct", but if you want to be a good team member you will need
to do so. You want to make change for the better, but you might be hindering
the change as much as anyone else. You can be "straightforward and sincere"
without bringing the team down.

This book might help you in learning to be a force of change in your company
while being positive at the same time: [http://www.amazon.com/Human-Factors-
Project-Management-Techn...](http://www.amazon.com/Human-Factors-Project-
Management-Techniques/dp/0787996297)

------
tptacek
I have two comments:

(1) Though you didn't say it, the comparison to startup life is always implied
here, so let's just be clear: most of these problems _do not_ go away at a
startup. The pressure to "just get things done" instead of "doing it right" is
greater when it's your own company on the line. GitHub, for instance, was
apparently bootstraped by shell-out'ing to the "git" command line tool.
_Shudder_.

Yes, you can mess around with aesthetics and hack on cool things without
getting yelled at your own company. But on the other hand, a lot of the time,
when you do that, you're killing your company. I might rather get bitched at.

(2) You seem to care about some unimportant things. For instance, the "visual
appeal" of your current app versus the company standard. Or the download
footprint of your Javascript libraries. Or the soundness of your company's UX
hired guns.

If you loved the app that you were working on, loved it for its own merits,
you wouldn't care about trivia. You sound bored. It doesn't sound like a
management problem. Maybe you just need to switch from payroll and pension
benefits management software to Flash games? You can do that; just be prepared
for the pay cut. Supply and demand, yo!

------
iigs
Sorry to hear about your situation.

I can't speak for the options available in your city / work pool, but it
sounds like you've gone about as far as this job will take you.

If you are perceived to have a bad attitude (regardless of your actual intent)
it is going to make your progress at the company difficult. Forget about
moving up, and expect your opinions to be ignored because you will be
perceived to be submarining the company. So much for that.

Brush up your resume (sad as this last year may seem) and consider what you
learned here and what you'd like to see in a future role. Cast the lessons you
learned in a positive light and try not to harbor any bitterness.

A former manager of mine (probably borrowed but) once said: "What do you get
when you don't get what you want? Experience."

A lot of the things you're seeing are realities of the business world.
Management doesn't outsource to overseas to argue with them, they just want
something done cheap. Your management may not be doing the most they can to
register their dissent, but it might be in the interest of saving their job,
not in some form of ignorance. This isn't specific to overseas/outsourcing
relationships, it's disappointigly common in conventional middle management,
as well.

If it's any consolation, not all places are like this. You may find you can
transfer to a better team within a company or may have to get a different job.
I was in a similar place once (twice, ugh) and it was a huge weight off of my
back when I got in to my new role where dissent is appreciated.

------
dannyr
I'm in the same situation but only until Friday!

I gave my 2-week notice last week.

My morale went down while working for the company. I have always been told no
on pretty much everything.

I'm unhappy. I told them about my situation but they never did anything.

For the past year, I hoped for things to change. But sometimes you have to be
realistic. Developers can do a lot of good things but fixing the management is
beyond what we can do.

All I can say is that you should leave too. Your morale or spirit is down
right now. Leave before you have none left.

------
known
1\. Buy shares of that company (ESOP ?).

You will automatically become co-owner of the company.

2\. Leading, Managing, and Administering are 3 different aspects. 3\. Change
your priorities: People First, Processes Second, and Technologies Third

You will automatically align with your management.

------
noodle
you are not wrong, and there are many companies that operate like this. it
sounds like you're in a service-oriented company, where the product is built
to fit the requirements of the customers. there are many companies that
operate like this. they're typically steady paychecks, but not engaging or
challenging jobs.

if you dislike whats happening, you're not going to change it, as the
atmosphere is typically a byproduct of management's direction for the company.
look for a job elsewhere.

------
kennyroo
In a big company, some problems can't be solved from the bottom up. Maybe you
should find a better place to work.

------
jcapote
Leave.

