Usually I start off by saying I "build websites". And even that seems to be a too big a challenge to grasp for some, giving me that hardened websites need to be built?-look. If these are strangers I quickly try to abandon the subject, but if they are friends or close relatives I usually insist a little longer. Before you know it you're that guy that does things with computers and you have your agenda booked with Windows installs and network setups. Believe me, I'm not that guy.
These occasions are becoming rarer though, most people these days have had some first-hand experiences with websites. And so people will likely categorize you as a programmer (back-end/cms programming) or a designer (the guy choosing the colors). If you happened to have worked on a site they like to frequent they will probably tell you about how they don't really like the color palette or they'll bring up that one time when they hit a 404 error when using the contact form. Again, if you're not too familiar with these people, better to abandon the subject right there.
If I'm in a good mood though (or just can't stand the fact I'm being blamed for something I didn't do) I'll insist just a little longer. That's when terms like front-end, browsers, rendering, accessibility and a range of other difficult words start flying across the table. I also like to add I try my best to make sites accessible to (visually) disabled people, though beware, some people don't like the fact you're making fun of them. Convincing them you're not kidding around can be quite difficult in its own right.
If all that fails, I'll resort to using analogies. Never a good sign but when one runs out of options there is little else to do.
it's just like building a house (but not quite)
Problem is, I haven't been able to nail a simple, understandable analogy yet. I usually compare building a site to building a house, but there are some obvious differences of which my line of work is probably the most glaring one. Still, it does at least help to make them understand the complexity of building a website.
The architect drawing the plans combines the functions of wireframers and designers, construction workers can be seen as the back-end people building the actual site. Writing css is like doing the actual interior decoration according to the plans of the designer. The problem is that building a house doesn't really require life-size prototyping. Writing html as a prototype for cms output is rather unique to our job and doesn't really fit the house analogy. It puts our job somewhere between the architect and the construction worker, but we don't really belong to either side.
Still, it's the closest I've come to properly explain what it is I do all day at work, so until I find something better I'll keep using this analogy.
so what about you?
I know I can't be the only one with this problem. Unless you're talking to tech-savvy people who have had some prior experience with building sites or applications for the web, explaining the function of a front-end developer requires serious effort. Most explanations will fail, analogies usually make it even worse. And conversations quickly turns into horrible disasters when people are just looking for simple small talk.
But I'm positive there must be better ways to make people understand what it is I(/we) do. What do you say when someone asks you about your job as a front-end developer? Tips and hints are definitely appreciated!