Why Some People Think They're Great Even When Their Work Is Terrible (2017)
forbes.com
forbes.com
It's really hard for some people (myself included) to give good, timely work when they simply do not care about the stuff they're working on. It's entirely possible that Pat is actually a very good programmer on projects that he cares about (following code standards, meeting deadlines, "going above and beyond" etc), but may have been put on a project that he doesn't feel is interesting or mentally stimulating.
From experience, I can say that a not-insignificant amount of projects in corporate America (and probably other countries too, I just have not worked outside of the US) really are "busy work", that create little or no actual value to the company or the world, are not intellectually interesting, and are largely worked on to justify the existence of some middle-manager. When I am working on a project like this, especially when it's the only thing I'm assigned, it's incredibly hard for me to care about the results of it.
Granted, I might be a crappy programmer, but I think the dichotomy between "good programmer" and "bad programmer" is needlessly reductive.
This has been my experience for the vast majority of cases when I worked in software quality. I think the Dunning-Kruger effect may be real, but possibly a special case describing a much smaller subset.
I've worked for orgs where software was an enabling product and not the product given to their customers. The leaders took the perspective that they "do not need world-class ingredients to make a world-class product". Meaning, the software didn't have to great for them to create a great end-product. So it's little wonder why there was little motivation to improve software quality. I think if properly motivated the competence would follow.
>I can say that a not-insignificant amount of projects in corporate America (and probably other countries too, I just have not worked outside of the US) really are "busy work", that create little or no actual value
You may be interested in the book Bullshit Jobs by the late David Graeber
The Dunning-Kruger effect is nice, but it's not reproducible at best, and probably it's not real [1] [2]
1: https://www.mcgill.ca/oss/article/critical-thinking/dunning-...
The Dunning-Kruger experiment really only seems to indicate that we shouldn't trust self assessments. Not that there are hoards of confident people out there who will never know how terrible they are.
If anything, Dunning-Kruger tells use that we know less about the world than certain study methodologies would suggest. However, people instead grab it and insist that it lets us know more about the world.
There are boobs who think they are better than they are, and I've certainly been one, but you work with the tools you have. Worthwhile people will generally forgive you for failing, they don't forgive not trying because of uncertainty.
Becoming somewhat immune and suspicious of discouragement means you will take opportunities others won't, which even if it's just survivor bias, it's the factor most highly correlated to success.
If Pat made it to the "performance review" thinking he was a great developer while his manager was thinking otherwise, then the issue is Pat's manager not providing actionable feedback in a timely manner.
From there it's easy to hypothesize that the "deadlines" are given to him rather than discussed, and that maybe he's cutting corners to try and meet them.
Horrible. Everybody knows you should both remember and cringe at your own code months later.
> Pat is a programmer at a large software company. At best, he’s a middling performer; his code is a mess (initializing variables that are never used, using variable names no one else understands, etc.), he takes longer than he should, and he doesn’t even remember his own code months later.
Sounds like this large software company doesn't:
1. Know about/use linters that catch unused variables.
2. Have a code review process that would catch bad variable names that "no one else understands".
3. How many people actually remember their own code months later? That's the whole point of consistent design and good readability?
Sounds like this large software company has some systemic problems (which may be caused by promoting people like Pat... which actually ties back to the point of the article I guess).
Certainly not me. Not only do I often not remember the code, but sometimes I don't even remember working on that particular problem/feature at all.
Certainly, I don't. After a month, I mostly think was this terrible/brilliant code really written by me. And then comments confirm it was me.
Ugh. I get that there are estimations for how long something will take but... Something takes as long as it takes. If consistently he takes longer to finish a task than estimated shouldnt the estimates be adjusted?
[0]: https://www.talyarkoni.org/blog/2010/07/07/what-the-dunning-... [1]: https://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
Second, it does not accurately describe the Dunning-Kruger effect.
Yes, people who are less skilled in an area over-estimate their level of skill and those who are more skilled tend to under-estimate. But the less skilled don't necessarily think they're better than the more skilled.
Basically, if your skill is a 5, you might think you're actually a 10. And if your skill is a 20, you might think you're an 18.
So just because someone thinks they're highly skilled, it doesn't mean they're experiencing Dunning-Kruger.
Some of Pat’s failings can be identified these days by code linters; and at least periodically if not in your CI on every push, listing should be done.
The usual problem is that the people deciding who to promote are not qualified or equipped to make sound judgements.
There are so many confounding factors in an organisational system that to try and rate people against each other effectively is nigh on impossible.
Also even if in some imaginary world you do manage to rate everyone against each other, guess what, half you people will be below average, that's statistics. And it could likely mean nothing to the effectiveness of your organisation.
In Pat's case and most software engineering we should set up the processes to ensure that quality is maintained. Add automated checking and testing, code style guide, clear service boundaries and all that.
To be a pilot, you have to at least jump through a lot of hurdles and formalities, and some of those will make you better. I think the world of corporate software development could use a few fundamental hurdles.
Civil and structural engineering have a lot of the basics abstracted away in to easily reusable knowledge that can be applied from one project to the next.
Software engineering sometimes feels like we never managed to pull ourselves much further beyond a Leonardo Da Vinci drawing.
The problem is the system, and certification would potentially resolve some aspects, but he still could be ranking himself incorrectly against other engineers and therefore we might be right back to square one.
Yet. Some of the smartest folks I met were convinced they were imposters and because of that didn't have the same confidence and usually were hen pecked to death because their analysis commonly differed from the social norm of the academic class.
How exactly? Given you are criticising your colleagues it's hard to determine how charitable this account is, especially since you give weight to descriptions given while inebriated, assuming that accurately represents their views.
I follow a pattern of proactively trying to solicit critical feedback from coding peers as well as management. I've found this is a little unique, I think most people like the "no news is good news" model better.
I've found that often I have to dig hard to get people to give me some areas to improve upon. When I ask the "so where do I make changes to make me better", I often get a lot of compliments, I think because people are often uncomfortable sharing critical observations. I listen patiently and thank them, but then try to persist for areas of improvement. Giving people a day or two warning (I thought this might improve the process) just seems to amplify that effect.
But after all that, I wonder if I'm just "getting out ahead" of the DK effect by controlling its uncomfortable truths before they hit hard, in a subliminal effort to preserve my mediocrity.
Not everyone is a top performer. If you're a large software company you're going to have lots of 'average' people.
The "his code is a mess" is hard to qualify.
Variables that are never used and no one understands? So this imaginary large software company doesn't use an IDE or linters of any kind? That seems quite unlikely.
He takes longer than he should? Because he's average and you're holding him to an above average standard? Or you've overloaded him with work which is quite likely.
>Dunning-Kruger Effect
An unproven hypothesis that is often misapplied and is absolutely misapplied in this case. This 'large software company' is clearly the major failure in this article and not some random engineer.
Yes, by definition there will always be an average. But "average" for employed s/w devs should differ to national average - you can still expect developers to maintain certain standards, and that higher-ups will perform better (than say, the average s/w grad).
I dont disagree. The article to me reads differently. Like the author was digging for 'failures of a developer' but only proposed issues that are for sure failures of the company.
I expect the entire article is horseshit. A scenario that was invented in this dude's mind.
Out of interest I just checked out the authors other articles.
Topics ive noticed is Emotional Intelligence, burnout, racial/sexual discrimination, and performance reviews.
This guy has little to no clue about the tech side. He doesn't understand maintaining standards or how any of the software development process works.
To be fair, this is also true of me. What can can done?
I assume the implication is that code isn't well enough documented/commented, or the code written was poor -but still, if you work on several fairly complicated, yet similar, issues in a few months, what can you do beyond re-read the original tickets/PR to recall the original context?