Seeing visual progress

As a developer, a great deal of what I do is totally non-visual yet ultimately will power a web page, app or similar. Obviously the people paying the bill like to see progress but without showing reams of code and a terminal output, how do you convince a product owner that things are progressing?

I've been coming up with a few analogies to try and illustrate my frustration of being asked to put the roof on when the foundations are still being dug. (there's one straight away).

I shouldn't need to do this really because when you're building something, common sense would tell you that some things need to be in place before others.

Imagine if you will, a car, it's been painted and looks pretty much complete. The client has seen the car and needs to see something new next time we show it - this means perhaps things like alloy wheels, stickers and numberplates need adding.

That's all very well and good but what if I tell you that the car is actually made of papier maché and was just an illustration of what the real car will look like. Lif the shell and underneath we're still welding the chassis and building the engine.

Eventually it'll look the same but the paper will be replaced with a real metal body.

Now, tell me where you expend most of your energy? Making the papier maché version look amazing or focus on the welding etc?

I don't know, perhaps I'm being a grumpy sod as usual but this kind of thing really does wind me up.

As I see it, working to defined sprints and showing the completed stories at the end is the only way to stay sane. It's then down to the developers to work to a defined set of user stories and when it gets done over the course of the sprint doesn't matter, just that is does get done. Please don't ask me to drop everything and interrupt my flow in order to add something useless that I'll be changing anyway so you can show someone.

If it's not in the sprint, it's not an immediate concern. Any new jobs can go in the backlog to be picked up when relevant. This way, your user stories should go towards the proof that work is being completed.

You can polish that car all you want but when I chuck it out to put the metal body on, you'll wonder why things have gone backwards.

Sorry, rant over.