Tuesday, September 4, 2012

How stress makes us dumb

Summer has ended and a new job is about to start - it's time to focus on work! And with that I mean programming. At least that's what I thought... but this link - The programmer's stone - that I got on a social media the other week, turned out to be much greater than expected and relevant not only for programmers but for all people. It tells us about how stress makes us incapable of grasping big, complex problems. To put it simply - stress makes us dumb.

Try it out yourself on The embedded figures test! It becomes very clear that stress makes you blind...

To be more precise, stress makes us lose our ability of juxtaposion, and makes us fall back to focussed attention. I'd say this can explain a lot of stupidities we do and wrong conclusions we draw (in turn making political populism very tempting, just as one of many examples). Among the implications, this lost ability of overview, basically, explains bloatware, "both in computer programs and human bureaucracy". Read more on The programmer's stone's third page. For a programmer it means it becomes impossible to keep a program in one's head. A skill that is very important, as told in Holding a program in one's head.

Talking about bureaucracy: Both blogs mentioned above talk about programmers and organizations being in conflict: "organizations are designed to prevent what programmers strive for" as The programmer's stone says and blames it on the stress that organizations induce. Holding a program in one's head, on the other hand, blames the conflict rather on personal issues: "It's not merely true that organizations dislike the idea of depending on individual genius, it's a tautology. It's part of the definition of an organization not to." "Good programmers manage to get a lot done anyway. But often it requires practically an act of rebellion against the organizations that employ them. Perhaps it will help if more people understand that the way programmers behave is driven by the demands of the work they do. It's not because they're irresponsible that they work in long binges during which they blow off all other obligations, plunge straight into programming instead of writing specs first, and rewrite code that already works. It's not because they're unfriendly that they prefer to work alone, or growl at people who pop their head in the door to say hello. This apparently random collection of annoying habits has a single explanation: the power of holding a program in one's head."

I guess they are both right - the programmers' annoying habits are due to stress avoidance.

Reading further on the The programmer's stone, you get sad realizing that indeed organizations do everything to kill good programming: Open plan offices. You "can't afford" good tools. You "don't have time" to play around with and get to know the technology you chose to use. Ignorance is seen as a bad thing. Don't try to prove you're wrong (in order to prove you're actually right). Use brainstorming sessions. Don't just have a project leader, but also a project manager to take care of the boring stuff!

"The first Great Abdication occurred in the early 1990s, when managers who weren’t programmers, and therefore had no understanding of the work, abdicated their responsibilities to proceduralism in the form of perverse misinterpretations of ISO9001. When that didn’t work, in the late 1990s, they moved to the second Great Abdication. In this, they decided that uniquely amongst commercial activities, software engineering is best handled as a democracy, where the horde of JavaSchooled script kiddies all had equal votes to the minority of experienced people who could have led and taught them. As Richard Gabriel has observed, “It takes twenty years to get good at this stuff”, so of course that was a failure. The third Great Abdication was to ship the whole mess offshore!"

When it comes to creating a good team, we have succeeded if the individuals have a good self-confidence and no stress. This is why Open Source software development works so well - there is no management stressing, there are no contra-productive team building events etc.

Further on: "A person who frequently does juxtapositional thinking is aware of the importance of self-consistency in their thinking. If something doesn’t “hang together”, they know they have made an error." Lack of self-consistency can then lead to confabulation and god knows all can happen!

The fact that humans are a social being is maybe proved by the Asch conformity tests.

In The camel has two humps it is shown "that programming teaching is useless for those who are bound to fail and pointless for those who are certain to succeed". This blogg is well worth reading! "To write a computer program you have to come to terms with this, to accept that whatever you
might want the program to mean, the machine will blindly follow its meaningless rules and come to
some meaningless conclusion."

Well, let's say you manage to create a gelled team. That doesn't mean you can relax, because what then usually happens is the Dreaded Jungian Backlash. One part of this problem is that stress is addictive, and most people are addictive to a level of stress that impairs the juxtapositional thinking! Note now that stress releases dopamine and loss of the ability to produce dopamine causes Parkinson’s... The other part is that the stressed people in the organization seeing the not stressed gelled team becomes envious and do all kinds of stupid things.

So, what to do per organization? In most, there is no point even trying...

And it doesn't get more optimistic in the Marketing section: "A great deal of programming happens within and between large organizations, which are rarely operating at high efficiency. No-one would ever put it this way, but lots of people won’t actually appreciate an efficient supplier, because it puts too much pressure on them to be an intelligent customer."

In a response to a Reddit comment this is said: "People in the stressed state can’t program. Period. We have a software industry which is like a black comedy, with projects going over budget by orders of magnitude and many other problems, because the ability of some people to program most of the time, and most programmers to program on rare occasions, has led us to believe that all programmers can program all the time."
The "problems come from social background stress preventing the prefrontal cortex from functioning in a way which permits programming".
Old people remember their childhood clearly, but not the rest of their lives, because they have been stressed out all their lives. Until now...
"I have concluded that social stress addiction, as exposed by studying the mysterious subject of the practical industrial psychology of computer programming and then identifiable all over the place, is the greatest curse the human race has ever suffered."

Further: "This does not mean surrendering ourselves to intuitionalism, but it does mean that we should sanity check our reasoning when we are in a frame of mind to do it juxtapositionally and vice versa. We all know how we can see more possibilities once we have slept on something. I suspect we then have the opportunity to dissolve unnecessary subsystem boundaries so that the algebra of possibilities becomes simpler and we see the structure of the situation. If one cognitive mode was enough, we probably wouldn’t have two."
Stress and memory puts it bluntly: "In a psychology lab, it’s easy to show that stress interferes with your working memory, making you temporarily dumb."