Ben Northrop

  Decisions and software development
Essays   |   Popular   |   Cruft4J   |   RSS    

Anchors Away!

(21 comments)
A decision theory trick for communicating estimates to management
  July 21st 2009

Imagine this scenario...

My manager needs me to estimate how long it'll take to implement some new feature. On the surface, it looks completely straight-forward, and I know my manager is thinking it's about a day's worth of work. I know, unfortunately, that under the covers it's not that easy - there's actually a fair amount of plumbing code to write, and after breaking things down into subtasks, etc., I guess it'll take me about 55 hours to implement. The question is: how do I gracefully communicate this estimate to my manager in a way that makes him feel that this is a reasonable estimate.

Beyond the obvious answers (e.g. show him detailed estimates, get another opinion, etc.), there's a simple decision theory trick that might work, something that neuro-marketers use to get you to pay more for their products: use an anchor.

Basically, whenever we're asked to assess the value of some thing (whether a cup of coffee or the number of hours to implement some new software feature), we use the value of other similar things to orient ourselves. For example, we may not know how much X is worth, but if we know X is worth more than Y, and Y is worth $Z, then obviously X is worth more than $Z.

This all seems pretty rational, right?

The problem is that we often take the value of our anchor (Y) for granted - so if the anchor is off, so too will be our valuation. In decision theory lingo, this is called arbitrary coherence.

Movie theaters manipulate this to perfection. When I go to the snack bar, I think: "if I can get a 12 ounce Coke for $3 and a 16 ounce coke for $4, it must be an amazing deal to get a 32 ounce for only $4.25. Woohoo!". Of course $3 for 12 ounce coke is a total rip, but it makes $4.25 for 32 ounces look like a bargain.

But wait, we're even more irrational than that...

Apparently, the anchor doesn't even have to be a relevant comparison point at all to bias our decision - it can be completely unrelated. In a study by Dan Ariely of MIT, a class of MBA students was first asked to write down the last two digits of their social security number on a piece of paper. Next they were shown a series of products for which they would write their willingness-to-pay for those products on that same piece of paper. There's no reason to think that a person's social security number would have anything to do with how much they would pay for some arbitrary products, but incredibly that's exactly what he found. The students with higher numbers for the last two digits of their SSN were willing to pay substantially more money than those with lower numbers. They used their completely irrelevant SSN as an anchor.

So...back to the my original question then - how should I communicate that estimate to my manager? Maybe I could use some sort of anchor. Like...

Hi Bob -

I did a little research, and this looks similar to feature X that I implemented a few months back which ended up taking me 70 hours to implement, so I'd estimate 55 hours of work. Thanks.

If the theory is correct, Bob will use the 70-hour data point, prima facie, as an anchor from which to judge whether 55 hours is a reasonable amount of time for me to finish the feature. Had the anchor been 30 hours, 55 hours might seem excessive to him. Going further, maybe I could even try this...

Hi Bob -

My grandmother is 91 years old and I think it'll take me 55 hours to implement that feature. Thanks.

Ok, probably not.

Anyway, let me know what you think. This might be a contrived example, but do you think setting anchors could help adjust expectations when giving estimates? Or could they be useful elsewhere?




I believe that software development is fundamentally about making decisions, and so this is what I write about (mostly). I'm a Distinguished Technical Consultant for Summa and have two degrees from Carnegie Mellon University, most recently one in philosophy (thesis here). I live in Pittsburgh, PA with my wife, 3 energetic boys, and dog. Subscribe here or write me at ben at summa-tech dot com.



Got a Comment?

Name:
Website:
Are you human:
Comment:

Comments (21)



hxa7241 July 21, 2009
It seems on the very boundary between moral and immoral. If all the numbers given are true, such an explanation of the estimate is moral. But in manipulating the presentation of the estimate, are you not trying to control how someone else thinks or feels? That seems immoral -- because you wouldn't will it as a general rule (Kant!).

Sébastien Arbogast July 21, 2009
I'm not convinced that kind of mind trick will work on the long term. Because we're asked to estimate a lot. On the long run, I guess we're better off trying to make our managers understand that estimates are non-negociable. I always use the same story for that (not mine): if you're laying on a bed, waiting to undergo a brain procedure, and your brain surgeon comes to you and tells you that the procedure is going to be 9 hours long, you don't look at him with a threatening look and say "how hard can that be? I'm sure you can do it in 7!". You trust him with your life. Now of course, the flip side is that as software developers, we'd better learn to be held accountable for that kind of thing, because we won't be able to hide behind the "stupid boss" if we fail.

That, and what good are software estimates anyway?! ;o)

David K July 21, 2009
I want to know what anchor it is that so consistently leads my estimates to be 0.5 of actuality. I'm not inexperienced, which is why this phenomenon still annoys.

Markus Hartel July 21, 2009
the anchor theory seems to work pretty well in some areas since we are able to get a good idea of the value of things or service, especially with the help of the web. however, this theory does not to be seem true in a creative environment, but may be a good technique for a sales person.

check out this book by Dan Ariely:
a href="http://www.amazon.com/Predictably-Irrational-Hidden-Forces-Decisions/dp/B002D1OSNY/ref=sr_1_1?ie=UTF8&s=books&qid=1248233912&sr=8-1">Predictably Irrational: The Hidden Forces That Shape Our Decisions

zavjpop July 21, 2009
faaaaaaaaarkt

Michael July 21, 2009
Try it and let us know how it went! All you're trying to do is make your boss more comfortable with a truthful time estimate, right?

