Derek Sivers writes about how great it is to know the basics of an area (here, it's programming) in order to get basic stuff done yourself, instead of relying on your colleagues/employees/contractors.
I think everybody in this business hears this now and then:
The most common thing I hear from aspiring entrepreneurs is, “I have this idea for an app or site. But I’m not technical, so I need to find someone who can make it for me.” These "idea people" can't create the actual product themselves, and are dependent on others in order to make their idea come true. To me, that would be really fragile and messy.
It works in the other direction as well: programmers should really read up on basic design techniques, such as colour theory, typography, layout and more. The workflow gets so much smoother if the developer himself/herself is skilled enough to do some basic design adjustments for a feature, and then ship it.
The underlying meaning of what I'm saying is basically: be wide in your knowledge. Specialize, but don't miss out on the other areas in the business. Learning new things is a part of life, isn't it?
Sivers has this great quote from his old guitar teacher, saying:
“You need to learn to sing. Because if you don’t, you’re always going to be at the mercy of some asshole singer.” See also my post on "Unicorns" (designer/developer hybrids).