Motley says: "It's tough to make decisions involving multiple dimensions"
Summary
Motley: It's tough to make decisions in multiple dimensions, so just pick the most important one. Make the decision and move forward. No need to document the alternatives.
Maven: Pugh Concept Selection (PCS) facilitates decision making where there are multiple alternatives and multiple weighted criteria. A PCS decision matrix provides a nice way to document your thinking.
______________________________
[Context: Maven and Motley are having a brainstorming session about how to design a particular component]
Motley: So far, this has been a fairly productive brainstorming meeting. We have quite a few alternatives to choose from. Let's just go with the first solution - it will perform best.
Maven: But what about the other criteria in choosing a design? What about space considerations? Ease of implementation? Minimizing the number of dependencies? Resource usage?
Motley: All good considerations, but performance is what matters most here.
Maven: You may be right, but if two solutions are both predicted to perform equivalently but one is much harder to implement, wouldn't we want to go with the simpler solution? Remember our design principles we talked about before.
Motley: Yeah, I guess. But the more variables we add here the more difficult it is to see the right solution. I'm pretty sure solution #1 is best.
Maven: Well let's find out. Ever heard of Pugh Concept Selection, or PCS?
Motley: Sounds like some disease with really nasty side-effects.
Maven: Always the wise guy. PCS is a decision making technique invented by Stuart Pugh in 1990 to evaluate how multiple product concepts met key customer needs. It provides a very straight-forward way of evaluating ideas against one another based on some set of criteria.
Motley: Sounds interesting. I like the "straight-forward" part. How do you do it?
Maven: It's actually very easy. You have a decision matrix that identifies:
- The various solutions you are considering
- The criteria that go into evaluating the solutions
- The weighting of each criteria
If we number the solutions from our brainstorming session as 1, 2, 3, and 4 and use criteria to evaluate them such as performance, memory consumption, ease of implementation, impact on setup, and dependency requirements, we get a table like the following:
|
Criteria |
Weight |
Solution #1 |
Solution #2 |
Solution #3 |
Solution #4 |
|
Performance |
5 |
0 |
-1 |
0 |
-1 |
|
Memory |
3 |
0 |
0 |
0 |
-1 |
|
Simplicity |
5 |
0 |
1 |
1 |
0 |
|
Impact on Setup |
1 |
0 |
-1 |
0 |
1 |
|
Dependency requirements |
3 |
0 |
-1 |
1 |
-1 |
|
TOTAL |
- |
0 |
-4 |
+8 |
-10 |
Motley: Ok, I see what's going on here. We put down all the criteria in rows and all solutions in columns. Each criteria gets a weight assigned relative to its importance. We use one solution as a baseline and compare the others to it. If a solution is better on a particular axis, it gets a +1, if it is about the same as the baseline, it gets a 0, and if it is worse than the baseline, it gets a -1. Multiply each of the +1, 0, and -1 values by the weights, add them up for a particular column, and you get a nice summarized number. The highest number is the best solution.
Maven: Excellent analysis dude! So what does this tell you?
Motley: Well, if our weights and criteria are reasonable, it's actually solution #3 that we should go with and not solution #1. Very useful exercise, I must admit. Sometimes you add some value to the team, Mave.
Maven: And a very simple technique too. Note, however, that it is also easy to misuse. If the weights and criteria are not reasonable, then garbage in, garbage out. The results will not be very meaningful.
Motley: Same is true with lots of things - you put crap in, you get crap out. It takes a really special technique to make diamonds out of coal.
Maven: Nice analogy.
Motley: Great! So let's go with solution #3 and dump this matrix until the next time we need the technique.
Maven: Hold on! Not so fast. There is value in keeping this matrix around, particularly as the appendix to a design document. It summarizes the alternatives that you thought about and why you chose a particular one, and the summary fits nicely on less than a page. You never know when someone will want to validate or learn about your reasoning. Plus, if your memory is anything like mine, you might forget down the road why you chose a particular alternative.
Motley: Fine, if it gets you off my back, I'll put it in the design doc. Hmmmm… maybe I'll use it at home to figure out my next big purchase at bonus time.
Maven: Pugh Concept Selection is definitely a useful technique both in and outside the office to put a frame around your thinking. And with your bonus money, I recommend some charm school lessons.
Motley: Ouch! A dig from Maven! You know you have just escalated the battle, right?
______________________________
Maven's Pointer: Sometimes comparing all solutions to an arbitrary baseline does not yield a stand-out winner. Often this happens because the assignment system of +1, 0, and -1 does not provide enough variance between alternatives. Stretching the assignment system to +2, +1, 0, -1, and -2 can help when one solution is clearly superior or inferior to another.
Maven's Resources:
- Design for Six Sigma, by Greg Brue, McGraw-Hill, ISBN: 0071413766, May 2003.