All developers suck
Not only the top 20%, but every single one. Maybe they do not suck at programming, but on something else - documentation, communication skills (I remember some mails from my coworkers) or driving their car. So everybody sucks at most things he or she is doing. Unfortunately, most of us suck at what they do at work.
I know that most of the code I have programmed so far sucks, and there is only a handful of programs I’m proud of (and I started some 15 years ago…). According to Jeff, I should put myself to the alpha programmers. But that doesn’t mean I’m good at what I do - just that I’m trying to get better. Thats why I’m sitting on my computer on a Sunday night writing a blog article.
But not everyone sees his profession that way. Many of my colleagues never had a formal education in computer science, some of them had other jobs and got downsized, other never got one in their field. But I think they all have some areas of interest where they really excel - it just happens not to be their job. Maybe its something where you cannot earn money with, meybe they just don’t want to have their hobby as their main job.
For companies trying to get their programming jobs done, the best advice could be to try to find these 20% programmers, and to encourage all of the other ones to think about their work. Educating them is one way, or find other incentives for them to get better. The wrong way is to aim low and try to write your software in ways you think that even the worst 10% of your developers can comprehend. Do that, and you will get the worst 10% of software ever written.
(Its interesting - in programming, we accept it as normal that there are bad programmers, and we think we need to live with them. When my car needs fixing, I would not give it to a carpenter, but require someone how knows his work).