Okay, I'm an optimist. And I went independent in 1993 after five years of desktop support and microcomputer management.
But I think that there is no one-size-fits-all solution. And the more we know what we're good at and what we want to do, the better we'll be able to move up in a career.
I don't mean you have to be a specialist. If what you love is being a generalist, then go for it.
Success is achieved by adding value. To succeed in a job, we need to maximize value for two--for ourselves, and for our employer.
Value for ourselves includes our paycheck. I suggest it should also include something between an acceptable job and a rewarding career. (Which one is your choice--how important is your job in your life?)
Value to the company (or organization) comes from understanding what the company needs. And that does require good communictions skills, as many have mentioned. It helps to understand the industry or agency you are a part of. And, if you don't like your job, to understand how other industries work, as well.
For some people, it is crucial to do what we love, and we have to carve out a niche, either through career development, or through going out on our own and then marketing what we do.
For others, we're more willing to do what others want in return for a paycheck.
But note--in both cases, understanding what others want is crucial. I recommend getting past job titles and looking at functional roles and work processes.
You might also consider self-evaluation for personality preferences or skills.
My suggestion, figure out what you want to do, and then find someone who will pay you to do it.