Hacker Read top | best | new | newcomments | leaders | about | bookmarklet login

As a general rule, if a work task lands on your desk that involves working with a IBM/Oracle/SAP product, preemptively apologize to those regularly around you for your miserable attitude in the near future.


sort by: page size:

Sad that you have to apologize.

Even sadder that your employer doesn't see things any other way. In fact, you should be happy that you are not employed by people who easily fall to emotional terrorism. Might have been a great coding job but it's better to work with people who think like you and not just code like you.


Obviously "apologized for coming off as pushy" would have been better, yes, but it's not just the maintainers who are human: turns out IBM engineers are also human. It's a simple question that can have a simple answer; there's no reason to not give it, really.

> "rewarding" their behaviour (in their eyes at least)

You must, in your own mind, depersonalize the requests and translate them into polite-speak. You know better than I that people who complain about software are usually unaware and frustrated. If they knew the whole picture and hadn't just encountered limitations in the software, maybe they'd be nicer.

The risk is that your resentment could lead to wanting to delay an improvement just because you want to disincentivize toxic demands.


> Don't be afraid to tell us when you make a mistake. We all remember our first screw up and will be happy to help.

This is very much dependent on the circumstances - sometimes people won't be supportive or encouraging, but cold at best and toxic (rude, making fun of mistakes, letting their egos run wild) at worst. This is more likely to happen in some work cultures/companies than others, and there can also be individuals that are allowed to persist with their problematic conduct in otherwise okay environments.

If you are ever in such environments, acknowledge the fact, possibly push back against stuff like that and definitely be on the lookout for alternatives, where you'd be able to prosper.

Thankfully, my personal experiences have mostly been okay, but I've definitely seen both attitudes and choices that can make everyone's lives worse, to the point where I wrote the satirical article "The Unethical Developer's Guide to Personal Success": https://blog.kronis.dev/articles/the-unethical-developers-gu...


As a software engineer in the current market you have the luxury of not dealing with such people, so don't.

Hi,

I'm wondering how you manage to stay nice and humble when faced with a contractor who makes terrible solutions?

In general I'm overly negative. Especially when the contractor is big, and when I feel I could make a 10x solution if I was just given the time?

Also I'm terribly negative to companies like IBM and Microsoft. Especially since my Outlook crashes multiple times a day (seg fault).

How do manage to continue to be a "nice person" in such situations?

EDIT: To be clear. These are software vendors/contractors delivering off the shelf solutions and custom solutions that I feel would have given very low grades if delivered at college/uni.


i'm a pretty mild mannered personality, very reluctant to get angry with other people. i try to be diplomatic with people, at least, in person.

one of my worst experiences working on a dev team was checking in code that broke the build. the alpha came into my office and got quite angry with me. it left new emotional wounds and reopened old wounds. it didn't help me become a better programmer, just more fearful and stressed. i've reflected many times on how that message could have been conveyed better.

