Often times users cannot comprehend the complexity of software. They think that because a problem is easy to describe then it is easy to solve. I want to equate the complexity of a "simple program" I have built with the complexity of a process with a tangible result.
Is there a system that can take tangible processes and assign them a complexity such as:
Building an outhouse = 5
Building a house = 50
Building the empire state building = 5000
that I can then equate to the software in a meaningful way:
thisProject = 5
Maybe the project weight is determined by Cylcomatic Complexity. Whatever it is is not that important. What is important is that such a system exists. Does such a system exist?
I'm looking for a means to compare the complexity of two complete systems. I am not looking for estimation methods. The limitation I see in using "money and man hours" is that the laymen (or maybe even somewhat technical) individual could attribute the reason the project took so long and cost so much money is because the developer(s) were simply not good at their jobs.
Thinking out a possibility...
I imagine a solution to this problem could be similar to Dijkstra's algorithm. Create a flowchart for System1 and another for System2. Give each decision a weight based on how many routes the decision contains. Give each action a weight as well. The cumulative weight of each respective chart can then be used to compare the two processes.
For the "tangible process": If some engineer mapped a flowchart for "building an outhouse" then we could use such an algorithm to obtain a "total weight" for the process.
For the "intangible process": Assuming the entire program can be mapped to a Finite State Machine then it can be described as a flowchart and assigned a weight as well.
So the outhouse process is weighted at 50 and "my program" is weighted at 60. So it's about as complex as building an outhouse.