In most of the industries it is relatively easy to calculate a price of a product. Generally its the cost of raw materials plus some margin. Software development, however, is a completely different beast. It’s very hard to accurately estimate the cost of a project and there is a very good reason for that. There are just too many variable involved in software development.
More often than not the project requirements or scope is not precisely defined. The technology to be used completely depends on what is going to be developed and also a lot of the times it will be of varying quality. The implementation, documentation or fitness for the project completely changes based on how things get understood by the developers. As one can appreciate that it is not possible for people to know about every different field, projects from different fields require developers to learn about new things and ideas and concepts. Not only that, a developer will then need to code a solution to the problem at hand. All of this requires time, effort and knowledge.