Franco July 22, 2009
There is an interesting article on estimating by Giovanni Asproni "Fingers in the air: a Gentle Introduction to Software Estimation" (http://www.methodsandtools.com/archive/archive.php?id=79)

July 22, 2009
You should try the grandma thing and see.

For science!

Montgomery Scott July 22, 2009
How else do ye think ye'll get a reputation as a miracle worker?

Henock July 22, 2009
This is a brilliant comment.

It will only work if your bob has not also seen this article. In which case he'll feel like I’m being manipulative.

mverwijs July 22, 2009
Sounds very similar to the Chewbacca Defense (http://en.wikipedia.org/wiki/Chewbacca_defense).

:)

Veera July 22, 2009
Definitely worth a try.

Comicsguy July 22, 2009
Nice way of thinking, I'll try it out on my next project.
The only problem is, if your estimation is E1, you need to have implemented in the past another similar feature that took you E2 where E2>E1... :-)

Al July 22, 2009
I have studied this phenomenon with my own mind (introspection and basically doing self-experimentation with my own thought patterns)... Having a number that has a strong significance (emotional or cognitive) which is memorized should have a longer lasting (and possibly stronger) effect. Note: this effect works in a very similar way with things other than numbers. For instance, remembering a particular sign in a particular sequence of a particular film and associating it with a childhood memory which made you afraid... Long after you have basically 'forgotten' that film, some other event or memory, if it triggered either of the 2 memories, those memories will become networked in an 'ordered' way. I have trained this within my own mind to an extreme degree, to the point where I apply significance to as much of my experience as possible, including all of the passing thoughts that go through my mind. By applying emotional or cognitive significance, I build an extremely dense network within my memory. The strange thing is that I don't remember things by 'date' or 'time' I remember the chain of significance. If you said: "what did you do yesterday", my brain does not automatically respond with memories (unless I stop and think about it) But if you spoke a combination of 3 words which I heard 3 days ago that I applied a significance to, the memory of that exact thought pattern arrives practically instantly, as well as a chain of significant thoughts that are related to that particular thought. My thoughts also move in loops or rings, so if I am thinking about some particular things and then I run out of energy on a particular idea, whatever the last idea that I was thinking before that automatically comes to mind. Sometimes that loop is more than 24 hours long. There are cycles within cycles so it is a bit of a misnomer to call them loops, but the most incredible part about all of this is the depth and speed to which my brain automatically associates just about every experience. A memory comes back from childhood (due to newer dense associations) and I actually remember in detail what I was thinking about at that moment, and I can even 'look around' a little bit within that memory, and remember more detail about what I was thinking than I ever consciously remembered before in my life. Sorry for going on a mini-rant, does any of that seem unique or strange? Is there a name for something like that?

AJ Finch July 22, 2009
I only ever give one estimate:

It will be done when it's done.

msouth July 22, 2009
@David K:

A guy I know swears by this formula: you should take your best guess, double it, and add 2 weeks. So your .5 is not far off.

D McGee July 22, 2009
Nice post Ben!

Anchoring is definitely an interesting phenomenon that seems to have many uses, though mostly for marketing and sales people.

That said, even without anchoring, if you asked those MBA's the same questions twice, i doubt they would give the same answers again. That is, if you wanted to create a correlation in much the same way as with anchoring using their SS numbers, I'd bet you could simply have them imagine two different scenarios, or give one group something to eat beforehand, or have them look at different images, etc., and there would be a correlation one way or the other.

Estimation is a highly inconsistent phenomenon, so one quick estimation when making a decision can be wildly divergent from a careful consideration, particularly when anchored with all manner of stimuli.

Scott Wiersdorf July 22, 2009
I'm going to test this theory in about 15 minutes when I have to meet with my manager. I'm working on rewriting a large software system that took years to write originally, so that's in my favor ("several years" is a great anchor, don't you think?)

@AJ Finch: I wish we could all enjoy that kind of liberty! Where do I apply?

Ben Northrop July 22, 2009
Thanks everyone for the comments! I'm very pumped (and surprised!) that so many people read this.

Anyway...

@hxa7241: Nice Kant reference! Yeah...I'm not sure this passes the Categorical Imperative - something does feel a little disingenuous here. It's not that I'm advocating being dishonest (I would never give anything other than a truthful estimate)...and I think that subconsciously we're always using "persuasion" techniques (things like humor, eye contact, etc. all probably engender trust) whether we know it or not...but I agree that this feels a little different, probably because it's a sort of conscious exploitation of an inherent weakness in our rational apparatus. There are probably better and worse ways of applying the technique...and in some cases, I'd feel ok with it (for instance if my anchor was not arbitrary, but relevant).

@Sébastien Arbogast: Good call - this technique is probably only effective where other natural, comparison points/anchors are sparse. This example is probably a bit contrived, in that my manager gets estimates from me and other developers often and the anchor might not have quite as big of an impact. I more or less fabricated this example to fit the concept of "arbitrary coherence"...so maybe there are better examples in our field?

@Al: For real? Really interesting. Our brains are very malleable, I guess. Cool blog, btw.

@D McGee: Agreed that other stimuli could serve as anchors, but I'm not sure how many would have such a strong correlation. For example, I'd expect that if you gave one group of MBAs bacon and eggs and another group cereal, there would be a difference, but not a statistically significant one. Or maybe there would!

Anyway, thanks again for all the comments!

Kris Brixon July 22, 2009
If you have a real anchor then you actually have a real basis for making an estimate.

I have time data from other apps that are similar, so there is some percentage that I can anchor from. The rest is based on a break down of required elements into chucks of 2-16 hours each.

@msouth
The reason people double and stuff is that developers base the estimate on the happy path with no problems or meetings or waiting or testing or bio-breaks or multi-tasking context switching or ....

Ejaz August 05, 2009
Good article Ben, Having Anchor is a great thing as it provides a frame of reference. so that any idea or proposal can be compared to it.