Industrious Stupid People

a typical hard working programmerI’m constantly stunned by the damage that can be caused by Industrious Stupid Peopletm. I used to think the phrase “lead, follow or get out of the way” was just too quaint by half. Two decades making a living in the pseudo-real world have taught me that there’s a reason for cliché.
There’s a good paper which I’ve squirreled away and bring up every once and a while and send it out via emailing:
Unskilled and Unaware of It: How Difficulties in Recognizing One’s Own
Incompetence Lead to Inflated Self-Assessments

People tend to hold overly favorable views of their abilities in many social and intellectual domains. The authors suggest that this overestimation occurs, in part, because people who are unskilled in these domains suffer a dual burden: Not only do these people reach erroneous conclusions and make unfortunate choices, but their incompetence robs them of the metacognitive ability to realize it. Across 4 studies, the authors found that participants scoring in the bottom quartile on tests of humor, grammar, and logic grossly overestimated their test performance and ability. Although their test scores put them in the 12th percentile, they estimated themselves to be in the 62nd. Several analyses linked this miscalibration to deficits in metacognitive skill, or the capacity to distinguish accuracy from error. Paradoxically, improving the skills of participants, and thus increasing their metacognitive competence, helped them recognize the limitations of their abilities

You see this all over the place, in every single field. But it seems to be a particularly big problem in the software industry. In pretty much every other industry, if you have someone who is truly incompetent doing something, there usually is a real world measurement that can be easily tracked by theoretically more competent people and it will be fairly obvious fairly quickly that something has to be done about the incompetence. In theory, this is the whole idea behind markets – i.e. if you’re screwing up sufficiently, you will eventually find that you have no customers and market forces will eat your lunch and you will have to find something else to do.
But I’ve found that software seems to break the rules that would seem to normally apply. I mean, in a world where Microsoft can continue to ship software which randomly blows up and people not only accept it but continue to pay upgrades for newer versions which also blow up randomly…. well, you have yourself a rarefied environment where the normal rules don’t seem to apply.

On some level, there’s the whole “newness” of the technology. It’s all new fangled and people are pretty forgiving of new fangled technology. But given that we’re 45+ years into software technology, I just consider this to be another one of the manifestations of the bizarro world we inhabit where the normal rules don’t apply. I think that what has happened is that you have now trained an entire generation to expect software to fail. It just does. That’s what it’s supposed to do. It works for a while and then you have to give it the virtual kick in the back to get it working again after it blows up.
This is just wrong.
Another thing is that software really is kind of in the ether – i.e. it exists largely in the meta realm of intellectual purity where we don’t sully ourselves with physical reality and constraints. Witness the golden age of the internet in the last century where normal market valuations simply didn’t apply. I still kick myself (hard!) whenever I remember that I simply refused to buy Amazon stock because I couldn’t stomach the fact that they had a P/E of infinity due to ZERO earnings. Software and the web lives in a world where seemingly commonsense notions of basic economics simply don’t exist.
Another thing that happens a lot is what I like to call the Smalltalk Effect. Even though Smalltalk is a language few remember, at the time (early 90’s) it was pretty hot shit on rye. What would happen is that you would find an IT department laboring away at some client/server application – usually, they were in their third year of what was supposed to be a six month long project. Then, someone on the project would discover Smalltalk, learn it at home, and suddenly spring on the project’s manager a seemingly complete application doing precisely what they have all been laboring for three years on.
The Smalltalk Effect would then take hold and the project manager would throw out everything they knew about project management and commit the entire team to building the system in Smalltalk. Little did the manager realize that the prototype was basically a single user application and simply didn’t solve any of the really hard problems that the system actually had – i.e. multiple users, scalability, etc, etc. All that the programmer really did was use the bitchin’ user interface creation abilities of Smalltalk to whip something together that looked like it worked. Kind of like a real world Bricklin Demo (for those of you that remember such things).
Again, this kind of thing is just simply wrong.
Finally, software seems to be a rarity in the rest of the economy where technologists simply aren’t listened to. Again, I believe this is due to the conditioning we all received during the run up to the golden age of the internet where all you needed was a business plan, a salesman, a clever marketer and a web site to roll in the cash. Most of the people in the industry at this point got there by riding the bubble’s wave. They usually believe they were smart, rather than lucky.
And so what you are likely to end up with is a bunch of people who simply don’t have a clue of how to actually build software that actually does what it’s intended to – much less actually work. On some level, perhaps, there was a flushing out of these people after the bubble burst, but I think this is just one of those fantasies that free market types tell themselves when they can’t get to sleep at night. Rather, what I’m fairly sure has happened is that the entire eco system becomes more inbred and insular.
Anyways, point is, there’s a shit load of stupid people out there in an environment which doesn’t seem to have many feedback mechanisms which normally would weed these people out – witness the Agile movement. And now that we’re in a phase of the market where consolidation seems to be the norm, we may be witnessing the exodus of the smart, lucky people who got bought and made their money and who are now living on a beach wondering what to do next – if anything.
Maybe the smart people will start coming back and making great ideas and products that we all like to think software and the net is all about. But given the trend, I simply am not optimistic about it. I think we’re going to have to look to our brethren in the other industries and come up with real, objectively verifiable standards we can use to judge ourselves and others before we’re going to seriously change what’s happening in this field.
After all, the first step to the cure is the correct diagnosis of the disease. And as the paper I pointed to at the beginning of this post makes quite clear, the problem isn’t more information and better tools. It’s simply educating people to give them the skills to make better evaluations of their skills. Something that, paradoxically, enables them to actually dig themselves out of the rut and get smarter.

3 thoughts on “Industrious Stupid People

  1. The Smalltalk Effect? Oh yeah. Everything gets its day in the sun. Years ago I got a job in Denver as a C expert, and soon I was asked to review a plan to switch the Cobol team upstream in my data-flow to C. The C Effect was impacting — why would they want to disrupt such a reliable source of clean data? I looked it over and advised them, in effect, not to change horses in midstream. They seemed grateful.

  2. <heh> Things to do in Denver when you’re dead, eh?
    Well, this is why I call it the Smalltalk Effect(tm). Because, as you point out, if there was really a “C effect”, they would have sent everyone to an Agile camp (I have no idea what the equivalent in C would be – a “Fragile” camp?), converted all their builds to Maven, and started Scrum sprints.
    You have no idea…

  3. Well, the C effect was in the ’80s, mostly before the methodology wars, to which I remain a conscientious objector. At that time the C effect would warp the minds of the strangest people, who would then attempt to get all kinds of software written in C. Or worse, to get perfectly good software rewritten in C. Some of the push for C came from Denver being a telecomm town, some came because it could be a good alternative to assembly, and some for no reason but buzzwords like “modern”, “structured”, “faster” and “better.”
    “…I got some weird ideas in my head
    About things to do in Denver when you’re dead…”
    I did have a brush with an Agile shop on a contract last year. Their director, and my old friend, said they were in bug Whac-a-Mole mode, where every bug fix creates another bug. So their Agile process was indeed Fragile, as all their breathless Scrum sprints accomplished was to create new bugs faster. Sad thing is, they couldn’t see how bad they were losing. So long as they kept sprinting they thought they were winning. Maybe they needed Maven? I have no idea.
    “…Dressed in black, tossing back a shot of rye
    Finding things to do in Denver when you die…”

Leave a Reply