When competing head to head for a fun competition, many of these things come naturally but when given 'time' it can be easy to fall back to less productive habits when a deadline is months away.
Like my mentor Steve Hayes once told me 'hands on keyboard'
I think it depends on your definition. If you compare with the average programmer in your company then you can easily be a 10x if you're working in a big company where the average abilities are low. But it becomes very hard in a smaller company where most of your colleagues are competent.
If you define it relative to a more global average I think it's too difficult to know what an "average" programmer even is.
Now if in that big company you have to work only on small parts of the whole it often becomes harder to be fast again, since your colleagues might be writing APIs with a lot of hidden complexity.
If however your task is more isolated it becomes easier to do good design.
I think Antirez[1] has more practical advice on how to actually become a "10x programmer"
Key points:
* Experience: pattern matching
* Knowledge: some theory is going to help
* Low level: understanding the machine
* Debugging skills
* Perfectionism, or how to kill your productivity and bias your designs
* Design sacrifice: killing 5% to get 90%
* Simplicity
* Focus: actual time VS hypothetical time
[1] http://antirez.com/news/112