Live data from Hacker News

Coding, Fast and Slow: Developers and the Psychology of Overconfidence (2013)

blog.hut8labs.com

51–60 of 66 posts

Re: Coding, Fast and Slow: Developers and the Psychology of Overconfidence (2013)

#51
Why does programming have this problem? No unions.

Really. Compare film scheduling and construction scheduling, which are well developed disciplines. That's because, in those industries, there's paid overtime, and at rates higher than straight time. Thus, "crunches" caused by overoptimistic scheduling add labor costs, which come right out of the company's profit.

This forces scheduling discipline on management. There's a tendency to overestimate, rather than underestimate.

Re: Coding, Fast and Slow: Developers and the Psychology of Overconfidence (2013)

#52
post #30
post #12

I've been developing for 30 years. When asked for an estimate I spend time thinking about it and then when I come up with a number I multiply it by 3. Usually this works but sometimes I can be off. My typical process is to score stuff from "totally get it" to "don't have it all in my head". I then guess on hours and in the end multiply by this 3 factor. When my clients complain about the estimate I often say we "writ…

But you risk your manager (if you have one) telling you you are "sandbagging." And you might see others on your team tell your manager "it's no big deal - an hour or so of work". And they slap some crap in there that whacks the mole down long enough for the manager to make a mental note to give your team mate a bigger raise than you.

I agree. This can be problem. Even if they don't slap some crap together. They may in the end take just as long (or longer) than your estimate, but by that point nobody remembers who estimated what. Just that you were the pessimistic one who wasn't confident and they were the eager go getter who solved the hard problem.

Re: Coding, Fast and Slow: Developers and the Psychology of Overconfidence (2013)

#53
post #46
post #11

One of the best things you can do in your organization is create a culture that treats obstacle discovery as forward progress. There is nothing more disheartening for an engineer than banging her head against the wall trying to debug some race condition only to get flak from management about why it isn't fixed and why it's holding up some milestone. The root of this problem is management that doesn't understand the p…

Just to play devil's advocate, there is also the type of person who tends to get stuck down rabbit holes more than they should. There's a skill not just to solving problems but avoiding them in the first place. Usually this requires not just engineering talent but the ability to see the bigger picture, in terms of product and business goals. If someone is banging their head against the wall, it may be because they ar…

And that's why management needs to be both responsible in instilling this attitude in themselves, and in the developer leads that are responsible for overseeing the developers. And it is the developer lead's responsibility to ensure that their developers aren't going down to many rabbit holes unnecessarily, specifically because that's too technical a decision for management to make.

Re: Coding, Fast and Slow: Developers and the Psychology of Overconfidence (2013)

#54
post #46
post #11

One of the best things you can do in your organization is create a culture that treats obstacle discovery as forward progress. There is nothing more disheartening for an engineer than banging her head against the wall trying to debug some race condition only to get flak from management about why it isn't fixed and why it's holding up some milestone. The root of this problem is management that doesn't understand the p…

Just to play devil's advocate, there is also the type of person who tends to get stuck down rabbit holes more than they should. There's a skill not just to solving problems but avoiding them in the first place. Usually this requires not just engineering talent but the ability to see the bigger picture, in terms of product and business goals. If someone is banging their head against the wall, it may be because they ar…

> it could be because they are foolishing running into a wall that they could easily go around if they stepped back for a second and considered what they had set out to do in the first place.

Note to self: Remember this, whenever you feel stuck and look at the problem in perspective.

My experience, tells me this is one of the biggest guidance a technical/engineering manager must be able to provide to his team. I am not sure how hard or easy or for that matter even makes sense from the manager/lead's perspective, it is to provide this, but have found that whenever my manager is asking me to speed-up i run into these problems and lose the ability to judge whether i'm running against a wall or not.

Re: Coding, Fast and Slow: Developers and the Psychology of Overconfidence (2013)

#56
post #46
post #11

One of the best things you can do in your organization is create a culture that treats obstacle discovery as forward progress. There is nothing more disheartening for an engineer than banging her head against the wall trying to debug some race condition only to get flak from management about why it isn't fixed and why it's holding up some milestone. The root of this problem is management that doesn't understand the p…

