May 172011
 

I write this post because I am often amazed at the naiveness of some engineers who believe that the impact of finances on technical decisions stifles innovation. No! money is what pays for the whole party and must be the most relevant factor. In my opinion, using the dollar metric adds a very important dimension to engineering, making it more interesting and productive.

While technical metrics like performance, power, and programmer effort make up for nice fuzzy debates, it is pivotal for every computer guy to understand that “Dollar” is the one metric that rules them all. The other metrics are just sub-metrics derived from the dollar: Performance matters because that’s what customers pay for; power matters because it allows OEMs to put cheaper, smaller batteries and reduce people’s electricity bills; and programmer effort matters because it reduces the cost of making software. The best analogy that comes to my mind is that “make money” is our constitution and the other metrics/rules are mere laws that evolve over time.

I present a few examples of chip design patterns that may look like technical innovation but really exist because they are dollar-motivated:

1. Moore’s law. The motivation to shrink the transistor is to reduce die size which increases silicon yield, to improve speed (and reduce power) that increases value to customers, and to get an edge over competition. The reason Moore’s law has continued because it brings in a lot of dollars for big companies. It forces frequent upgrade cycles which in turn increases revenues which in turn pays for the research that goes into keeping Moore’s law alive. A big chunk of why Intel leads this curve is their high profit margins, which allows them to pay higher salaries, which attracts the best of the best engineers, who keep Moore’s law alive. If the profit margins were to reduce, the back pressure will automatically throttle Moore’s law. In summary, Moore’s law is indeed a law of economics.

2. Out of order execution: Believed to be a performance enhancing technique, is actually there because it is a big money saver. Out of order execution improves performance of mediocre code which allows programmers to focus more on functionality and less on performance. It allows for a faster turn around time of software. Note that other techniques that improve performance at the expense of programmer effort are often not embraced. In fact, writing highly efficient assembly code could replace the need for out-of-order but it was replaced by out-of-order because it made sense economically.

3. Good maintainable code: Yes, it looks elegant and clean but maintainable code is solely motivated by dollars as well. Software engineers have learned that it saves more time overall if code is written well.

… and the list goes on …

My main point is that engineers should not loose sight of the right metric when chasing smaller metrics. It is often difficult to understand this concept because it’s not taught in school. I am not saying that it is unreasonable to teach students untainted technical concepts in a puristic premise; I am only advocating that they should be given the broader picture at some point.

Any ideas for college professors?

I will start. The senior design projects can explicitly be evaluated for economic feasibility. We can ask students to either stay within a certain time/money budget or figure out how to monetize their project to generate the extra amount spent. Thoughts?

  6 Responses to “Dollar — the only metric that matters in computer engineering”

  1. @FutureChips “Out of order execution improves performance of mediocre code which allows programmers” …to generate more mediocre code. ;)

  2. @bkaradzic Thanks for reading. Yup. OoO has inspired a lot of poor, quick & dirty code, but multi-core is trying to change that once again.

  3. This reads like a nice collection of “tail wagging the dog” examples. Following this kind of reasoning, you could attribute anything to whatever cause you fancied.

    • I think my point is that dollar is the “dog.” You cannot take anything and connect it to anything else.
      However, you can attribute most causes to dollar, hence my point:-)

      Just as a simple counter example to your claim, I don’t see how you can explain quick crappy coding with anything else but dollars. You can say its lack of expertise etc but I would argue all that is just because dollar motivation is low. There is extra performance due to faster cores, coders can get away with mediocre coding, consumers pay for mediocre code so the metric of goodness shifts to time-to-market and hence coders continue to sacrifice code quality. If today consumers decide that they will not pay dollars for crappy code, everything will change. I would say that the back pressure would go as far as changing university curriculum to include courses on good coding. Its all economics. As soon as competition shows up, and dollars start going down, things start getting fixed. All other reasons about things being hard, technical expertise, just disappear.

      I appreciate your point though, so I welcome criticism to this comment. I am open and may be I do need to think from a different angle. Looking forward!

  4. I can understand where the author is coming from but just as Mijail stated, many of the examples used are not very convincing. I think “practicality” is a simpler term for his dollar-rules mentality. A company’s purpose is to make money, if you are efficient you maximize the return on your product and that gives you an edge against the competition.It benefits the company in many of the ways described in the article and allows for many positives. This is where practicality and the almighty dollar diverge. Just like in the order of execution example the author says that “writing highly efficient assembly code could replace the need for out-of-order but it was replaced by out-of-order because it made sense economically”, i.e culling corners. This is the old cart-before-the-horse trick. I understand that it may be easier and cheaper to go back and fix the code with the tool but doing thing right the first time is efficient and practical, when you have to create something to fix what you are not doing right, you have just wasted your money. This contradicts the dollar-rules argument and proves that sometimes, if you wish to be a leader, quality trumps the dollar in a competitive market. Just ask any company that went belly-up after letting the dollar-first mantra lead them to unwise decisions.

    • Jeremiah,

      Thanks for a detailed response. It is insightful. I guess ours is a subjective argument and there is no right answer. I really enjoyed reading your arguments and I see them.

      By the way, I think you are misunderstanding the dollar mentality. It does not mean being short sited, in fact being short sited is the exact opposite as it does not maximize dollars. It also does not mean being greedy and snatching every dollar from others. Sometimes it means giving money to people in order to get a higher return later, e.g., Sony is losing money on every PS3 they sell. It also does not mean lower quality. Sometimes maximizing profit requires producing the highest quality products and other times the time to market is the top metric. The right mentality is to optimize for total profits, not for an intermediate metric, e.g., quality. IMO, companies go belly up when they optimize for an artificial metric. For example, IBM did not think profits when they let Intel make the processors for the IBM PC because they did not want to build “toys.” Wrong metric. See where they are today.

      Aater

      ps. When you say quality triumphs, I assume you mean that quality brings in the most dollars. Please let me know if I misunderstood.

 Leave a Reply

(required)

(required)

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>