Welcome to MSDN Blogs Sign in | Join | Help

Progressive Development

Zany Adventures in Software Engineering with Maven and Motley
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.
Posted: Tuesday, September 04, 2007 8:40 AM by James Waletzky
Filed under:

Comments

Stuart Ballard said:

Interesting theory, but I'm a bit dubious about the picking of an arbitrary baseline and rating everything else relative to it. It seems like you could get entirely different answers depending on which solution you pick as baseline.

It seems to me that a more sensible approach would be to require that for each criterion, give the solution that's best with respect to that criterion a +1, and the worst a -1 and then decide where to put the other solutions in between.

# September 4, 2007 12:03 PM

James Waletzky said:

Yes, you'll get different absolute numbers depending on which one is selected as baseline, but relative numbers should be very similar (i.e. the standout choice should still be the standout choice no matter which baseline is used). The technique falls down a bit when the selected baseline is worst or best - you may get +1 or -1 for all the criteria. As the pointer says, sometimes you may want to use -2 and +2 if one choice is really a standout.

All I can say is try it out. It's a nice compact way to help frame and document decisions.

# September 4, 2007 11:44 PM

Scott F said:

Maven always wants to be so analytical. Where does 'gut feel' come into the equation :)

I've been using this concept for years. Glad to know it has a name. Good idea to include in the docs so its can be reviewed. It does allow you to to come to closure on making a decision.

The biggest challenge comes to picking the right criteria, the right weight AND doing a proper evaluation of the criteria for each product. Ensure that as you are evaluating each solution, the time/effort/detail spent on each criteria is relative to its importance/weight towards the final decision.

# September 6, 2007 1:47 PM

James Waletzky said:

Garbage-in, Garbage-out. PCS is valuable only if you frame the problem in the right way and give careful attention to what criteria you are going to use. If you don't put in criteria that matters and have weights that are ridiculous, you end up with a result that really does not add value.

I have used PCS in situations where I pretty much knew the right answer already, but wanted validation and a way to document my thinking. PCS is great for that!

# September 7, 2007 4:54 PM
Leave a Comment

(required) 

(required) 

(optional)

(required) 

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Page view tracker