multiple years later, a manager i was working for decided he needed to start writing code and he checked in something that broke the build i was working on. of course, now that the shoe was on the other foot, what do you think i did? i reacted angrily! (lucky for me, he's a good guy with a lot of class and didn't just fire me on the spot. he didn't even react in a negative way.)

the lesson i learned is that i need to become classier. still working on that ...


The people who have to deal with your software when it's bad are more than willing to talk to you. However, if you make it super hard or ignore them when it's not flattering or doesn't match up with your plan.. you get what you deserve.

I agree with a lot of your points, but it's important to note that being direct is not a free pass for being an asshole.

For example: if Bob sucks at SQL, and that happens to be one of your strengths, don't say stuff like "Man, these SQL scripts are trash" or "Dude, your SQL is ass, let me write it" - instead, something like "Hey, I noticed our db code is looking pretty rough, do you want some help cleaning things up?".


I’ll start out by making my position clear: I have a strong aversion to software engineers like you, and I consider software engineers like you to be toxic people who are a drain on organisations. Anyway…

If you approach work as a zero sum game that you’re participating in against your co-workers then you’ll be deeply unhappy wherever you go, and you’ll be a toxic force in the workplace. Work is collaborative, work has a purpose, work is about contributing to the greater good, work is more than the sum of its parts, work is about creating value.

There’s no shame in being someone who doesn’t work well with others, and you’re under no obligation to change, but it’s your responsibility to find an environment where you’re either a positive or at worst, a neutral force. Choosing to work in jobs that make you deeply unhappy is irresponsible and unfair on those around you. If you find working with product managers to be a miserable experience filled with frustration and resentment, then the responsible thing to do is to remove yourself from that situation. Find a job within a company that uses a structure that’s a better fit for you, don’t drag people down.

I won’t preach to you about how important collaboration is, or how much you’re missing out on by operating with this toxic attitude, but I will say that the problems you’re facing have nothing to do with software engineering or product management, they’re human problems.

Running your own software consultancy can be an amazing and rewarding experience that presents new opportunities for growth and new intellectually-stimulating challenges, it’s an experience you may love, but it’s absolutely crucial to understand that human interaction scales with responsibility, and running your own company (even with just yourself) has a lot of responsibility.

I think your final paragraph shows that deep down you know that you’re the cause of these challenges at work. Maybe the problem isn’t work related at all, maybe the frustration at work is a symptom of the real problem, like being unhappy in yourself, maybe the solution is actually therapy or maybe you’re burned out and need a break.

Ultimately, as software engineers, we are very privileged to earn great money and have far more respect / autonomy / trust than most others in the workplace, and so the ball is in your court. If you think your co-workers are the problem, quit. Don’t waste your life stewing in misery, you’re better than that.


I would argue that the best course of action (in general) is to not use your emotions at work. Software development as an engineering discipline is best done in a dispassionate state. I can logically defend the decisions that I've made (and learned from the wrong ones).

Since you've been working for many years, practice this exercise when you start feeling angry - think of a time in the past where you were also angry and think of the outcome of that episode. You'll find that the emotion really doesn't help the situation and have to assume that it won't help the current situation either.

I'm not saying that you should be a Borg at work - it's good to feel emotions. But you're going overboard and eventually it will harm you (or already has).


I am extremely resentful. I wasted 15 years in a line of work stuffed with mostly unqualified entitled people that whine about unnecessary conveniences instead of maturing to any true potential. The blame can be directed in any direction, but it’s water under the bridge and I have moved on.

Look, software has a very real people problem. Mike Judge (Beavis and Butthead) thought as much when he wrote Office Space. If you to see how widely this is viewed by other senior developers read the comments in this other recent thread.

https://news.ycombinator.com/item?id=38958789


The computing industry is quite unique in that we are so arrogant that we tend to tell everybody else how they should be doing their job, and then add insult to injury by blaming the users for the systems shortcomings.

The title could easily be My experience at a software firm. No large organization are without more than a few assholes

In software development? Anger will consume you 80%

There are a few things you can do to get over toxic behavior partially, but it is tough to do completely; it's a one-day-at-a-time thing.

I've been through plenty of rough spots, and the best thing to do is to take care of yourself (talk to doc or dentist about sleep apnea, lose weight through exercise, get a checkup, etc.) and change your attitude. The latter is tough, so I'll focus on that:

Many of us got into development or IT because we love technology, and we love technology because it can really help people and it can be done correctly- just humming along in the background enabling everything, or providing extremely cool things that we help create or setup. But then, you throw in people.

People are great. People manipulated silicon, germanium, copper, plastic, etc. People came up with logic, operating systems, applications, and art. People really come up with some great shit. But people also do things that are at odds with the research, development, and running of all of that beautiful tech. It doesn't matter what role they have or how smart they are, at some point, almost every person has screwed something up in the mind of someone else. They might have great motivations, too- really admirable! They might want to save costs to help the companies grow and provide jobs and a bigger paycheck for their families. They might be complete morons, but are probably doing the best they can.

In the end, it is important that we try to work with all of these people. We can't hope to fully understand motivations of people and manipulating them for our own ends is probably not a good idea. We can only do our best to work with each other to accomplish what we hope is great and do it while helping each other and everything around us.

So, what do you do? Realize how lucky you are to be where you are and have what you have. See how you could help others, whether it is in a different place in the world or right there in your workplace. Understand that it's not just about you, or the people you help, but there is something much bigger going on, and we are only a small part of it. We don't have control over everything, but we do have control over ourselves. Just do your best each and every day with the gifts you were given.


Also, make sure to read tons about how programmers feel about business guys / managers, and figure out how not to be like those people. There's tons of advice out there, and there may even be some good advice in the most offensive rants. Read those rants, feel the pain of those programmers, and see the opportunity to improve yourself so you don't inflict similar pain.

Some possibly helpful resources which you may have already seen:

http://www.amazon.com/Peopleware-Productive-Projects-Teams-S...

http://www.joelonsoftware.com/ (right sidebar has a ton of articles)

http://www.amazon.com/Facts-Fallacies-Software-Engineering-R...


I was a hot shot kernel engineer at Sun back in the day when Sun was like Bell Labs.

I specialized in performance which meant that if I showed up in your office you had a problem and I was the spotlight on that problem. And if you didn't want to focus 100% of your energy right now on that problem, I made sure that everyone knew that.

I was not well liked.

Eventually I grew up. People are people. They have jobs, they have families, there are all sorts of reasons that someone may not be doing well at their job. Yes, one of them is that perhaps they suck. But I learned that any well run company, it wasn't that they sucked, it was that they had shit going on in their life that was more important than their job.

This guy may have a point. I don't think his point is as valuable as the idea that maybe you should look a little harder to see why someone isn't helping as much as you want. That's empathy to me.


Why do software engineers constantly try to project that they are a special snowflake of a profession?

Would you accept such nonsense from your plumber, or your dentist, or your electrician?

Software engineering is one of the most fundamental building blocks of modern civilization, and yet it continues to be so fragile because of this kind of cavalier attitude.

Also, apologizing doesn't mean you have a moral failing. It means accepting at least partial responsibility, and being humble about it. Any good org knows that you don't just design your system with the hope that people won't screw up, you need to design it to work despite some amount of screwing up. But in either case, it is still both an individual and collective responsibility.

next

Legal | privacy