Ask HN: Enterprise, what to do, when it sucks the life and fun out of you?

10 points by antocv ↗ HN
Seriously, you see in my profile I love GNU/Linux, it was just very fun to do, even Gentoo back in 2002 or something.

Now I am payed to work with Linux, to make some kind of distribution of it basically. And I hate it, I fucking hate it. Not Linux per se, just its not fun anymore. I think its because of all these managers running around taking really retarded decisions concerning the product, just playing politics, like house of cards style, and still manage to convince the higher leadership what we are doing is quality work. While I sit here and see the pile of shit the product is. We're too few developers who want to do the right thing, quality way, and now we're known as the complainers and obstructors of the project, and as over-engineers.

What to do?

18 comments

[ 2.4 ms ] story [ 65.9 ms ] thread
Well, you have 2 options (possibly 3!)

1. Get a new job doing something more to your taste. Easy if your skills, salary expectations and local job opportunities are compatible. Remember though it's a job, so it will always have some bad parts. Or do a startup if you don't have money worries.

2. Stay and do what you are told (with an occasional moan!) This is a pretty common scenario for a lot of people.

3. Try and change things. Slowly... This may require compromise and improving your communication and influencing skills to people who may not have technical knowledge but have some kind of power.

Good luck!

1. Don't quit immediately if you have choice, I will probably disagree with this.

2 and 3 is almost similar. Lots of us here try to build something cool, if you think your product will be loved by others stay there and just finish product, do not think about code, hardware spec and anything other than product, just build that product, make it work. Clients will not look at your code or how you designed your system, they will look for result, it works or not.

Just make it work and when others (especially management) are happy, tell them, hey guys because we had deadlines and other shit, we built product with shit design, let us work on it and fix it, otherwise when clients ask for improvement we will fail. when management is happy they will give you a time to fix shit.

I guess in every product there are lots of bugs and shit stuff inside, but they are selling and improving, as Donald Knuth said "Premature optimization is the root of all evil".

If it doesn't work than you can leave, just don't forget when deadlines are coming every "cool" startup, every "cool" hardware creates monkey patch, just to make it work and sell well.

No offense but you are expressing is what I hate the most

- "just get it done", "just make it work", cut corners, allow shit design

Its not going to lead to any product at all, its not bad low quality product, its shit noone would ever want to touch with a pole, hardly to pay for. Thats the state of the product.

In fact, what these managers and some developers do is generate more shit by taking more time, more unnecessary code and tools, and more resources involved, I think they hired this many people totally unnecessarily, like more than half could be fired and noone would notice.

"its not bad low quality product, its shit noone would ever want to touch with a pole, HARDLY TO PAY FOR" - then you got your answer, if you are doing thing which nobody needs or no one wants to pay for it, just leave. But consider the fact, you are tech-guy, for many tech-guys some products may seem useless, but there are lots of people who may pay for it and use it everyday. Saying "leave your job" is very easy, because as OP I am not leaving my job, you are going to leave. think about cases, eliminate best cases if they are unrealistic.

- best case: top management says: ok, seems you got it right, lets make product as this guy said.

- worst case: you leave your job

- something in the middle(1): you will make that shit happen, you get salary for it, if product fails you leave

- something in the middle(2): same with above, but you don't leave, you try to make product better

- something in the middle(3): you fight for better design, better product, present your arguments, show people that you know more about product, about market than any other managers, so they may consider your facts

Technical debt is difficult to measure, but this is a great way to accumulate a tremendous amount of it.

Engineering managers and product designers have nightmares about people who work this way.

"Engineering managers and product designers have nightmares about people who work this way." - exactly. but OP described his managers as opposite, either OP is not so smart and couldnt understand what and how they are building product or his engineering managers are not smart. In case of dummy managers, they have 2 options: (1)either they listen their engineers and talk with higher management about product and make it better (not the case with OP) or (2) their engineers create shit and fail product, then engineering managers will pay for it with their career. radical way, but someone should be blamed.
My brother knew a guy back in highschool who was of the genius kind. After graduating he went to become a pilot in command and succeeded being one of the best as the genius he was. He had a dream job and a dream pay yet he didn't like it so he searched for what he really wanted to do, deep down. He afterwards left his job and went to Scotland to herd sheeps. Never heard of him since, probably because he loves it and never came back.

You should do what you love, not what people want you to love.

Or be a willingful humble slave, the most wanted employee ever.

> You should do what you love, not what people want you to love.

While that part's very true, one should be wary about running off to herd sheep. It's really quite likely that your brother's acquaintance is nearly as unhappy in what he's doing now as he was then. Discontent has a way of following you around until you figure out the internal factors that drive it for you.

(comment deleted)
If work was non-stop fun, they wouldn't have to pay you to do it.

