Developers, Being Treated Poorly? You Are Not Alone
fredwu.me
fredwu.me
For example:
> One of our servers needed to be rebuilt, so trying to be a team player and help, I started installing some basic packages. The senior dev on the team turned to me, straight faced and enunciated in a deep and cold voice: “don’t touch anything on it, this is my server!“
Is this because you're a junior-junior developer with an established history of fucking things up? Who has something else they should be working on? Then stay away from the guy's server.
Anyway, let me join the chorus of wondering what, exactly, is so terrible about most of these little stories. Especially when they're so vague as to be nearly useless...
I've been a developer for twenty years. I can tell you some actual stories of developers being treated poorly. They're generally a little deeper than, "Someone said something uncouth in my general direction."
Author here. Indeed I was the junior dev at the time.
I now regret not making a lot of the points clearer. In this case, I know I would definitely NOT treat my junior devs this way. In my view, using either aggressive tones, or public shaming, is not the right way to resolve things. I wish that senior dev at the time would've talked to me in a way that did not make me feel like I was worthless and intentionally fuck things up - at the end of day, most people try to do good things for their organisation, right? :)
Like, you know, yelling at someone in a meeting, swearing aggressively, etc etc.
No, this still doesn't make sense. Professionals can and should be courteous to one another. Software developers can, too.
???
"Masculine professions" are things that people do, and we can definitely challenge almost all generalizations here. Unfortunately, the person you're replying to never mentioned professions.
This behavior will eventually get you fired. It's unprofessional, demoralizes employees, and opens you up to legal embarrassment if one of the people you berated ever sues your company. I will agree that the people who engage in yelling/swearing at employees are generally male, but it's absolutely not true that this is how masculine professionals "generally"* conduct themselves at most companies.
* If you're referring to startups in particular, where a founder cult-of-personality can have a totalizing effect on employees, they are the exception and not the rule.
That said, saying "Don't touch my server!" is not at all abusive, especially if there's a history of people messing things up they have no business touching.
It makes me wonder: in case the senior dev did not disclose this policy to the junior dev prior to the meeting, what was the senior dev expecting? If no rules were communicated, it falls to the senior dev to lay them out. At the point that a junior dev does not follow a previously undisclosed procedure, why would that make the senior dev angry? The senior dev can note that the server is on his list and ask why did not the junior dev check who is responsible for the server?
Ask for permission. Failing that, ask for forgiveness. It's rude to mess with other people's stuff, or even shared property.
Imagine it wasn't a server but a conference room he decided to apply his vigilante justice to. The result may have been a positive surprise but being a junior there's also a good chance he was ignorant of the requirements and have made things worse for others.
In an ideal workplace every requirement is documented and every policy is written down and laid out to every team member. In the real world it's better to expect not to know everything -- and that's a fairly valuable lesson to take away in a junior role.
That said, the response may be blunt but it should never be angry, especially not beyond the scope of the actual intervention itself. If you're about to cause significant damage, it's okay to put that in drastic terms to make sure you stop right there. But it shouldn't be personal and it should be considered a learning experience by everyone involved.
Everyone should be allowed to make mistakes. They should just be expected to learn from them and avoid making the same mistakes in the future.
If somebody is working on a server, and you know it, it's common sense not to mess with it.
The rule can be a morning stand-up or Jira note, saying that the work is assigned to this person. At the time, developers (probably) were not accustomed to have either.
It's not that you don't have valid complaints here. It's that you've taken a huge number of examples that range from the simply ungraceful to outright exploitative, and combined them in one huge file that makes it look like you're seeking reasons for your grudges.
A good workplace isn't one that avoids mistakes and conflict. It's one where the team feels invested and supported in working through that conflict in pursuit of their bigger goal. That goal doesn't have to be some world-changing potential; it can just be doing good work, getting paid, and taking care of yourselves.
One morning before you arrive at work, junior dev Fred -- a nice kid, but definitely junior -- gets ahold of the server and starts monkeying around. It's not his job. It's not his server. And now you're either going to have to wipe the server and start fresh or get a debrief about what he has and has not done. And Fred's junior, as noted, so he doesn't always know the best way to do things (although, like many junior developers, he sure thinks he does!). So now you, senior dev, have this wild card that you just don't want to deal with because you're busy and doesn't Fred have other tasks on his plate? Why is he jumping all over your damned server?
So you snap at Fred. "Get away from that -- it's mine, not yours. Please do your job and leave me to mine."
Doesn't seem out of line to me.
Hopefully as a junior dev this person learned a couple things here. First, that they do not know everything and second think how their actions will impact the team.
Author here. This is going to attract a few more downvotes for me, but I have to respectfully disagree. Partially because the scenario wasn't quite what had happened, but more importantly, even in situation exactly like what you have just described, I would not have just lashed out on my junior colleague - to me no matter how junior they are, they are still my colleagues and they still add value. There is no reason why I need to be aggressive to them when they made mistakes.
If you are paying for the servers out of your own personal funds, sure.
But if it belongs to the company employing you, no, it's not a personal thing, it's a corporate thing.
A server purchased for your work is not _your_ server. It is a company asset. If you buy a server for yourself and your little brother messes with it, go ahead and get mad and lash out. If your business has procured a new asset, you are tasked with managing it and someone else gets in your way (junior or not), deal with it like a professional.
I completely disagree with the idea that a work box should ever "belong" to someone.
Cattle not pets, man.
Sorry if this sounds tough, but that's the way it is.
While "snapping" isn't unreasonable, the better response is more level-headed.
"I like the fact that you took initiative on something that needs doing. However, we have established ways of doing this. There may also be other things you should be doing with your time instead. If you don't, here, sit behind me and let's set it up together. And in the future, check with me before you jump into something like this."
That's the balance. Firm. Corrective. Accretive. And at the end of the process, you now have a junior dev you can trust to set up servers "your way".
Also you need to explain why this way is the established way.
Quick to the point explanations. No need to dance and coddle.
The junior dev has the right attitude (wanting to help) but if he thinks tweaking a server some else has set up is a way to help without having gotten some okay shows how green they are and have not yet attained necessary decision making skills.
I like the enthusiasm but I don't like the lack of awareness.
And you are ignoring the reality that people all have different levels of knowledge and experience -- there is no binary flip between child and adult.
People will extrapolate from their limited interactions with you, because communication is lossy. When you snap "don't touch that" they will obey "stay away from me as much as possible"
“"I like the fact that you took initiative on something that needs doing. However, we have established ways of doing this. There may also be other things you should be doing with your time instead. If you don't, here, sit behind me and let's set it up together. And in the future, check with me before you jump into something like this."”
Frankly, that does seem like the sort of response a parent might give their child when they do something wrong.
To me, it sounds like normal, human communication.
I'm not surprised it's also used in parenting.
I'd rather work in an environment where this style of communication is encouraged (as opposed to the response the author got) - wouldn't you?
no.
As the junior dev, what am I taking away from this? The core message ("I shouldn't have done that thing I did.") is crystal clear. But WHY. Did I configure it wrong? Is there some process I'm not aware of? Is Senior Dev even right, or is he just a possessive jerk? Are there other rules I don't know about that I'm going to suddenly trip over?
You can play the "figure it out" card and not "coddle" them. That's an approach, but it's not a very effective one. At the very least, tell them what to do, not what not to do.
There's a line here. I've had "busybody" team members who make life difficult for everyone else no matter what you tell them. And my patience quickly wears thin if I have to tell you more than once.
But conversely, someone who's going to twiddle their thumbs and not help because "it's not in my job description"... I don't have time for that attitude either, and I won't stand for my team making it the cultural norm.
As a senior member of a team, one of your jobs is to develop the more junior people. It is a teaching position: always. If you can't do that, or you think snapping at them "teaches a lesson", it's time to have a conversation about the "senior" in your title.
At the end of the day, we're talking about a hypothetical situation. There are exceptions to every rule, but my starting point is, "How can we make this person better?"
Why not communicate that? Otherwise you're shutting down everything, enthusiasm included. Some of this is style: my example response is pretty middle-of-the-road IMO. But there's a difference between a "quick to the point explanation" that helps the green dev develop necessary decision-making (and other) skills, and something that's the equivalent of "Hssss! My precious!"
Do you snap at your customers or bosses if they don't behave the way you want? If not: Why do you snap on your juniors?
You can easily judge the character of a man by how he treats those who can do nothing for him.[1]
[1]Various possible sources
This is a challenging post, you seem to be getting knocked around with it quite a bit here. Hang in there. As you point out in your since published comment, treat this (and all your vignettes) as a learning experience. To help start you on your path for this post, I'll offer my 2 cents.
First, try to write posts with positive messages (this one has an overwhelmingly negative tone despite your intentions). Perhaps recast the examples as learning experience. Think long and hard about the situations you describe and try to learn something. Then write a post on what you learned. Life's hard. Help others learn from your interactions (and learn yourself).
Second, keep your issues to the real ones. It's okay to make a long list like this in a brainstorming session while a post is in the early draft stage, but try to trim down the stories to a handful of substantive ones (each with a lesson and reason for being there).
In general, it seems you've been in some stressful situations (for yourself and others). People (even the most vaulted professionals) get cranky when things aren't going well - by whatever definition of well is for the context).
You do seem to believe that transparency is a fundamental right. Its not. Noble, sure, but not ubiquitous or even always a good thing. Many times management will shield their reports from the disaster unfolding above them. Some times this is a good thing. It might be very distracting if everyone had perfect knowledge. I find its very important to have a good working relationship with your manager. Understand what motivates them and deliver on the tasks you are asked to (things can get messy when you "help" others (especially at the expense of your assigned tasks)).
Much more to say, but I need to go deliver on some of my tasks now. Hang in there. Good luck. Write a second post with a positive spin on the major things you learned from this one.
Yep I can see why the negative tone is very off-putting to many people. Had I have a chance to do over I'd definitely do what you've suggested here and tackle it from the positive / lessons-learnt point of view. :)
Many thanks! :)
I wouldn't frame the issue in terms of rights, but management that hides relevant information is fundamentally dishonest and disrespectful. I wouldn't call it criminally fraudulent necessarily, but it's in the same spirit, though perhaps in a more grey area.
Which is not necessarily a bad outcome for a piece of writing.
That's exactly the point. Everyone hears this sort of thing and mistakenly infuses it with some significant meaning when really, it's just developers talking to developers.
Whether that was the original OP intention, I dunno, but it's the best lesson here.
Author here. I'm glad there are people like you who share the same view. :)
I do admit that I haven't explained things well in my blog post, but some comments here that suggest being aggressive/rude is okay and/or justifiable as long as there's another side of the story is really an eye opener for me and I'm somewhat shocked... Is being kind and decent to another fellow coworker (and a human being for that matter) too much to ask? :\
Provided your comment is currently grey, I suppose it is, for some people...
If someone does something that offends me, but I know after a few seconds' thought that they didn't intend to, for example they were busy or look upset for some reason, then it would be foolish to take offence.
If someone does something that is extra polite and friendly and massages my ego, but I know that they hate me and are being two-faced (for whatever reason) I might take offence.
Of course, everyone's different, but most people's theory of mind is developed to this point past past a certain age. I don't think it's absurd to take some responsibility for your own thoughts. I think it's how society hangs together.
It's absurd to never take any personal interactions personally. It's equally absurd to take every personal interaction personally.
Your argument is basically the twitter problem: stop judging people by individual statements or interactions, understand that there's an entire separate being on the other end of every conversation with concerns and experiences of their own.
> It's equally absurd to take every personal interaction personally.
Ok, which personal interactions should not be taken personally? Do you understand how ridiculous that sounds definitionally?
Use your best judgment and try to give people the benefit of the doubt (this requires practicing empathy, which is difficult). Realize most people are usually not thinking about you, because they are too busy thinking about themselves. I find it beneficial to try to act in a way that leaves the most people feeling positively (including myself).
I think it's ridiculous, and more often than not people prescribe such behavior for others but are quite comfortable taking personally that which... personally affects them. Silent forgiveness for the inconsiderate instead of numerous means of improving one's relationship with them. Telling someone that they are treating you in an unacceptable manner is, by definition, taking it personally. And being passive and avoiding such conversations is exactly how unpleasant social interactions persist and grow into a climate of alienation and dysfunction.
> You can't delineate a set of criteria for when to take a statement said to you "personally".
Sure i can. When it affects you, personally. People who disagree with me can't come up with a set of criteria. Without such a criteria, there is no justification of the attitude.
> For one thing, taking something personally isn't a binary attribute, it is far more complicated than that.
Taking something personally is binary in this way: you either ignore the personal effects a relationship has on you or you signal/take action based on those personal effects. All of the complication lies in how one proceeds based on their feelings. Mediation and conflict resolution are complicated yes. But you can't resolve a conflict without signaling that it exists and that you have a personal stake in it. That is exactly what taking something personally means.
There are large-scale social implications. People who are lower in status are told to not take it personally more often than people of higher status. When a boss is emotionally abusive, people are far more likely to excuse such behavior than if an underling is being emotionally abusive. In other words, prescribing to people to passively accept uncomfortable or harmful social interactions without protest becomes a mechanism of power. The effects are alienation, depersonalization, stress, and social dysfunction. That shit infests our society.
I also didn't say you should ignore your feelings. Personally, I make an effort to be aware of my visceral reactions when things happen, and to not let my automatic, gut reaction run away with itself. But I do want to my understand my feelings, not just stifle them.
However, I also try to emulate the mental space of the person who said the thing, and the wider impact of me speaking up, and only say something if I feel it will be received in a productive fashion and will be generally beneficial. Highly personal criticism (even when constructive) usually loses effectiveness if it is overgiven, and is also a socially expensive thing, as it often feels negative for the recipient in the initial instant. It also carries less weight when coming from someone you don't know that well or haven't built up trust with, which makes the expensive interaction to give feedback often times a waste, with little ROI.
> how unpleasant social interactions persist and grow into a climate of alienation and dysfunction
is more like someone you expect to be rude to you all the time unless you tell them not to be. If that's not going to happen, then just letting it go could be a reasonable response. There's also the fact that this is being recounted after the fact, which implies not just hurt feelings in the moment but a lasting grudge held over something most people wouldn't be bothered by, which can also be toxic to relationships.
> > You can't delineate a set of criteria for when to take a statement said to you "personally".
> Sure i can. When it affects you, personally. People who disagree with me can't come up with a set of criteria.
Fair enough. Everyone takes offense at different things. But if your threshold is set so low that interactions that most people wouldn't find "uncomfortable or harmful" are "unacceptable" to you, then any interaction with you becomes difficult, and that difficulty will drive people away and alienate you.
That's how you're coming across here, and that's why people are suggesting you try to change yourself, change the way you view these interactions, instead of just insisting that everyone else change to accommodate you. "Don't take it personally" doesn't mean "don't react to things that bother you", it means "don't let it bother you". For things that have no ill intent and don't bother most people (even when it's directed at them), that's good advice.
If you honestly don't understand how to apply this kind of nuance that is concerning and could indicate an undiagnosed psychological condition (e.g. autism spectrum) -- consider talking to a professional. But I'll try to elaborate:
Try giving people the benefit of doubt. The vast majority of people are not intentionally being obnoxious. There is a multitude of reasons someone might come across as hostile without it being something you should take personal, for example:
* sleep deprivation
* hunger (e.g. skipped a meal)
* bad posture (causing discomfort they may not even be aware of)
* physical illness (e.g. a simple cold)
* physical conditions (e.g. menstruation, indigestion)
* stress (e.g. close deadlines, financial problems, relationship issues)
* other psychological conditions (e.g. grief)
* mental disorders (e.g. depression)
* bad social skills (some people genuinely can't communicate well)
* non-native speakers (may be unaware of subtleties in tone and voice)
* language disabilities (e.g. stuttering may make them anxious when they have to talk)
Instead of judging people by singular interactions, try to recognize patterns in their behaviour.
This kind of passive aggressive, ableist bullshit is completely unacceptable.
This is worlds better than being rude. In my experience it errs a little in the other direction because it leaves the situation a little ambiguous (and thus invites more conflict) by implying that it is debatable. Especially the "if that is ok with you part"
I might try something like: "it's important that this server is configured correctly, so it would be better if I took care of it myself, I Appreciate the effort though!"
In dissecting your statement, "it's important that this server is configured correctly, so I think it would be better if I took care of it myself, if that's ok with you"
clause one is ok, but does not provide a 'why'. clause two leaves too much leeway as to whether the junior developer action is acceptable going forward. clause three is actively negative as it opens up debate for something that is not up for debate.
a proper communication would have been to take the junior somewhere away from anyone else, made sure that the tone of voice was unagressive but authorative, and stated something along the lines that, this is not a major issue but we need to have an important quick conversation, first explain that number 1 what the issue is, explain number two the underlying why, and explain what will happen go forward, make sure he understands this is not a debate, this is you giving him direction on what will occur going forward, i would give him an oppurtunity to meaningfully contribute in the future if it made sense, finally make sure he understands.
being to flimsy or wishy washy is NOT good communication
If this is a recurring problem and previous, friendlier attempts have failed already then it's necessary to rephrase the message in a clear, authoritative manner but in my experience this is very rarely, if ever needed.
The original communication does not actually communicate the underlying issue in this particular case. Its not a 'friendly' vs 'unfriendly' communication issue. Its an issue that the communication is NOT actually communicating what the intent of the message is.
The intent of the message is 'this is not your responsibility, although you intend to help you are actually making more work for others not less, do not do this or similar things again, without consulting the person who's responsibility it is beforehand' thats the message.
the way its phrased if the person is a senior he is going to understand what you are 'really' telling him in nice words. if the person is a junior he is going to think you are really entering a debate about how this should be approached, and that you need to reach consensus with him about the approach, and that although you didnt accept his contribution this time, next time or next situation this may be a reasonable way to contribute to the team.
you have communicated the wrong thing to your target audience. its bad communication. its not 'unfriendlier' to communicate directly what you actually mean and to provide clear guidance and correction to a junior.
"It was near the end of the working day, around 5pm, as the person coordinating the developer recruitment in our area I ping’ed our Slack channel to encourage our developers to start reviewing some code tests from job candidates. One person replied: “My end of day activity is doing the stuff I should have been doing all day instead of the other things that came up.”"
What was the treated poorly part? Someone priorized some other work over his assignment, or something? I personally think overtime should be avoided, but often people do it voluntarily.
"A senior software architect who I used to respect walked close by in a meetup. We worked for the same company a while back so I smiled, said hi and was about to start a conversation, he quickly cut me off with “I need to get a drink” without looking at me and wondered off."
Seriously? Everyone has a bad day now and then. This is of course not nice behaviour, but I wouldn't consider it worth remembering or mentioning as "being treated poorly".
"The general manager who is non-technical, asked me to investigate options to uplift our ageing bespoke ecommerce solution. Upon delivering my findings, I was told that “your findings are biased.”"
What would be the proper way to communicate this? If the manager thinks that the findings are biased, would it be better not to say that, or communicate it in some other way?
Author here, I can see why you have these questions. I tried to keep the moments short so left out some details.
For the first one, it was the passive aggressive tone and the fact that it was posted in a public channel. This person in one other occasion, stormed out of a meeting room whilst another colleague was trying to explain something.
For the second one, later on through mutual colleagues I realised that he essentially thought very little of me because at the time I was a junior developer so I made lots of mistakes in my code base. In my defence though, I was on my own and I had to learn Rails myself.
For the third one, I put the "non-technical" part in to indicate that my manager does not have the technical capability to determine whether my findings were biased. It was more so that he had his agenda and just wanted me to confirm his approach from the technical perspective.
Hope that clears things up a little bit. :)
For most of these moments, it was more a reflection of my personality if anything - under the same circumstances, I know I _wouldn't_ treat others the same way I was treated back then. I much prefer to use softer tones and more positive ways to start those conversations.
I wouldn't dare to make that claim. Every situation is different and also everyone's mood varies from day to day. It is very difficult to be that nice guy all the time.
We are building software, and/or managing a product/team. It's a communal effort that requires empathy, kindness, and love. If you are one of the few who can't love your fellow coworker/subordinate/boss then you are toxic.
Unfortunately, bullies existed on the playground and they exist in the software industry too.
There's a huge difference between most of the time and all of the time.
I'm a strong advocate of empathy in the workplace, but part of that is recognising that sometimes people are just in a bad mood.
Someone who snaps at you because they're really stressed that day is in no way a bully.
Having a bad day is not an excuse to be rude to someone, especially if they are not aware of that.
You apologize the next day / whenever you calm down. And then that out-of-character event doesn't end up being someone's lasting impression of you.
I agree, it shouldn't be difficult, but some people seem to go out of their way to make it difficult.
In what way were your finding supposedly biased? Why is it necessary for the manager to be technical in order to detect that bias?
Even presuming that you would need to be technical (a big assumption, non-technical people aren't necessarily idiots because they're non-technical), how do you know a senior technical person didn't already talk to them and warn that bias of a certain type could result in $YOUR_FINDINGS?
It sounds like they were constantly getting hit with new "top priorities" that needed to be handled "right away" on top of their new duties.
At any rate, I don't see how either #1 or #2 constitute poor professional treatment. I can see how it can be a bad experience - I've been on both ends of such behaviour, frankly - but I don't think it's unprofessional. #1 actually points out a serious problem, too!
#3 and #4 from the blog post, however.. I would be livid.
Years ago at this little company I saw the CTO punch the CEO and basically knocked him out. The CTO walked out and we never saw him again. Keep in mind, these were grown men (I was still in college).
I've seen full on yelling and screaming with personal insult after personal insult. This was a normal occurrence on how IT and the business communicated. I never really got used to it, so luckily I worked from home 99% of the time.
I was in a meeting once with a bunch of contractors from different companies, all were yelling at each other about whose fault something was. The gov. PM could not get control and I finally stood up and said it was my fault personally so can we move on now.
And these only scratch the surface. One guy I worked with would always storm out of meetings saying he was going to get you fired if you disagreed with him on anything. That was almost comical though :)
Maybe the person wasn't biased, but obviously the manager thought so.
1. A lot of times, this statement is used as a weak crutch by someone who had a different idea, but can't properly explain their side of the position and work towards why there was a difference in conclusion. Usually it's because the person that said "you're biased" is actually carrying a ton of bias into their viewpoints.
2. Even if someone was biased, do you think telling them that they're biased is going to bring resolution? Of course not. See point #1.
Not to pout and say you're being treated poorly.
That said, bitching about bad managers is a time honored tradition as old as management itself, so I don't really see the big deal with blogging about it.
As an aside on the not understanding front, what was the deal with the team lead scenario? In my experience team leads aren't managerial positions so I don't quite understand why the guy was so concerned with other employees salaries. There was also a lot of missing details there, the author could have been making significantly more, and so the raises were treated differently? That was definitely a peculiar one.
The reason for this is that it's not at all uncommon for dev team members to make more than team leads if they have a specific skill set that the market values more.
Author here. Unfortunately that one was from a small startup where I was responsible for evaluating my team members' performance and salary.
My manager asked me to interview a guy for our embedded software team. The guy was working for our internal customer and was already well liked by the team, but he wasn't creating software. I asked if my input would matter or he already had his mind made up, and he said that yes, this was a real interview. So I asked the guy a few questions and then decided to just give him "FizzBuzz" in the language of his choice. He spent the rest of our time and more trying to solve it but no full success. Then I was in the awkward position of taking him to lunch since everyone else had gone already. So I go back to the boss and say "the guy can't code, don't hire him". Boss hires him anyway. Kid figures out FizzBuzz later that afternoon - he's got determination, and people were ultimately happy with him being on the team. Lessons: 1)Boss's mind was already made up. 2)FizzBuzz is not necessarily a good test. 3) No matter what people think of you, if you fuck up that test your nickname around the office will be "Fizz" from then on.
Getting offended because people have stuff to do dosent mean you're being treated poorly.
The developer is being treated poorly and gave a response to indicate why s/he was being treated poorly. I don't see the problem other than the person coordinating developer recruitment should respect people's time more.
> "A senior software architect who I used to respect walked close by in a meetup. We worked for the same company a while back so I smiled, said hi and was about to start a conversation, he quickly cut me off with “I need to get a drink” without looking at me and wondered off."
If I knew the person well enough, that one is actually a "I need to talk away from here" or a warning to not talk here. I've had friends go with that, but it really is not clear from the context what is going on or has gone on.
Describe the points of the analysis that seem biased, without even using the word "biased".
"Looks like you only considered..."
"I don't see any mention of..."
"But you didn't mention [superior feature] of [other product]."
"Biased" is an accusation against the presenter, as opposed to asking questions or making comments about the analysis directly. Making a personal attack does not help in making a good decision.
This stuff is hard. In my experience you have to cut people some slack and be understanding of difficult situations. If you are able to succeed at that, you should find opportunities to help. This will, in turn, make you more valuable to your employers and also make you much happier.
Of course, it's hard to give good advice from the other end of a comment box. I wish you the best of luck in your current endeavours!
Nearly, sure but not all.
From the article (emphasis mine):
"A new big shot executive joined the company as our new CTO. He had no agile background and our company was transforming and pushing for a lot of agile principles at the time. Two weeks into his new appointment, the new CTO published an internal document titled “Controlled Chaos”. After reading the document everyone immediately realised that he was describing waterfall. The document was shared as a Google Doc and was open for comments, so people started asking hard questions. Weeks later, many of us who were vocal about his document were let go."
Asking for feedback and shooting the messenger(s) is pretty up there on the "How to make sure you never get honest feedback again and screw things over the long term" scale.
The development team at the company was a hot mess. The company brought in a CTO who stumbled a bit out of the gate, and a few developers made it very clear that they were uninterested in working with him or following his lead. Because the company felt it needed to go in a new direction with the development team, they had to let most of those developers -- who were clearly a bad fit at this point -- go.
Because there's almost no detail in that story.
I actually hung around at that job for several months (I was young and stupid). We had a reverse review system for our managers and our team of 9 developers gave our manager the worst rating in the entire company (a company of 100K employees!!!). My manager was incensed and locked us up in a meeting room for an hour to lecture us on how disappointed he was in his review.
At one point he said, "The thing I am most disappointed in is that I had no idea things were this bad. Why didn't anyone tell me?"
I replied, "I've been trying to help you ever since I got here. That's why I keep yelling at you. Nobody else will open their mouth because they see how you treat me."
We looked at each other and I like to think that we both learned something very valuable. I quit my job soon after that and I heard that he improved as a manager (at least a little bit). After a lot of soul searching I realized that "helping" someone when they can't understand what you are saying is quite a bit like stomping on their face ;-)
Thanks for this. Put in this context and thinking back it makes some things in my past career clearer to me. I have often been the person "helping" and getting penalized for it as well. It's often difficult to bridge the divide between the factually correct and the politically? socially? correct.
It seems like either
a) We're only getting half the story.
b) There are clues that poor communication was the issue.
c) There is no story to begin with, just some perceived slight in the authors head.
One clue that poor communication might have been an issue, is that you and I are left here standing feeling like we are missing out on something in the story. That is not good storytelling, AKA it is poor communication.
Wu, more details! Maybe the "need to get a drink guy" was really ill and could barely stand up? For instance.
Author here. Sorry you (and many others) felt that way... I was trying to put together these moments without rambling on too much.
To offer my perspective on the things you mentioned:
a) I absolutely agree, there's always two sides of a coin. I can only describe how I felt at the time. b) Again, I agree, and communication is a two way art. Having said that, some of those moments I feel there were very little I could do in my end to turn them around. c) I did not claim those to be stories either, my intention was to share these things that have happened to me in the past and made me felt uneasy at the time, and perhaps make more people (including myself) to be more aware of their surroundings...
The way other people behave is often a reaction to how they perceive they're being treated. Perhaps the OP should introspect on how he appears to other?
In recent years I have started gathering feedback for myself from my peers, direct reports and managers. The issue I find is that only certain type of people are willing to be completely honest, for the rest it really depends on how much rapport you were able to build with them. I guess what I'm trying to say is that I try, but it's hard. :P
I wonder if the author was raised in a very different culture, either because he or his family was of foreign origin, or he was simply brought up with an atypical set of cultural cues and values. These can be very difficult to uproot, and may explain the sense of bumbling through professional situations that the article conveys.
I am not in the States, but when re-structurings were to happen at my previous employers, the employers has to specify if you are expected to leave immediately or if there is some work to be finished.
At an earlier point I was changing jobs. I had asked to work a few days longer to finish my task at hand, which was granted. It only seems reasonable thing to me.
To me, communication is a very large value. I would not require, or blame, the developer in this circumstance. If the employer did not specify or have processes when letting people go, it is an unprofessional attitude of the employer, not misunderstanding of the developer.
This is what I thought as well. The author's perceptions of reality seem a bit "off" and even naive in some cases.
- I was once asked to go to meet a customer with our sales manager and wasn't told why beyond, "we just need a techie there." The sales manager did his pitch and when it came to questions someone said, "you haven't shown us the proposed architecture," and the sales manager points to me and says, "that's why Phil's here." I had to invent one on the spot using a whiteboard and with a bunch of very knowledgeable people firing questions at me.
- One developer I knew was tasked with using a font that cost a lot of money. He was explicitly told by the directors to use the font anyway without paying for it, which he did. Later when the company was sold this came up in disclosure, and the directors blamed the developer saying they had no knowledge.
- Another developer, during their personal review, was told that they weren't getting a pay rise but that, "it's not because you're black." She was in tears.
Now these are some legitimate complaints. You should write a post about real issues.
Did she end up suing? I feel like you can't say something like that and not end up getting sued.
The article had instances where a developer:
- lost essential computer access privileges
- was forced to re-invent technology
- was denied chances to advance his/her careers through academia
- felt group shaming
- was expected to spend most of the day picking up pieces
- was fired without review
The last one is more general but these at least have a technological slant to them, and they do seem to be related to some kind of passive, cultural bias. And each of the stories might have some weak points but the point is that some developers feel they are being treated poorly, which is a big deal. This crowd is very analytical but a dismissive response is not really the appropriate way to address these claims. (Not saying you're being dismissive, just the general attitude of comments.)
Your comment also hints on another pattern which is, every time there are small problems, there are going to be bigger problems underneath.
- As a web developer doing mostly ColdFusion (early 2000s and I was in my low 20s) sent to a customer to "help set up some kiosks." Turns out they needed help running network cable. Did my best but it was such a strange experience, and I felt very unprepared. And as luck would have it, I had wrenched my back the night before, and ended up throwing it out while I was shuffling around under desks - I was very embarrassed by that!
Funny war stories though, of course I have some.
One of the owners of the company I'm working for used to put his agreements with customers and other 3rd party contacts for the week or the month in his agenda for the last day of said week or month.
Every week, every single week, on Friday afternoon at 4:55pm he'd call: "Ah, good thing you're still at the office. Hey, I promised <contact> that we'd have <complicated thing> done by the end of this week. Can you take care of it? You're awesome, thanks! Have a great week end"
(The company has grown quite a bit, and got more organized, so this no longer happens)
So infuriating.
Example: HR is a function, not just a department. The fact that you don't have a full time HR person doesn't mean that the job they would have done is going to remain unfilled; it just means someone else has to wear the HR hat, probably the CEO. If you're taking a week off and expecting to use sick days rather than vacation time, a doctor's note does seem appropriate, and I have no idea why it's relevant that its a startup with only 10 people. Being asked to go to lunch while sick seems much dodgier, but the story presents the lack of a dedicated HR person as the punchline, when that seems irrelevant. You can't abuse sick leave just because the company is small.
Similarly, having your head of network operations not understand the issue with your Cassandra cluster and just check the port responds to packets is...I dunno, I guess it's bad? Kind of? Assuming that his job description includes setting up Cassandra clusters, which it probably wouldn't be in many companies, so...
On the other hand, there were enough stories there to make me feel pretty smug about my current job. But overall, the stories feel more like zen koans than actual stories. You read it, you stop, and you puzzle over it. It's bad that the head of HR doesn't normally personally do exit interviews...why? Or is the problem that the head of HR taking an interest in you? Are we meant to be upset she isn't doing more interviews, or that she isn't doing fewer? Or is the issue unrelated to the number of interviews? Are we meant to guess? Or the ones about pay rises for team members; are we meant to assume that this would normally be the author's job? Or is the complaint that it wasn't the author's job, but should have been?
* Barring true "all hands on deck, no matter what" scenarios.
Barring places that have safety critical requirements for a certain number of staff on hand or something similar, if you can't accommodate sick days, I can't be bothered to hope you stay in business.
I'm not even asking them to be altruistic. If you have people with a fever in the office, they're likely to do shitty work and get someone else sick. It's not even good for the bottom line.
Sounds like the doctor's certificate was for taking the rest of the week off.
In any case, I agree completely about asking him to come in anyhow; it's just weird that it didn't seem to be the focus of the story.
> As the team lead, I was told by one of my team members that they had gotten a pay rise.
Depending on the company structure, "team lead" might not make you their manager. Of course you won't know their pay if you're not their manager.
> "Ordinarily I only do exit interviews with female employees…"
It makes sense that the HR head would generally not personally engage in exit interviews, but would do so when it's directly related to an initiative they're personally pursuing (diversity).
The thing that gets me in large companies is backstabbing psychopaths that ritually abuse the common assumption that everyone is working together, in order to elbow their way ... somewhere.
If you work with a group of smart people who are able to selflessly say "Hey I don't know about this" or "Maybe I made a mistake there, how can as a team change the process for these decisions so that we prevent making this kind of mistake in future?" ... treasure it.
While many of us may not objectively take away "he was treated poorly" from the author's brief stories, it is a fact that the author felt emotionally affected by these experiences enough to share them. I think he aim to create a forum for people in the industry who themselves feel slighted by something that happened to them. Something something, intersectionality.
Hey Fred, thanks for sharing.
Hearing the common sentiment might be useful. Sympathizing with the author simply because they claim aggrievement to what seems like completely banal situations is unlikely to be useful to anyone, most certainly the author.
Most places I have worked there has been a recognition that software is hard and that developers need to be respected. (Not worshipped but respected.).
I am a white male, so maybe that plays a role? I don't know.
Not sure where the OP works (SV?) but wow. Hope he finds his way to a less toxic environment. I certainly would have considered leaving the industry after such experiences.
* Being asked to bill to one project while working on another; both projects were for the US government. Mischarging on contracts is illegal, immoral, and unethical, and I refused to do it. Later that day my boss pulled me into the office and gave me the old "Well we don't want to fire you but we might have to if your attitude doesn't improve" speech. I asked if this speech was related to my refusal to mischarge labor. The answer: "Yes, absolutely."
* During the Fall 2013 US government shutdown, I was on travel. The contractor I was working for told me to keep working. Everyone else at the home facility was furloughed. I kept working and kept getting paid. The company gave all employees a $2500 Christmas bonus for "staying loyal" to the company. Except those of us on travel, because we had not had to lose any salary. Okay, fine. But later on the company did return the leave that people took during the furlough. So, effectively, everyone else got a paid vacation from work PLUS a $2500 bonus and I got neither.
* Regularly cursed at by aircraft crew chiefs when I ask for access to perform inspections. I have been told, "Fuck you, we don't need your shit to fly, get the fuck out of here." Funny, the flight clearances say my system has to work!
* Yelled at by a very senior manager because I did not make a significant engineering change based on a poorly worded post-it note. I had asked the note's author for email clarification and formal documentation of the change. The author refused. I notified my managers -- including the manager who yelled at me -- of the situation. They promised to take action but did nothing. Uncertain of how to proceed, I kept raising the issue at status meetings but was ignored. The failure to take action on this almost cost us a launch opportunity.
And I have many more stories of similar things. But I think I have it good compared to huge numbers of people.
I don't think the OP, or many of the posters on this board, realize just how good you have it.
Agreed. Being an in-demand software engineer is a gift, and I am grateful every day that I stumbled into this career.
On the flip side, maybe you don't realize how bad you have it :) .
Things regularly happen in my world that would top anything the OP has posted about. I hate to engage in one-upmanship, but this post just seemed very silly to me.
May I ask why you stay in your current working conditions then?
Are you doing work you consider to be really important? Challenging? Lucrative?
Do you see the light at the end of the tunnel? Are you able to make suggestions to improve the conditions for yourself and others? Are you locked in because of external concerns (location, family needs, etc)?
No job is perfect (they call it "work" for a reason) but I am curious why you'd stay at a job that is so tough.
I'm beginning to ask myself the same questions.
Partly I am locked in due to family concerns. My wife and I have moved 3 times in 4 years of marriage and we're both tired of moving (Each of us also moved a couple of times in the two years immediately before becoming a couple, so we are very tired of moving). We've just had a baby so stability is paramount. Therefore I don't want to leave this general area. But, this is a very large testing/research base, so there is other employment available.
The work I am doing is important, to me, but not particularly challenging. It is very lucrative. And my suggestions are taken seriously. I pretty much determine what I do on a day to day basis.
So it's not as bad as it could be. I do have agency here. But I'm also a little bored.
Good luck to ya!
Everyone, every employee, contractor, founder, just anyone could exactly say this sentence at some point. All of us experienced unfair, grueling situations in the past and it's tempting to tell this everyone.
But not everybody would tell that they have been treated poorly or write a blog post about it. They know that there're every day people around you who make mistakes. Mistakes which make their life harder and sometimes these mistakes are not mistakes anymore when looking from both sides, maybe they are just misunderstandings and maybe too many in a short time.
It's the easiest to blame others when facing difficulties but some of us don't do this, they learn, develop empathy and just move on because they know: blaming, complaining and negativity won't solve anything. It makes you just feel even worse.
I don't want to judge about your situation in any way but I just like to express that the most difficult thing career-wise is dealing with people and it's the easiest to blame people when things don't go the way you expected. This is what I did for too many years—blaming others—until I realized that I am the sole person who can be made responsible for my situation.
Every time I see one of these articles, I wonder if the author ever spent much time working a menial job.
Yes, it's not a physical job, but you have to be able to handle the amount of psychological pressures that is put on you which can be way higher than on other more physical jobs.
First programmers suffer from the same lack of loyalty that permeates most companies these days. They can and will be let go pretty much the moment it is financially convenient to to so. As a software developer, it burns that much more when you were a large factor in the reason the organization was successful.
Second, since people can be self trained, and they are, this is a hyper competitive field to work in. Everyone says they can do everything, and resumes are no help in distinguishing candidates. While at same time many people directing the work of software developers have no idea what they are asking for in terms of complexity, while being given business driven time frames.
This is a hyper competitive field that inflicts serious mental stress on the people performing at high levels. I have many a day where I long for the simplicity of a'menial job' where only really thing you need to be successful is a positive attitude.
I agree that development is not easy, as it requires considerable skill to be good (and hence the big paypacket), but the skill required for the job is somewhat orthogonal to working environment.
I dunno. I've worked in retail, phone tech support / general support, as a medical tech, and had a ton of friends in hospitality, and I'd rather deal with the rare error like zer00eyz had than deal with the general public every day. I'm working 12-hour days at the moment due to crunch time, coming home exhausted, and I still would not trade this job for any of the other jobs I've had, judged purely on work environment.
Here is a quick list of "stressful days"
- Found my own bug, total damage at point of discovery $250,000 close to 3x my salary at the time. - Over charged a customer, about $15,000 (on a $100 purchase). Our accounting department had to wire transfer her money, so she could pay her rent and eat till her refund went through. - The job where the "clients" would call on every holiday, drunk, high or just being entitled assholes demanding the insane. This got to the point where the family had a pool at holidays on "who, what and when" the issue would be. - Any major data migration, ever. You can never have enough dress rehearsals for these things, and your always going to find a major problem at the last minute.
Were these things stressful at the time, you bet. If you heard the story today would you laugh with me as I told them, probably. Im not sour grapes, but please don't tell me this job is always easy or sunshine and roses.
I do agree with your FINAL point, and everyone I know in this industry who is amazing has some horrid job in their history, roofing, shoveling pickles, shoveling pig manure that list goes on and I have the data to back you up on that part!
1) Previously all engineers had 20% time and would work on personal projects. We had a ton of extra servers lying around and it was fairly simple to provision some space to work on an idea. His first week he went to the CTO and had 20% time axed and demanded that all provisioning go directly through him and all physical servers be nuked from orbit.
2) They got him a personal secretary. He routinely had her go 5 blocks to get him gummy bears, buy him a waffle iron and make him waffles in the office, and routinely made sexist comments.
3) Op sec. We would have media come by the office once in a while so this guy instituted a policy of "security through shame" If you didn't have 2factor auth on your email he would send you snide comments. If you didn't use full disk encryption you had to go to a mandatory course on personal security. If you left your laptop unlocked at your desk to go the bathroom it was prank emails and screwing with your settings. On the 3rd time he would confiscate your laptop and lock it in a personal safe he had under his desk for the day.
4) This guy would use our internal channels and slack to shame anyone non-technical. One time the personal assistant to a VP in another department accidentally posted a listing asking if anyone had a bed for sale to the channel for asking about restaurants in the area. 24hours of shame where he got the entire tech team to participate emailing everyone in the company if they had any food shaped furniture for sale. Apparently she broke down crying and had to go home for the day.
5) Despite the fact that we had no QA team this guy refused to deploy hotfixes even for critical launches. You got one day a week to launch code. You got one chance. If there was anything wrong it was, "roll back and try next week." Unless of course the issue was you needed a CDN cache clear or there was something wrong with the build. Then you could email him (directly after the deployment) and have him refuse to respond or believe you for about an hour before he would actually do anything.
I could go on. this guy was a king turd.
The rest of that sounds like reasons to fire the guy though. Although, having been in ops my whole career, I've never had a secretary, so it seems to me like this guy likely had a hookup with somebody in senior leadership so was probably untouchable/unfireable. I've dealt with the type before where it was somebody important's cousin or son who "knows computers", and suddenly they're running the IT department. On the plus side, at least it sounded like the guy wasn't incompetent.
This one most clearly shows his utter lack of empathy, nuance, understanding what a leadership role means, disrespect for basic humanity. This is the one that finally made me quit. He confiscated a guy's PERSONAl laptop that he had express permission to use.
I mean, this stuff is currently in the courts being decided, but (to use a not so subtle metaphor) he's gonna fall squarely on the side of, "Its my office bathroom I'll take upskirt shots if I want!" ?
People are far complicated than code, so we should take the time and make the effort to build and maintain relationships with our colleagues (professional relationships - shame it often needs spelling out!).
Treat others as you would be treated is a good start.
We can't always choose our colleagues, but we can choose to make the best of each and every situation.
It is complicated enough where the team decided to build the project upon the sinking sands of npm dependencies - at least make sure you are fighting together, not each other!
I didn't read it all, but I think this one can be described as poor treatment against the author's coworker
"His tactic for firing the senior developer was to make the senior developer role redundant"
How do you make a role redundant? Usually it is about what the business needs, the people inside the company don't make roles needed or redundant, but the business and how it develops defines the needs for varying roles. For example, if customers suddenly stop buying and decide to go ellewhere, everyone inside the company can be considered redundant.
Of course, you can work around the law by having the same duties performed by someone with a different (scare-quotes) "role".
Poor treatment would have been making the role redundant and not offering him a job at all.
I had couple of those things but can't really tell the details. You're not happy, just let go and move on, don't even need to send notice, just don't show up the next day.
When I read this article, it's not very flattering towards you. The attitudes expressed by your colleges imply a high amount of frustration.
This could be deadpan humor. The developer didn't realize he was being intimidating to a junior. You can say that to a long-time colleague, especially if you have a history of busting each others' chops that way.
Someone who might have once been a very confident, blasé junior doesn't understand what it's like to be an intimidated junior.
Not an excuse, of course, but geeks are not always good at reading situations like this, even if they are sociable, with a functioning sense of humor and all.
He might have been thinking, "I'm treating this fellow like one of the old timers!"
Why I suspect it was just chop busting is that the server isn't really his (even in the sense of being personally assigned: because then why would anyone else notice that it went down and want to fix it?). If you really want a server for your own use, you fire off a virtual machine, or find some box to up under your desk. If that goes down, nobody knows about it; no junior is going to be spontaneously fixing it for you. Also, in general, nobody in their right mind gives a crap about some silly server at work. It's just "I'm putting on theatre, pretending I'm irrationally possessive about this stupid server".
> Only if your industry is capital rather than labor intensive, in which case you'll have elaborate procedures in place for safeguarding and maintaining your infrastructure.
> For everyone else, a certain amount of breakage is expected. When things break, there are generally manual processes that can be put into place to keep business moving.
I've been mulling over that for a week now, and these stories have brought to surface the idea that software and technological infrastructure is actually capital and not labor and should be treated as such. Developers are like highly specialized factory machines. Unfortunately, because they are human and not actually machines, they're capable of being repurposed with little more than a whim. Imagine taking a machine designed to sort apples and repurposing it to de-core apples instead. It's going to take more trouble than it's worth; just buy a de-coring machine.
I guess I've just been playing too much Factorio.
Communication, or the lack thereof, can contribute to the situations that occurred and that too is a learned behavior and not innate.
I can empathize with the situations and it is always good to be aware as a way to foster your growth and understanding.
In this situation, if employers aren't the ones being treated poorly then something is wrong. And any developer that is complaining needs to have a better understanding of the power that they have and how to use it.
They seated her in the marketing office away from the developers.
FML for developers?
What?
"Travel approval" means that you're expensing the travel to the company, and the expense requires approval. For that to make sense, you have to attend the conference as a representative of the company, furthering your company business in some way.
Maybe this developer should have asked for a vacation. Failing that, unpaid leave of absence.
Through the course of my career there have been personality conflicts. I think this is natural and common. In the world of startups it can be even more dramatic.
The bottom line is that you should be confident in your skills, but not be an asshole (and you should expect the same from your colleagues). And, unless you have an equity stake, you can always move on.
It sound like Fred did this - he dealt with some standard workplace BS, then moved on when it was untenable. Good on him.
I just wish the examples were a bit more detailed and illustrative of the post's title.
2) Considering that so many companies slavishly build their whole culture on servicing engineers, color me skeptical.
Look deeper at the respect, and its most common proxies – money and hours: some places do seriously try to tackle developer productivity but there are quite a few where e.g. the average mid-level manager makes more than the most senior developer or the free food / foosball table is expected to make up for routine 60+ hour weeks or inability to fix long-term structural problems.
This is particularly of interest for younger developers: look at what happens to the older people at your company – do their careers mysteriously stall after their mid-30s, do they start getting flack for leaving on time to pick up their kids or actually using vacation/sick leave, etc. Most places say they value a good working environment but some of them are banking on you not taking them up on it.
http://www.amazon.com/How-Win-Friends-Influence-People/dp/06...
My boss reassigned me to their project, in exchange for work-from-home and some other perks. I put the project back on schedule and released it on time. I did that alone, help was promised but never assigned.
At performance review that year my work was "acceptable". My (indian) project was delivered on schedule (haha), but I missed a few key meetings on my Irish project.
Latter I had problem with my manager. While I was slaving on Indian project, Irish team was learning new technology. I was expected to know this technology, since I was technicaly part of Irish team while they were learning it.
I quit shortly after that. Now I do remote consulting
First of all, trying to see both sides of the story is often helpful, as is forgiving people for their tone and listening to what they are actually saying.
But ultimately, after you have tried to resolve any differences or conflicts, compromised where appropriate, pushed for change where possible, no job will be perfect. And if the problems resulted in your being let go, then just walk away and move on. Or if you are at a job with problems, you are left with a very simple choice...
1) Accept the problems, and do your job.
2) Do not accept the problems, and leave your job.
Boss: You didn't do X.
Dev.: I did, here is all the stuff I did.
Boss: This is OK, but it's your fault I didn't know about it.
Dev.: I sent you daily status e-mails. Here they are.
Boss: I see you did, but it's your fault because I don't read my e-mails.
Dev.: ?
Or:
I assign task X to a member of my team before my vacation. Boss pulls that developer from task X without informing or consulting me (I would have been available on E-Mail). When I return, boss dings me for task X not having gotten done.
??
You should have asked your coworkers why your access was revoked. Of course, they probably should have communicated the reason in advance.
Hear hear! I've always wondered why commonly the same attitudes and communication styles that developers employ to each other would be considered shocking if they were employed to a significant other to say the least.
Communication comes up a lot in relationships but rarely in the work place. It is only recently that psychological safety became a known term thanks to Google.
What is the best way for me to avoid this?
With that said, I'm always surprised when HR or management say stupid things even though it happens all of the time. I still try to sympathize because exit interviews are awkward. I noticed managers take exits personally and receive bruised egos.
That's just completely stupid; that manager was basically asking to have himself and others infected.
difficult to feel empathy for the anonymous authors behind these anecdotal snippets
There's only one author and his name is Fred Wu. Agreed that there's not enough context.
Team leaders need to invest into their listening skills and stop thinking they are all Steve Jobs, and that they have to be an asshole just to get anything done.
https://en.m.wikipedia.org/wiki/Rashōmon_(short_story)
Which is to say, this strikes me as a very first world problem, one sided, etc.
I'm sure there's a thoughtful comment lurking in there if you want to take the time to make it; if you don't, that's fine, but then please don't post at all.