

Ask HN: Best metaphor for software development? - kkovacs

You know when a client comes to you with a three-sentence description of a project?<p>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..."<p>Now, these people are not stupid/evil, they just don't have the SLIGHTEST idea how complex software development can get.<p>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.<p>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).<p>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?)<p>What metaphors do you guys use to explain software development to "mere mortals"? Please help, I'm out of ideas. :)
======
sainttex
Possibly, leave the stories behind and stick to building out a scope of work
that both you and your client can clearly understand.

It doesn't have to be crazy, and will most likely take less time than clearing
up a rough metaphor to programming, which your client most likely has no
interest in understanding.

Scopes can be very quickly done, be used in contracts/legal docs and keep both
you on the same page.

