I'm halfway through scrolling this long thread, and this is the first comment I've seen that isn't overly cynical. It's also correct.
I've been working for 38 years, and I've been someone who makes promotion decisions for 15 of them. The third one is helpful, not essential, but the others are super important. The people who rise to leadership positions aren't necessarily the top technical people, they're the ones who do those things with a good attitude.
The other thing I'd add is that they're people who are able to see the big picture and how the details relate to it, which is part of strategic thinking.
I was taught that my job is "to make sure all my bosses surprises are pleasant ones". 15 years of working as an engineer and that never changed. Now I have my own business and that's the thing I look for employees.. someone I can leave on their own to do a job. It they have problems they can always ask me. If they screw up I expect them to tell me immediately and to have a plan of action to fix it and to prevent it happening again. And I never ever get cross if someone does come to me and say they screwed up. Far better that we tell the client about a problem than wait until the client finds the problem themselves.
Reading all these comments makes me realize how lucky I've been in my career. I've always had great bosses who defended me and backed me up.
I'm not sure if the competence is really in the last place. I'd say it's on the equal level. Great communication and ownership of the problems means little if you can't really solve the problems.
People have those things in spectrums, not all or nothing. You have to have at least some of all of them, but I'd argue that mediocre competency with really good communication and accountability is a better combination that really good competency with one of the others being mediocre.
I still kinda disagree. We're talking here about engineering role after all. I have a colleague who is a code wizard, but has kinda problem with (under)communicating. He's still widely respected as a very good engineer, people know his communication style and adapt to it.
But if you're a mediocre problem solver, you can't really make up for it with communication skills. That kinda moves you into non-engineering role like PO, SM or perhaps support engineer.
But I would say this - once you reach a certain high level of competence, then the communication skills, leadership, ownership can become the real differentiating factors. But you can't really get there without the high level of competence first.
We’re talking here about engineering role after all.
where? seemed like general advice.
Even then, thee aren't mutually exclusive. your competence will affect how people see you on a personal level, at least at work. And your competence affects your ability to be given problems to own. You're not gonna give the nice but still inexperienced employee to own an important problem domain. they might be able to work under the owner and gain experience, though.
Documentation and presentation are highly undervalued, and your ability to understand and spread that knowledge can overcome that lack of experience to actually handle the task yourself.
I think we might be agreeing, it's just that "mediocre" means different things to each of us. My team supports human spaceflight, and no one we have is crummy. The "mediocre" people have pretty decent technical skills if you're looking across all software development domains.
Personally, I've found the decent technical skills to be easier to come by than the other ones, and having all of them in one package is a real discriminator.