Ask HN: Best metaphor for software development?
https://news.ycombinator.com/item?id=1979486You know when a client comes to you with a three-sentence description of a project?
And you want to scream that "NOOOOO it doesn't work like this! I can't tell how much that will cost WITHOUT AT LEAST spending half a day understanding your whole concept, doing some research..."
Now, these people are not stupid/evil, they just don't have the SLIGHTEST idea how complex software development can get.
So I try to explain it using different things, for example, "you know, even a painter can't give you a quote without seeing the whole house from the inside?" But that still implies that if I only knew the wall area that has to be programmed, I could give an exact quote.
Other times, I use architecture as a simulacrum, saying "you know how you need a plan for a house? You can't just ask a bricklayer how much a new house will cost." But then it's hard to introduce agile development later (no big plans).
Sometimes I say that new software is like developing a new car; but the differences between car and car are MUCH LESS than between software and software, so it's not very good either. (Who would have his own car developed?)
What metaphors do you guys use to explain software development to "mere mortals"? Please help, I'm out of ideas. :)