- let people finish their statement: If you don't let someone finish and you interrupt, they will decide that you are just refusing to hear them out rather than disagreeing. It doesn't matter if you can prove mathematically with extensive sources and footnotes, most of the time they won't be able to accept that you understood their point and showed it to be flawed.
- pause long enough after they speak: Again, if you instantly explain why they are wrong, most of the time other people will not be able to handle this. They will decide you didn't actually consider what they said. It doesn't matter what is actually true, and if you somehow do convince them that you are right they will be doubly resistant since you are making them feel stupid on top of everything else. A huge benefit of this and the previous bullet is that you will often find that at first you misinterpreted what the person was saying, so you were about to disagree for no reason.
- don't force them to admit to themselves that they were wrong: if you let people 'save face' they can just get on board and agree with you. If you force them to grapple with being wrong they will be difficult and will hate your guts. It may seem silly, but replying 'I don't think that will work because ...' is going to be the source of turmoil, when saying 'Interesting. Previously we did something similar to that but we had a problem where ...' is going to win the other person over instantly most of the time. Later they will see that they were wrong, but you didn't rub their nose in it and force them to grapple with it in a social setting where they are going to have to feel shame.
Failure to do these things is just what people mean whenever they say someone is arrogant.
If the ground premise is wrong, and you see where they are going with this silliness, it’s challenging on multiple levels to “let them finish”.
This will let you feel superior and get the pleasure of making the dumb person feel terrible, but it really won't accomplish anything productive. What do you hope to gain by doing this? Will they start being smarter? Will they be better at their job?
I'm sorry, doing what you describe is just being a bully. If management isn't dealing with the problem person you should privately make them aware of the issues (in writing if possible). If management is aware of the issues and won't do anything about it, well you did your part and you aren't allowed to fix the problem. Unless it is a life and death or national security situation, either accept that the dummy is going to be around or resign.
If they haven't done any work for a year their manager is useless. You work at a place where managers don't do their job. If you take it upon yourself to set this person straight, you are basically propping up this useless manager. Useless managers hire useless people and chase away good people. Fixing this problem treats the symptom and may let the bad manager last longer than they would have otherwise, which means you are going to have to go set two additional people straight about how useless they are next year.
I do not think it's bullying to give a bully a taste of their own medicine. It may not solve the problem, to be sure, but pushing back on bullies is not wrong. Pointing out their cognitive dissonance, and drawing a line from their stubbornness to being a bad developer is not wrong either. In particular where the manager doesn't care because 90% of the time that developer is delivering the goods, and just doesn't properly assess the ensuing (UI/UX) hostility.
Bad UI will piss off users. It's I completely expect they should express that frustration directly to the responsible developer. If that developer can't handle it, both accepting the criticism and making appropriate design adjustments, get out of the UI/UX development business.
I don't really subscribe to Kant-style categorical imperative thinking or defeatist attitudes, but in this case I've always made better progress changing an existing bad thing by being "demure" and accommodating. I might have agency to change things, but if an group of others have have agency to keep it the same, failing to cooperate is counterproductive unless I entirely opt-out or leave.
For milder/more moderate cases, giving someone a way to concede without publicly admitting they're wrong is a often a useful tactic to get said person to do things the right way while building trust in your relationship with them.
This is a management issue. In a rational engineering organization this guy's manager would be like "okay, so we know there's a problem with this tool. Now how do we work around the tool so we can move on to another problem?" And if the conversation becomes "workarounds are stupid we need to make them fix their tool" then the manager needs to be all like "I agree with you in a perfect world that's how things would work, but we're engineers being paid to solve people's problems and not to build the perfect software system. So build the workaround so we can solve the problem and we'll circle around and fix the tool when we have time."
It is failure of this one way more then just lack of pause - especially in long term relationships.
I think that an inability to admit a mistake is arrogant and results in a lack of accountability and ownership over individual's work. If someone makes a mistake they should be proactively owning it and trying to find solutions to avoid similar mistakes in the future.
> if you let people 'save face' they can just get on board and agree with you. If you force them to grapple with being wrong they will be difficult and will hate your guts
Your response to my post:
> I doubt you properly understand that other people are full thinking beings equal to yourself since you assume everyone secretly agrees with you about every detail of everything all the time and the only issue is whether they are going to admit it or lie.
To me, you're contradicting your own position. It also seems to me that you're the one that doesn't "properly understand that other people are full thinking beings equal to yourself" based on the arrogance and condescension of your response.
I'm not suggesting you transition into becoming a PM or Architect or anything like that, just saying that developers like you count, too. If you have a decent work ethic, then you and your unique brand of knowledge-seeking have something to bring to the table.
As you advance up the mountain, you will learn to see complexity simply. When you make this realization, your components will simplify dramatically. You must learn to see simply before you can design simply. It just takes time. There's nothing wrong with this, humility doesn't mean giving up your belief that you're capable of anything.
We were all born without any knowledge. We all learned everything we needed to know to get where we are today. We've put men on the moon. We've sent probes to escape our solar system. We've sent submarines to the bottom of the ocean. Humans have the capability to do anything we put our minds to. You can too. Everything you understand today, you've learned in the short lifespan you've had. Today you will learn more, and tomorrow and the next. Just because you find humility in your place, doesn't mean you're not capable of anything.
> Humans have the capability to do anything we put our minds to. You can too.
> doesn't mean you're not capable of anything.
That does sound like you're talking to individuals. Turn down the hyperbole a notch and I might even agree
In fact, I wonder if the narcissism you speak of might have more to do with insecurity, deep down. In my experience, when I see myself taking a behavior that I consciously am against, the cause tends to be emotional and the solution tends to be to gently, curiously observe those situations and start questioning how I feel. When I love and take care of my emotional world, it becomes way easier to interact in a way I feel is more optimal on the fly.
I think one of the symptoms is not picking up enough detailed understanding of anything because you keep moving around and don't believe in most external knowledge anyway (eg. don't want to learn [beyond a certain depth] SQL, it's so ugly on some inner level I'd much rather start with datalog and build my own up, don't want to learn economics I don't trust those science cargo-culters). But the other reason you don't want to specialize is that it would be to accept a limit on yourself (OK I'm going to get specialize on getting very good at c++, my upper salary cap is 500k and likely cap 200k, career is mapped out).
One of the things that's slowly curing me I think is running into examples of systems that are genuinely very heavy to understand/improve, and examples of people who are just unarguably higher ceiling in different ways than you.
eg. go watch a SGM play 30 second hyperbullet chess, I don't think I have either the memory or raw processing speed to do what they do, ever. If those guys exist a lot of other people have way higher ceilings. Also realize that chess (and by extension must be a lot of other activities) rely on both a crazy cpu, an amazing memory and an insanely built-out internal database of positions and ideas, and since my cpu is good but not unbelievable, my memory is nothing special and my time is limited there must be a lot of activities I'll never really be good at. Also just getting older and staying unsuccessful relative to your ego, you just start to compromise I think.
SQL syntax may be ugly, but for once, it's an example of a widely used technology that is based on a very firm and well thought out theoretical framework.
As a developer, it is definitely worth investing time in understanding relational databases and the theory behind them.
https://airbladesoftware.com/notes/relational-databases-are-...
That said, fixing someone's shitty microservice code is probably not bottlenecked by our cognitive capacities. It's probably bottlenecked by financial constraints.
The answer to your problem is actually and always "the internet". There, you've peaked.
> I'll never forget that knowledge exists and where to find it if I should need to relearn.
Meaning you'd have to practice to again reach your former performance. Sure you may reach your peak level again and reach it quicker thanks to your old practice. But you do need to practice again. And then again, if you want to keep it.
I was quite sour over the fact that I felt like during the interview process I was lied to about the position and what it would entail. Naturally, I was a bit salty about it and the fact that people were doing things that I would get criticized for. It ultimately hurt my confidence in myself. This made me exhibit most if not all of these traits during my stay at this company. I was trying to make lemons into lemonade. Ultimately I was able help us get on the right path and I was happy with my contributions to the team even if it did ruffle feathers and those people hated me afterwards. I took their criticism and I still try to use it to be a better person to work with.
However, generalists are a very useful component of a team. They tend to be able to have a higher level view of all the moving parts, and typically are great for, say, proposing integrations, or high level system design. Also, often specialists will solve a problem in their specialization, fit be damned. They need someone to derail them and say e.g. "this would be much, much easier if we leaned on MySQL to do this".
So, this feels like a baby and bathwater situation to me.
I'm sorry to read so deeply into your anecdote, but there's some interesting stuff to unpack.
> This can be nice in small teams, but usually leads to components nobody (not even the arrogant one) can understand
This describes nearly every company's MVP, so if you're thinking of a person in particular who had to cobble together some dynamic mess, chances are they have great regret for their design. But remember, tech debt is a luxury in these cases - often the alternative is no job or company, as the runway was exhausted, or investors were not impressed.
> A person believes they're the smartest, but not most knowledgeable, in the room.
I think there's no getting around this. In fact, TBH I hope my colleagues feel this way - I want them to advocate for things they think are better, and I don't want them to instead fall prey to their own insecurities.
It's actually kind of a little self-help bullshitty -- the "you can do anything" stuff -- but truly it's actually not awful advice. I guarantee there's someone you work with who has a better way of doing things, but isn't confident enough to endorse it.
Anyhow... thanks for the writing prompt? ;)
I also believe that whatever domain you're currently in I can outperform you in 5 years MAX.
It's crazy the bullshit we believe that 'feels' right day by day
Expert in what? There will always be people "more expert" than me in any particular domain (specific tech, hobbies, whatever). At some point, there's diminishing returns in becoming 'expert' in things you don't need to be an expert in, when "competence" is enough.
I can't be the expert in all things, or even most things I want to be. There's simply not enough time - people with 10 years of experience on me will always be 10 years ahead - and usually that means there's more 'expert' than me on XYZ (not always, time != expertise exactly, but it's often an signal).
The real problem is they believe "lazy" coworkers will eventually be below them in every subject. They may seek out colleagues' advice some times, but likely will never return because they "get it" now."
They'll act like a "jack and master of all trades." This can be nice in small teams, but usually leads to components nobody (not even the arrogant one) can understand let alone maintain. So experts need to be brought in, anyway.
These people let the quick ascent of "Mount Ignorance" multiple subjects get to their head. No such thing as a Renaissance man anymore.
Sadly, I'm that flavor of arrogance.