6 ms·
Most of us in software engineering have, at some point, encountered someone who does not see a difference between technical criticisms of a system and personal
by Kalium 5y ago
Most of us in software engineering have, at some point, encountered someone who does not see a difference between technical criticisms of a system and personal attacks on its designers and authors. This is an understandable error in a junior engineer, an irritating bad habit in a mid-tier engineer, and a problem in a senior person. In all cases, the answer often winds up being finding a way around them, much as this describes.
I've been places where such people have found their way to technical leadership. Finding ways to improve things can rapidly become exceptionally difficult.
At this point my only way forward is to have a personal blocklist of people whose technical leadership decisions I refuse to ever be subject to again. It's a shame, because some of them are also brilliant engineers.
- cratermoon 5y agoI'm well into the senior years of my career, and I have certainly been all of these things. But a fellow engineer taking things personally is not as problematic as the behavior that often accompanies it: never admitting error. Years ago I heard the phrase "set to bozo bit" to describe what you're calling a personal blocklist. It was described as an anti-pattern, and setting the bozo bit as a poor choice in nearly every case. It combines the bad parts of an ad hominem attack with the bad parts of personal arrogance and negativity. Don't think your other teammates won't realize you've "blocked" a teammate. Some of them will react badly, and potentially see you as arrogant. I end with this quote from E.W. Dijkstra: We shall do a much better programming job, provided that we approach the task with a full appreciation of its tremendous difficulty, provided that we stick to modest and elegant programming languages, provided that we respect the intrinsic limitations of the human mind and approach the task as Very Humble Programmers. ACM Turing Lecture 1972, "The Humble Programmer"
- zxzax 5y ago>It combines the bad parts of an ad hominem attack with the bad parts of personal arrogance and negativity. Don't think your other teammates won't realize you've "blocked" a teammate. Some of them will react badly, and potentially see you as arrogant. You are saying this as a senior engineer who is in a better position to do something else about being on the receiving end of those personal attacks. I respect that and I hope you are able to keep doing it. But that isn't the case when the abuse is continuing over a long period of time, that means no other senior person stepped up to do anything about it, and the people on the receiving either have to quit, or risk getting fired for "insubordination" because they filed a complaint against a senior employee. Playing the office politics game and trying to avoid the abusive employee is not sustainable, as you've acknowledged.
- Kalium 5y agoIn my case, my bozo list is a handful of names that I use to help choose where I will and won't work. If one of these people is at that company, I will decline to accept a position that will subject me to their leadership. Some may see this as arrogant. It certainly assumes I have the privilege of multiple options of employer. It's not generally been my experience that people react badly to this in general, however. I can easily see how it would be much more disruptive when internal to a team. That said, I have seen whole teams set the bozo bit on other parts of the organization. For example, I saw the head of an infrastructure group refuse to maintain or patch key services while insisting on ownership. The security organization set the bozo bit on this person and worked to protect the organization from the consequences of their choices. As an organizational tool, it can be a useful caution about known bad-faith actors. As to your broader point, I think you're correct. Programming is difficult, error-prone, and thus benefits from an intellectual humility. Approaching it with the mindset that you are incapable of error makes this much more challenging.
- alisonkisk 5y agoHow can a handful of names across an entire industry meaningfully affect your career choice? Is this some close knit "paypal mafia" corner of the industry where people only work with people they already know?
- no_wizard 5y agoThere are parts of our vast industry that aren’t as large, and the “premier” places to work at are only a few big names. Embedded systems comes to mind for me here as does something like chipset design or telecommunications infrastructure, just to name a few examples I can think of All complex rewarding software jobs but it’s not the same as say, web development, in terms of choices and volume
- Kalium 5y ago> How can a handful of names across an entire industry meaningfully affect your career choice? I've found myself approached by recruiters for the exact large company and sizable department that one of these people has substantial rank in. It's already had an impact on my decisions.
- throwaway-bozo 5y agoI am well into those years myself, and respectfully, while I agree with the importance of being humble and remembering the incredible challenge of the task, the bozo bit can be very valuable. Not everyone in this industry is a hardworking talented joy operating in good faith. To give a concrete example, at one point in my career, I was leading a team trapped on a death march project. We did not have the option of abandoning it, due to a meaningful fraction of the company’s revenue riding on its success. We did not have the option of more resources for the usual reasons. And we did not have the option of more time, because executives had already de facto announced when it would be done. Unfortunately, our direct upstream dependency in the company saw us as a rival - because they had wanted to own this project - and spent multiple years trying every way they could to sabotage and undermine us, including lying to us in meetings, lying about us to others, changing key system aspects to make our problem harder to solve, denying access to critical resources and people, pitting vendors against each other, and giving unsolicited negative peer reviews to people working on our team. To say this was a difficult experience would be an understatement. I had four employees quit. I myself started having panic attacks twice a week and was in therapy for over a year to work through the crippling anxiety I was feeling every waking moment. I still have persistent health issues from the incredible stress of those years. We landed the thing, got our pats on the back, and then I quit. The main guy responsible for this campaign of sabotage and mistreatment was much higher level than me in the company and punching down as hard as he could. He left successfully for a larger role at another company once it became clear that our team was going to hurdle any roadblock he threw at us. It was a knock-down, drag-out fight. I will never do anything like it again. If I ever found myself working with that person or any of his leads again in any capacity I would quit instantly. The bit is set.
- busterarm 5y agoHere here! I can get behind this for sure. I also agree with the utility of the bozo bit. I worked somewhere where a long time engineer got Peter/Dilbert Principled at just the level of Team Lead. Once you've done four years or so in the org, they don't fire you just motivate you to quit. Anyway, this person gets moved into a Lead role with a team of one person where he can do the least harm. He's awful to work with, can't communicate properly and derails every meeting he's in with complete tangents. Bozo bit!
- Supermancho 5y agoThere is no fixing some people. They want to believe that a single narrow interpretation of something is right, by their own experience. You cannot change their mind. eg There is no multiple inheritance in Java so you aren't going to use Java.
- Lammy 5y ago> There is no fixing some people. They want to believe that a single narrow interpretation of something is right How would I not be doing the same thing if I looked at other people as needing to be "fixed" any time their thought processes don't work exactly like mine?
- exmadscientist 5y agoPeople who have different thought processes from me are great! There's plenty to be learned. People who are Always Right and who believe that anyone who disagrees or sounds like they might be disagreeing is Always Wrong and must be shouted down... those people are not worth fixing. I assume these people are what GP is talking about. And yes, those people are real. Quite rare, but real, and a major pain in the ass to route around. Always assume that it is possible for you to be wrong. Even if you think you are not wrong... just consider what the world might look like if you were wrong, and you'll be fine.
- deleted 5y ago[deleted]
- mcguire 5y agoThank you! I was mildly troubled by the comment towards the end, "There were third- and fourth-generation members who I had no idea about who had signed up to talk about reliability without being second-guessed to death and hounded by people who just wanted to talk about [...] "a lot of work went into that"." I've been sensitized, I guess. Yes, the way we do things is probably stupid. Yes, your favorite new framework or method or language or whatever might trivially fix all the problems that you can see. Heck, you might even be the smartest person in the room. But, there might also be a reason things things are stuck at a historical, local maximum.
- Kalium 5y agoYou are absolutely right, and I think the author would agree with you. Sometimes there are strong, compelling reasons that justify not changing things. Inconveniently, sometimes the reason is "a lot of work went into that".
- cratermoon 5y agoChesterton’s Fence: don’t ever take down a fence until you know why it was put up
- stjohnswarts 5y agoI think your "rule" makes a good 80/20 rule. I'm only mid-career but at this point I have worked with people that I will never work with again. I would accept code from them but as a team member I would insure that there was an impenetrable wall of management between us.
- jart 5y agoI always try to pounce on negative feedback since it might be the sort of thing other people are thinking too but aren't mentioning out of politeness. If you think about things that way, you'll optimize your way to senior engineer real fast. It's not personal. It's strictly business.
- monksy 5y agoThis sounds like the Cats vs Zio drama. Most of it revolves arround 'we don't like JDG'