If your work is your whole life, then I would suggest moving somewhere where you are happier. If you work just as a means to live, then suck it up (assuming it's not completely toxic). It's work, not fun.

> If work was non-stop fun, they wouldn't have to pay you to do it.

My work's fun enough I do essentially the same thing in my free time. But if they didn't pay they wouldn't profit from the work I do for them. What they're buying is the ability to impose scarcity.

Your problem is that you are thinking too much. You have a job, a lot of people just don't have any.

Stop being too worried about the possibility to fail because, 1) this don't helps you and 2) sad news, you can't control all aspects of this. Some crap software sold millions, enough money to became a very good software in the next versions; some very good software instead was largely ignored because, bad luck. Maybe they were not enough smart to sell himselves, or they were too smart to be understood, or they think that their good software was unfinished or a crap and give up... maybe

If the product that you are creating is "a pile of shit", just pick up a shovel and make a better product, step by step; Just make it slightly better that the other piles of shit out there.

And, for Pete's sake, you are being paid!. Learn how to spend your money in creative ways.

You are tired? Ask someone to give you a massage. You are boored?. Just have some fun with your money. Try a new sport. Do something that you never did before. The planet will not explode if you just have some fun this weekend.

This isn't advice per se, but rather a slightly different perspective.

The frustration and friction between technical staff and management staff that you describe is reality in every company that I have worked, from 50 employees to 50,000 employees. I hear that some new engineering-driven company cultures (Spotify, Zappos) are different, but I think those companies are extremely few and far between.

I am a software engineer by training and hobby, and a Director of IT by profession. One of my teams that is responsible for some Linux sys admin and some web programming is led by a very diligent and smart manager, who happens to have comparatively little technical knowledge. When I first started overseeing the team, there were occasional flair-ups between some engineers and the non-technical manager, which made both sides miserable. Since intervening a few times and employing a specific tactic, things have become noticeably better.

First, here’s what I have observed that leads to manager/engineer friction, and if not addressed, eventual misery.

Generally speaking and in my experience, engineers want to create things that are engineered beautifully: robust, elegant, simple, extensible, and easy to maintain. That takes time, patience, care, and hard work. To be asked to call a half-finished project good enough, or worse, to throw things out and consider all of the invested time as wasted, is naturally infuriating to anyone, but engineers are asked to do these two things more often than most other professions, in my experience.

Managers are paid to make sure what is being done is in the best interest of the organization, which has financial obligations to maintain. Many organizations are just squeaking by financially; they don't have the luxury of taking the care and patience that most engineers want to put in, and it’s managers’ jobs to find the right balance between good technical solutions and good business. The results of those decisions are messy, and rarely will management and the technical staff see things eye-to-eye.

These different perspectives and different motivations lead to friction, but poor communication exacerbates it. Managers have their own language, which has been parodied all over (drill down, actionable, win-win, ROI, etc.) and engineers have their own language (insert programming jargon and/or tech acronym soup here) that has been similarly parodied, and the two don’t overlap much.

When this happened on my team, I took a lot of time to talk to everyone involved about what was going on. Since I speak both manager-speak, and engineer-speak, I pretty quickly understood that what both were saying was reasonable. They just didn’t have a good understanding of what pressures and job-realities the other was dealing with, and didn’t have a common vocabulary to communicate their respective frustrations and challenges.

To smooth over the fraying relations on my team, I sat down with the engineering staff, and the manager, first separately, and then together. To the engineers I explained the goals and motivations of the manager, what pressure he/she was receiving from me, and what pressure I was receiving from the CIO and CEO. To the manager, I explained the realities that the technical team was dealing with – the occasional unknowns of software engineering, and how estimates can be dramatically off in ways that is not incompetence or malice, but merely unforeseen technical compilations.

Over time, I was able to teach the two factions to understand each other a little better. I asked them each to over-explain problems to one other, in simplified (shared) terminology, rather than throwing up their hands at what they thought were unreasonable demands or seemingly insubordinate responses. Over time, they have come to realize that the other group isn’t malicious or incompetent, but merely functions very differently from themselves. They trust each other a little more now, so when the engineers say something will take a week, the manager trusts them and doesn’...

That's a great writeup, thanks!

Would you mind putting some contact info here (or in your profile - email address you provide for registration is not shown publicly)?

Best way to reach me is tchad@me.com Alternately, linkedin.com/in/tchadrogers
I can lose passion for a task when i'm not solving genuine problems, sometimes it seems like i'm just shuffling bits/paper from pile A back to pile B. He're my 2 bits:

Connect: - Conferences & online - hey wanna talk product ideas? - i'm game? email me at [uname} at g mail

Teach: - I love teaching what I know. Got no one?

Give: - Figure out what your friends want, help them get there: promotion, skills, pay?

Learn something new: - For me, I restarted my flight training and picked up my daughters guitar.