Stress and its consequences for software development
the-programmers-stone.com
the-programmers-stone.com
I'm particularly interested in this (from the introduction):
> But I also discovered that I was playing with fire. Whenever I got a team ready to be really useful, there would be a bizarre negative reaction from all sorts of other people who were employed within the same organizations, but were not part of the teams I was working with. Sometimes this effect was so strong it could become a workplace hazard, and it always grew until the teams themselves were no longer able to function.
I know exactly what he is talking about. I have seen it happen in very different contexts (including contexts not at all related to software development): when you get a group of people that is starting to accomplish things, people within the organization act in strange ways to shut it down.
It looks like this particular issue is addressed on the 7th page: "The Dreaded Jungian Backlash". (It also looks like you need to read the preceding pages to understand it all.)
I look forward to finding out what the article has to say.
Jerry Weinberg told a great story once about a company he consulted at where every software project failed, except for a handful of successes. He looked into the successes and found that they had all been the work of one team. The team had intentionally covered their tracks (I forget how) and actually pleaded with him not to report on their success. He didn't heed this request, though, and told an executive about them, presumably with the intention of encouraging more such teams to develop. The executive responded by disbanding the team! Shocked, Weinberg asked why. "Because I didn't understand what they were doing." Weinberg said, sarcastically, "Would you rather they succeeded in a way you don't understand or failed in a way you do?" The executive replied, quite unironically, "I would rather they fail in a way that I understand."
Have you ever been working in one of those organizations and your coworkers goad you into not working so hard? They say things like, "You're making us look bad." or "Take the day off early."
Little things like that. Some have more humor in them than others, but everyone wants to work as little as possible for as much money as possible. If a super team comes in and makes work look fun and easy and they actually accomplish a lot, it raises the bar for every other team and even individual in the organization. Like little self-organized unions who pressure other union members through psychological stress and booby traps.
This is the same problem afflicting our culture at every level, from kindgergarten to the board room to the white house. It has created the mess we are in right now.
"The language requirement is because Native American languages are verb based. Hopi has no nouns at all. I argue that nouns are good for sorting objects into categories and associating responses with the categories. Verbs are better for describing processes and relationships. People using verb based languages are very likely to be a population that assumes juxtapositional thinking is available to them."
Update: The short version of the article is that your brain has two modes of thinking. The one programmers use he calls "Juxtapositional", and cannot be accessed when the chemicals associated with stress are present. He then draws the relationship in the above quote, where Native American cultures were less stressed, and used verb based languages.
Notice that many of the "weird" programming languages are verb based / functional? lisp, haskell, forth, etc. Maybe some of the power of these languages is related to the fact that only people who aren't stressed like using them?
That one sentence makes me doubt the entire essay. No language can get along without nouns. The Wikipedia page on the Hopi language has examples of nouns.
http://en.wikipedia.org/wiki/Hopi_language
Can you imagine any normal person being able to live their life without representing physical objects? That isn't just a functional language; that would be like a programming language without variables or data structures.
There's a trope in North American culture of supposing that Native Americans were or are somehow holier than other kinds of people, or even had access to some special states of consciousness. Their cultures are nearly destroyed so it's hard to check that. But I think it's silly and probably kind of patronizing.
There is some work which does suggest that a Neolithic tribe can have very different concepts of time and number, but this is still a point of controversy. I don't believe we're going to find the key to enlightenment here, just a different way of thinking, which is way more important than a fantasy for nirvana via linguistics, IMO.
Although, I will forgive this author because it's not central to his argument, and he has a point about how Native American lifestyle was the antithesis of modernity.
I would say it's more like a language where every "noun" is really a "verb" in disguise—e.g. combinatoric logic. You can let K and KI mean true and false when speaking about combinatoric logic, but when using it, they're still verbs (combinators), not values.
Profound perspective. I programmed for 13 years and was increasingly burnt out by shorter time lines and more controlled projects. I thought I had completely lost my coding mojo and took a leave of absence Nov. 2008. I may yet relive my hayday of coding wizardry!
To be honest, I skimmed through parts of the article so I hope I'm not repeating or misrepresenting what the article says, but it seems like the best process for me is to have some stress free time at the beginning of a project to let things percolate, and then later on, have a looming deadline to help me focus and grind things out.
The first type of thinking is associated with high stress environments, and the second type of thinking is associated with productive programming, scientific exploration, learning, etc. He goes on to explain the many ramifications of this, which are fascinating, IMO.
Stress kills creativity because it creates a chemical reaction that forces your mind to focus intently and over-rely on previous experience. This might help if you need to run away from a bear, but might hinder if you're trying to solve a tricky problem that requires exploring and potentially letting go of assumptions.
Similarly it's very tricky to "manage" creativity or any task where you can't specify and measure either the process or the outcome (preferably both). You may sadly realise this covers most white collar work but it only really gets talked about in relation to obviously 'creative' things like advertising and R&D.
The basic of management there is "don't", though there are some things that help such as "clan controls" where you hire people with a particular value set (e.g. scientists or open source programmers) and encourage them to be evaluated, outside of work, by their peers.
It might be worth pondering a comparison between an leading advertising agency work areas and Google's famous playgrounds.
This guy proposes that the bits of the company that can be managed traditionally (sales, clerical workers) thrive on (or are even addicted to) continual stress and this causes a hidden rift between them and the programmers (etc.) who absolutely require at least some time in the stressless mindset in order to do their job.