For years, when trying to explain what programming is like to non-IT folks, I've used the example of trying to explain to someone how to make a peanut butter and jelly sandwich. It's a nice thought experiment as you describe all of the ways that their instructions can be misinterpreted.
This guy shows it in practice and it's great:
That is exactly what programming is like. Right down to the laughter in the beginning as things are messing up in funny ways right on to the "would you just work already!" frustration at the end. Even how happy the girl was in the end to be "done". "Just ship it, it works!" "But the knife..." "SHIP IT!"