&gt; Give me a spec as complete as precise and as a blueprint for a building or a bridge and I can give you a pretty good estimate.<p>I would argue that that would in fact be the source code for the program!<p>I know that sounds flippant, but - civil engineers and architects will correct me I&#x27;m sure - a blueprint to me is a set of pretty clear and hopefully unambiguous instructions, just not necessarily in a chronologically ordered list format. To torture the metaphor even further: the act of building the building from the blueprints is the same as running the program.<p>The key difference is that in the case of building a computer program the hard part is writing the instructions and in the case of building a building the hard part is execution of the instructions. Building designers have the advantage of centuries (millennia, even) of knowledge and some pretty hard limitations set by physics. Money and time aside, computer program designers are more or less limited by hardware and imagination.<p>I really do hope someday programmers will look back at conversations like this and think not that their counterparts of the past just needed to deal with it and be more professional but that we just didn&#x27;t know any better way, yet.