8 The Engineering Triangle

There is a concept in engineering that describes the relationship between cost, speed, and completeness of a project, called “The Engineering Triangle”. It applies to requirements engineering as well as just about everything else.

8.1. The Concept

The Engineering Triangle, simply put, states “Good — Fast — Cheap — Pick two”. What it really means is that if you want something good and fast, it’s not going to be cheap. If you want something that’s good and cheap, likely it won’t be fast. And if you want something fast and cheap, likely it’s not going to be good. In software engineering, “good” tends to mean feature-rich, doing the entire job it’s designed for, and as bug-free as can be. “Fast” tends to mean that the product is produced quickly, or that it runs quickly. “Cheap”, in software development terms, tends to mean that the cost of producing the software is low. However, in engineering involving hardware, “cheap” often means that the hardware itself is cheap to build.

8.2. Graphically

Graphically, this concept can appear as a triangle. Within the triangle, we have our project’s aim, goal, or setting, shown here as a small circle. The triangle has a Good edge (and a Fast Edge and a Cheap edge). We can move our goal all the way to the Good edge. Once at the Good edge, we can move that setting all the we can move our setting all the way to the Good & Fast vertex (where we’re also on the Fast edge) or all the way to the Good & Cheap vertex (where we’re also on the Cheap edge). As drawn, this image shows a project that’s pretty good, and pretty fast, and not even close to cheap.

Note that the Good & Fast vertex is expensive, the Fast & Cheap vertex is bad, and the Good & Cheap vertex is slow.

For most projects, you’ll be choosing something right on the Good edge, and at or close to Good & Fast, or at or close to Good & Cheap. Although when trying things out for ideas, Fast & Cheap is a good way to go.

8.3. The Vehicles Example, with Q&A

It’s always a matter of making the best choices for the project. Let’s look at a few examples.

 
Axios23, under the Creative Commons license
Bugatti Veyron

Good
Fast
Not cheap

Wikipedia DE user Mb1302 under the GNU license
VW Bug

Good
Cheap
Not fast

Alf van Beem, under the Creative Commons license
Fiat X-1/9

Fast
Cheap
Not good

8.4. How Things Can Go Wrong

If you don’t know what the victory conditions are, you’re extremely unlikely to win. Know what the “win” is, and then shoot for that.

8.5. Discussion Questions

  1. Let’s say we offered to give you a Veyron, a Bug, or a Ryder truck, one for free. Which would you take?
  2. How many pianos can you put in that Veyron?
  3. How much does it cost to drive that Veyron or truck?

The moral is: Know where you stand on the Engineering Triangle before you start the project.

License

Icon for the Creative Commons Attribution-ShareAlike 4.0 International License

Requirements Engineering Copyright © 2021 by sheldonlinker is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License, except where otherwise noted.

Share This Book