There are many, many traits needed to be a good (or great) software developer. You see them mentioned everywhere: math skills, deductive reasoning, curiousity, craftmanship, etc.. I also think they need resolve.
Resolve to push through the tough times and the easy times. All of us are expected to adapt to new or changing requirements. A lot of us must also push through the moribund things we have done a 100 times and offer no challenge whatsoever. Just this week, I was cruising through some website changes in classic ASP, when one phone call turned the whole week to....well, nasty.
Just look at this example from Computerworld. I can guarantee you there are software developers involved in the decisions making process at these small businesses, helping decide whether to buy, build or maintain. That takes resolve too.