> Also, it's good to have some management and leadership skills.
It's good, but not everyone wants to be a leader, and if everyone led it would be chaos. You're not a failure for not getting promoted into management.
> A programmers aim shouldn't be to simply write good programs, rather it should be developing really great products.
Yes, but programmers can work on teams with great designers. They don't need to do all the jobs.
Every skill on this list is a skill that takes the place of something else in your life. There's simply a finite amount of time in each week, and if I want to get better at design does it mean that -- maybe I give up on guitar or baseball or something?
I encourage programmers to think about what they really want -- not just at work but in their life -- and remember that the loudest folk are also the strangest.