Here’s a great definition of what a software craftsman is. It’s also similar to the way I think. And this is also part of the Introduction in the book Agile Java.
I am a software craftsman. I have spent much of my software development career trying to quickly build solutions to problems. At the same time I have tried to ensure that my solutions demonstrate carefully crafted code. I strive for perfection in code, yet I know that it is unattainable, particularly with the constant pressure from business to get product out the door. I take modest pride in the code I build daily, yet when I look at the code I wrote the day before, I wonder, “What the heck was I thinking?” This is what keeps the craft challenging to me—the constant desire to figure out how to do things a little better the next time, and with a little less pain than this time.
ReferenceSafari eBooks – ACM – 0131482394 – Agile Java™: Crafting Code with Test-Driven Development