I think there is a lot more granularity in abilities than you are accepting. Like the article discusses, there are many different skills that make up "programming." These include writing code, architecture, data structures, communication, debugging, interface design, documentation, etc. To say that there is a bimodal distribution is to say that all developers are either extremely good at all of those things or extremely bad at all of those things. From my experience, even the best coders are still lacking in one of those areas, and even the worst coders are usually pretty good in one of those areas.
I also think you arbitrarily use the 10x thing a lot based on how you feel things are happening and not actual measurements. It is simply illogical to assume that all developer either fit into a category where they will complete a task in 1 day or 10 days...I'm using speed here because that is the metric you used in your post. I think what you will see more is a wide range of timeframes that developers will finish a task in. And with that some of them will have great interfaces, some will have terrible interfaces, some will have average interfaces. Furthermore, some will have excellent documentation, most will probably have no documentation. Some of the developers will be able to clearly articulate everything that is happening in the interface and in the code, some will not. Some will have created reusable frameworks, some will have hardcoded values. The quality of how they perform the task will be very granular based on a number of aspects, speed being only a small part.
The bimodal distribution your anecdotal evidence points to is very lacking in the full scope of what makes up "being good at programming."
I also think you arbitrarily use the 10x thing a lot based on how you feel things are happening and not actual measurements. It is simply illogical to assume that all developer either fit into a category where they will complete a task in 1 day or 10 days...I'm using speed here because that is the metric you used in your post. I think what you will see more is a wide range of timeframes that developers will finish a task in. And with that some of them will have great interfaces, some will have terrible interfaces, some will have average interfaces. Furthermore, some will have excellent documentation, most will probably have no documentation. Some of the developers will be able to clearly articulate everything that is happening in the interface and in the code, some will not. Some will have created reusable frameworks, some will have hardcoded values. The quality of how they perform the task will be very granular based on a number of aspects, speed being only a small part.
The bimodal distribution your anecdotal evidence points to is very lacking in the full scope of what makes up "being good at programming."