Just to play devil's advocate, there is also the type of person who tends to get stuck down rabbit holes more than they should. There's a skill not just to solving problems but avoiding them in the first place. Usually this requires not just engineering talent but the ability to see the bigger picture, in terms of product and business goals. If someone is banging their head against the wall, it may be because they ar…

This is where "The presumption should be that the engineer used due diligence and the situation was unforeseen" clause enters into play.

I've seen many folks in management just always assume incompetence or rabbit holing on the part of engineers. It's good to ask clarifying questions. But as a manager you should be aware that adopting a style of second guessing and interrogating everything your reports do comes off as insulting - after all, you likely hired them, so why don't you trust them?

That being said there are no hard and fast rules here, and being aware of the different histories of different folks is important, but defaulting to a critical attitude is likely to lead to all types of efforts to hide things from you just to avoid questioning, feeling insulted, having their time wasted, etc.

Re: Coding, Fast and Slow: Developers and the Psychology of Overconfidence (2013)

#57
post #46
post #11

One of the best things you can do in your organization is create a culture that treats obstacle discovery as forward progress. There is nothing more disheartening for an engineer than banging her head against the wall trying to debug some race condition only to get flak from management about why it isn't fixed and why it's holding up some milestone. The root of this problem is management that doesn't understand the p…

Just to play devil's advocate, there is also the type of person who tends to get stuck down rabbit holes more than they should. There's a skill not just to solving problems but avoiding them in the first place. Usually this requires not just engineering talent but the ability to see the bigger picture, in terms of product and business goals. If someone is banging their head against the wall, it may be because they ar…

This is not incompatible with treating obstacle discovery with forward progress. Often the outcome of discovering an obstacle is making a decision at a higher level to go around that obstacle, and either changing the product concept or architecture so that it's a non-issue. You can't make that decision unless you have the information that what you're trying to do is difficult or impossible.

Re: Coding, Fast and Slow: Developers and the Psychology of Overconfidence (2013)

#58
post #12

I've been developing for 30 years. When asked for an estimate I spend time thinking about it and then when I come up with a number I multiply it by 3. Usually this works but sometimes I can be off. My typical process is to score stuff from "totally get it" to "don't have it all in my head". I then guess on hours and in the end multiply by this 3 factor. When my clients complain about the estimate I often say we "writ…

Take your original estimate, double it, and move to the next higher units. A one hour job ends up taking two days. Two weeks goes to four months.

Scarily enough, I've worked with people whose multipliers are this large.

Re: Coding, Fast and Slow: Developers and the Psychology of Overconfidence (2013)

#59
post #46
post #11

One of the best things you can do in your organization is create a culture that treats obstacle discovery as forward progress. There is nothing more disheartening for an engineer than banging her head against the wall trying to debug some race condition only to get flak from management about why it isn't fixed and why it's holding up some milestone. The root of this problem is management that doesn't understand the p…

Just to play devil's advocate, there is also the type of person who tends to get stuck down rabbit holes more than they should. There's a skill not just to solving problems but avoiding them in the first place. Usually this requires not just engineering talent but the ability to see the bigger picture, in terms of product and business goals. If someone is banging their head against the wall, it may be because they ar…

On exactly that topic, see another (great) post by the same author: http://blog.hut8labs.com/no-deadlines-for-you.html

Re: Coding, Fast and Slow: Developers and the Psychology of Overconfidence (2013)

#60

> “We should just be more careful at the specification stage”. But this turns out to fail, badly. Why? The core reason is that, as you can see from the examples above, if you were to write a specification in such detail that it would capture those issues, you’d be writing the software. Not true; a specification can precisely describe the properties of the solution of a (sub-)problem, rather than the process of solvin…

You must have much smarter users reading your requirements than I do.

But seriously, though, YMMV, and the mileage on this one is all too often very low. If the requirements are detailed enough to be accurate, the users don't understand them, or simply agree to blatant inaccuracies.

Iterative development really is The Way, but The Management simply doesn't want to hear it. "What part of 'Loser' didn't you understand?" said the Sociopath (as long as hiding requirements = free extra labor).

Post reply on HN