Live data from Hacker News

Cognitive Dissonance in Programming

hangaroundtheweb.com

41–50 of 51 posts

Re: Cognitive Dissonance in Programming

#41
>But the one thing we never seem to here is a simple: I goofed again

We don't? Who is this guy working with? And keep them far away from me.

There are some good points in here about separating ego from work, and accepting that flaws are an inevitability born from the complexity of software development.

But it's roundabout, uses an unnecessary (and at points erroneous) line of reasoning to get there.

It also conflates the need for "fresh eyes" in problem solving with some ego issue. - How many times have you struggled with something, stepped away for a moment, and come back to find the solution immediately? Or sent code out for a code review, taken it off your mental load, then immediately spotted bugs when you re-visit the code a day or two later?

Re: Cognitive Dissonance in Programming

#42
I was almost derailed by the grossly oversimplified programmer personality dorito chart at the beginning. Personality types are merely stereotypes for shortcutting the immensely complex network of factors underlying every decision in every individual and should not be wielded without a deeper understanding.

Soldier past that part and the article espouses a lamentation common in all social situations: that people often seem to deny truth to protect the integrity of the reality they currently grasp. The essay experiment where groups are interviewed about the deltas in their perceptions after one group is paid $20 to write an essay supporting a viewpoint they oppose and another is paid $1 demonstrates this nicely. The fact that those paid $20 hold on to their original views with more conviction seems to suggest that it is the value people place on their past ideas (more so the efficacy of the abilities they used to arrive to them I suspect) that precludes them from considering the current ideas being proposed.

There is likely nothing special about the environment of programming that gives rise to this phenomenon, and it is probably something more fundamental to the way that humans have grown to interpret the world around them that causes this situation. Anyone who's ever tried to have reasonable discourse with a scouting attitude rather than soldiering one on any subject will have noticed that at some point, some people seem to double down when presented with clear evidence against their views.

Re: Cognitive Dissonance in Programming

#43
post #21

Earlier quoted context omitted.

Cognitive dissonance appears to be a very big problem with security - people not aggressively auditing their systems, rationalizing away concerns, etc.

I think this has a lot to do with certain developers not knowing much about security and not wanting to go down the rabbit hole of potential threats and concerns. In my experience a lot of people from project managers to developers would just rather ignore things they don't really understand (especially if it's not causing an immediate problem).

Especially true because customers rarely want to pay for it and when there are issues you just sweep them under the rug and move on. Developers are the last people we should look to blame / change if we want better security.

Re: Cognitive Dissonance in Programming

#44
post #43
post #21

Earlier quoted context omitted.

I think this has a lot to do with certain developers not knowing much about security and not wanting to go down the rabbit hole of potential threats and concerns. In my experience a lot of people from project managers to developers would just rather ignore things they don't really understand (especially if it's not causing an immediate problem).

Especially true because customers rarely want to pay for it and when there are issues you just sweep them under the rug and move on. Developers are the last people we should look to blame / change if we want better security.

I did not mean to suggest that it is exclusively or even primarily a developer problem, though developers do also have a role, for example in following best practices.

Re: Cognitive Dissonance in Programming

#45
post #40
post #6

This is a great article and more people should read it. I was wondering why the sentences sound so familiar and it turns out it's heavily plagiarised (as in, a substantial number of sentences and paragraphs are lifted verbatim from) Gerald Weinberg's book The Psychology of Computer Programming (listed at the end as one of the "references"). Read this book; much of it is still very applicable decades later (and the ex…

I think by definition if it's heavily plagiarized another source it's not a great article.

Not necessarily, humans are pretty derivative in general.

Re: Cognitive Dissonance in Programming

#46
post #11

I wanted to be a programmer from the age of 8. I noodled around a bit in BASIC, and then taught myself C at around 15 or 16. I was easily into my 20s before I could even reasonably claim that I understood C. I've turned 40 this year and even though I've written a lot of code in the last 30 years, I still don't really feel like I'm a good programmer, so I tend to always blame myself before the libraries or the compile…

You can get a pretty good assessment of someone's C++ knowledge by asking them to rate themselves out of 10, and then subtracting their answer from 10. If they say 9/10 and they are not Bjarne Stroustrup, it's a good bet their actual ability is close to 1/10.

The famous Dunning-Kruger Effect.

https://en.wikipedia.org/wiki/Dunning–Kruger_effect

Re: Cognitive Dissonance in Programming

#47
post #3

I thought this was an interesting article, but in real life I'm not quite sure how big the problem of programmers being unwilling to admit their own mistakes is. A checkin goes through many checks and eyes in which mistakes are bound to surface, and not admitting to those mistakes is not really an option most of the time. What's more, they are different kinds of checks, so if you can find an excuse for one thing tell…

Right. The author seems to talk about typos and simple bugs in the code, but every programmer makes those on a regular basis and no way anyone could deny such a bug when it's pointed out to them.

This cognitive dissonance seems like it may be more applicable at a higher level, when talking about design flaws in the system. There the programmer can actually come up with excuses for their "issues". For example, if someone complains "but your design won't scale to 1 million customers" the programmer might reply "come one, we need to be fast" or "we won't need that kind of scale until years from now"

Re: Cognitive Dissonance in Programming

#48
post #27

Earlier quoted context omitted.

It's implied, isn't it? "I goofed up" is admitting that "I didn't test it thoroughly". A more interesting question, imo, is: how does the user/customer community receive an honest admission of goofing up? Do users/customers think less of the programmer? Or do they value the honesty?

Yes, sure, because the programmer is the oracle of testing. There are redundancies that should be set up in the development process for this reason. Admitting the mistake gives you nothing but low opinion of everyone involved. (which is in itself sad) The only thing to do is to set up whole systems to prevent them from arising again. But that is expensive so is not done. Instead, everyone is moderately discontented w…

"Everyone is moderately discontented with the junk they use" not everyone!

Re: Cognitive Dissonance in Programming

#49
post #11

I wanted to be a programmer from the age of 8. I noodled around a bit in BASIC, and then taught myself C at around 15 or 16. I was easily into my 20s before I could even reasonably claim that I understood C. I've turned 40 this year and even though I've written a lot of code in the last 30 years, I still don't really feel like I'm a good programmer, so I tend to always blame myself before the libraries or the compile…

I've not been programming as long, but a fair chunk of years now. I feel the same way. I think being self taught makes it worse for me as I'm in a workplace where the majority of people are hugely intelligent and have university degrees, I just felt like I didn't belong. I'm just now starting to come to terms with the idea that I'm actually as good at what I do as anybody, so I no longer feel like as much of an impostor, but this has done nothing to change the fact that I still think I just don't know enough. There is so much more to learn that I haven't even touched on, it is both intimidating and inspiring. Reading similar sentiments from people who have been programming for much longer than I have is giving me the sense that this feeling might not go away, ever.

Re: Cognitive Dissonance in Programming

#50
post #45
post #40

Earlier quoted context omitted.

I think by definition if it's heavily plagiarized another source it's not a great article.

Not necessarily, humans are pretty derivative in general.

You can be derivative without plagiarizing someone else's work.
Post reply on HN