It's worth mentioning that there are some people that simply can't brainstorm. For one reason or another, they suck at it. Which I've found is a really bad quality for employees of mine. Brainstorming is a great quality to have in a small tech company. Not just good programming skills.