I do anything from front-end design, styles and scripts to back-end programming and server management and I've always just said "developer".
Folks within my field get a sense of what I'm about from that or ask further questions about the specifics, and those who aren't and maybe aren't familiar with the term don't stick a label on me that may be too specific.
It's been very interesting to me, having done mostly web work for nearly 13 years, to see the labels change. Whether it's "front-end ninja" or "full-stack developer" it's usually very general. Everyone seems to want a label but no one wants to commit to something specific.
A plumber wouldn't usually say, "I'm a plumber and do mostly joint fittings, but I also specialize in X, Y and Z" -- they just tell folks they're a plumber.
Stick with something simple and give the details when asked.
This is why, when describing or introducing myself to others, I often avoid using the words "I am" at all. Compare:
"I'm a C++ software developer, computer graphics/desktop application programmer, and hobbyist game developer."
To:
"I work as a software developer. I have thorough experience with C++, particularly in computer graphics and desktop consumer applications, and I enjoy doing some game development as a hobby."
Which one of these people seems more flexible? More capable? More well-rounded?
This idea is powerful, because the more you internalize things like this as part of your identity, the more you limit yourself. You end up pigeonholing yourself, both in your own eyes and in the eyes of others. Describing myself with the second method also allows me to go on about other things I've done: how I have some experience with Python, Ruby, Clojure, Javascript, and even Prolog, how I've dabbled in AI, machine learning, signal processing, and web design, or even how, although I work as a software developer, I have an interest in the arts, like music and graphic design, and a broad background in many science and engineering disciplines. Not so with the first method—it comes across like I'm defining the absolute extent of my character.
And this doesn't apply just professionally, either. You start thinking yourself as "an X", and chances are your behaviour will align to what you think "an X" should do rather than what is right or best for you specifically. And "X" can be anything from "C++ developer" or "front-end web developer", to "liberal" or "conservative", to "atheist" or "Christian", to "American" or "European". Each one of these puts a straitjacket on your identity, and doing this can tangibly influence not only your self-image but also your actions.
I like this idea of getting people to questions the labels they use to describe themselves: think about what "tribes" you're in, and why.
It also gets to a deeper issue that OP starts exploring at the end: ultimately, what really matters, is who are we helping? Who are our customers and what do they need?
Folks within my field get a sense of what I'm about from that or ask further questions about the specifics, and those who aren't and maybe aren't familiar with the term don't stick a label on me that may be too specific.
It's been very interesting to me, having done mostly web work for nearly 13 years, to see the labels change. Whether it's "front-end ninja" or "full-stack developer" it's usually very general. Everyone seems to want a label but no one wants to commit to something specific.
A plumber wouldn't usually say, "I'm a plumber and do mostly joint fittings, but I also specialize in X, Y and Z" -- they just tell folks they're a plumber.
Stick with something simple and give the details when asked.