Alex has a very interesting post up, What the good developer and the good software architect really are.
His definition (explained at length in the post):
A “Skilled computer user is a person who can accomplish most of their goals using computer and software installed on it by himself“.
A “Software Developer is a person who can make another person be able to accomplish their goals using new software they made“.
A “Software Architect is a person who can make another person be able to accomplish their goal as a Software Developer“.
I think this is a helpful definition, both in our roles as software developers (to try and be clear about what we want our users to be able to accomplish, and to view their failures in using our software as calls to our own improvement) but especially as software architects (we need to have clear goals, as architects, about what kind of capabilities we want our software developers to have, and to measure our success by theirs).