Being rational is probably the most ineffective way to make a decision. In his book The Power of Habit Charles Dahigg shows that it is more energetically efficient to use your basal ganglia and not cerebral cortex for that. Simply speaking, it is easier to decide something based on a habit than on conscientious thought.
Most of the time people do this even without noticing, and it’s a good thing. Minor things like choice of pedals while driving would have been very tedious being made conscious. We delegate these to our subconsciousness, we deliberately make them unconscious by training and practice. And it is a good thing to do that for any routine mechanical job.
Software development however leaves very little space for routine. When you have to do something repetitively, it is best to automate it rather than train yourself to do it faster. But developers are the same species as drivers, or sportsmen, or brick layers. They all have the same brain. And they all tend to use it in the same way.
So yes, developers and architects also make their decisions with basal ganglia instead of thinking rationally. Usually it is simply a reflection on the previous experience. What is experience if not a sum of formed habits?
But this is not always the case. Of course if every developer would have only used own experience, we would still be programming by connecting wires, because without new ideas this would have been our only experience. New ideas do arrive and get adopted all the time, although what we consider the new ideas now in 2017 is simply a paraphrase of the same mindset established in the 60th. Nothing new was truly invented since Simula in 1965.
Now let’s abstract out of these “new ideas” and look what they did to our industry. Modern software is doubtlessly bloated, sluggish and way unreliable. The very basic operations like text editing or sending mail, all that took hundreds of LOC to implement in the 60th, now take millions of LOC, lag and can’t even be relied upon. This is all a result of ignoring objective measurable indicators such as SLOC or run time and focusing on obscure and immeasurable KPIs like developer productivity. You might think it’s only a common ignorance, but it’s much more than that.
You might know that AT&T was the biggest monopoly in the world in the 60s. It was proclaimed a natural monopoly like as the whole communication business could not exist in USA without a single company to operate it. This is a poor argument, because in Europe it wasn’t at all an issue. AT&T was rather let be a monopoly by the government because of its giant significance on innovations. Not only accelerating them, but also slowing them down.
What happened in AT&T it the 60th is the establishment of “worse is better” school of thought with its unnaturally successful flagships: C and UNIX. It wasn’t obvious from the beginning, but now we can see clearly that it was only established to slow IT innovation down. And it worked! It all makes sense if knowing that the government was basically running the company at the time.
But why would the government want to slow innovations down? Shouldn’t it be willing to enhance them? Well, without the outside interference it should have. And by “outside” I mean outside the Earth! Only after the moon landing in 1969 the whole US policy on innovation changed. It couldn’t be explained by other than an alien contact!
The aliens, knowing that with such rate of hardware improvement, technological singularity is only couple decades away, made US government slow down the IT innovations by introducing a set of technologies and methodologies that fit the basal ganglia way of thinking by being “soft” and not too “engineery”. Less measurable criteria, more “productivity” — all to waste the advance in electronics by making terrible software for it. The whole “productivity” banner — is only a deception!!!!!
And now for the test
The text above consists of 10 paragraphs. It was deliberately composed so its plausibility falls from “quite reasonable” to “absolute nonsense” one paragraph at a time. The paragraph on which you got a notion of bullshit the first time is your score.
If you scored 1–2 than you are probably too paranoid. It might be a good thing for an engineer in safety-critical domain, but these two paragraphs are basically harmless.
If you got 3–4 than you are firm with reality. These two do contain doubtful conclusions used for rhetorical purpose. And for software developers rationality should always overweight rhetorics!
5–6 is a good result for open minded person, or someone who thinks rather unconventionally. It is important trait, no innovation can come without a bit of open-mindedness. But you bought some factual deflection earlier, this might be a little alarming.
7–8 is not a good result. If you scored that high, please be aware that you are vulnerable for deception and other people might want to exploit it.
If you scored 9–10 than you should definitely check your bullshitometer.
And if you scored more than that — you are mad.
P. S. We all believe that our knowledge is true and our reasoning is just. It isn’t. If it would have been so, there would be no disagreements, no dichotomy, no arguing, no fun. Instead we all bear our heavily earned personal delusions just like a mechanic carries his pliers and wrenches. But we happen to live in an epoch, when we can easily share our delusions with each other, put them all in a melting pot of public consideration to come up with something beautiful. And it is vitally important for the sake of everyone to distinguish fair delusion from deception.