I hate the term for different reasons. Calling ourselves engineers (or architects, of all things) is popular because computing is a really amorphous thing and pretending it's like engineering sort of works to give it some structure. It's not really like engineering at all though, and while pretending it is makes it easy to fit in to a corporate environment that understands what to do with engineers, we're straightjacketing ourselves when we do it. Because I had a math-heavy education, I usually think of what I do as being applied math, and for me programming seems very mathematical. I know people who started doing web things straight out of high school, and programming does not seem very mathematical at all to them, it seems like something artistic. I know people who are very into patterns and all that, and programming really does seem like engineering to them. That we can all understand what we're doing perfectly well in whatever terms make sense to us is a good thing, not something we should suppress by believing in analogies too much. It is frustrating and unproductive when the analogy doesn't fit.