Software Creation Mystery -

Archive for the ‘People’ Category

Do we have conscious control over our actions?

New Scientists reports that 80 per cent of human behavior is largely automatic and determined by instincts alone. Most of the time we are simply reacting instinctively to the world around us. Only afterwards we make up reasons to explain what we did. Our brains routinely push the control of some activities from conscious to unconscious, such as playing musical instruments or driving a car. Surprisingly, this automatic control influencing important matters such as economic decisions and our dealing with others.
Perhaps, the best way to understand human behavior is to ignore the supposedly rational, consciously generated actions of individuals.


  1. We often use an automatic behavior even in complex social interactions as in software development. So, it is possible to predict the behavior of team members in more than 80% situations according to the article. It also means that the team will consistently repeat successful or failing patterns of interactions. How can we increase occurrence of successful  and eliminate failing outcomes ? Should we force to turn our conscious more often?
  2. Do we use automatic thinking while programming? Is this always only conscious effort as we should expect?  If we use unconscious thinking, how does it effect our results?
  3. It is another prove for the correctness of the description of human mind in one of my posts – The Mind of the Programmer 🙂

Testosterone, irrational choices and programmers

The Economist article claims that men with a lot of testosterone level make more curious choices. Dr. Burnham of Harvard University research shows that high-testosterone men reject low ultimatum game offers more often. In this experiment, men who reject low offers ($5 out of $40) have significantly higher testosterone levels than those who accept.
The research supports the idea that people really strive for relative rather than absolute prosperity. They would rather accept less themselves than see a rival get ahead. In a variety of species, testosterone is associated with male seeking dominance. If low ultimatum game offers are interpreted as challenges, then high-testosterone men may be more likely to reject such offers.
Economists often refer to this sort of behavior as irrational. In fact, it is differently rational. The main outcome for men is a social status—that brings desirable reproductive opportunities. Money could help, but if another route brings that status more directly, money is irrelevant.

Comments: How this research is related to programmers and software creation?

  1. Many programmers (their bosses and, recursively, bosses of their bosses) have high testosterone level, and therefore could exhibit curious and irrational behavior including politics, conflicts and bad decisions for the software project. Is it possible to prevent such behavior? I believe the practices that modern society are using for fighting with dark sides of human nature could help. Transparency of decisions, free opinions and equal intolerance to unsocial behavior disregarding ranks. Can The Ideal Software Company help?
  2. Social status in the company could be stronger motivator than money for high-testosterone men: better computers, more praise and ability to influence decisions. However, the knowledge that somebody gets more money for the same work could be very depressing for any testosterone level men :).
  3. High testosterone level could be the strong driving force for achievements and very useful if properly applied. But too many of this kind of people could cause a lot trouble and disturbance in the Force :).
  4. Here is an interesting quick method to determine testosterone level. Married man with children have the lowest level.

Cognitive Dissonance and Software Creation

Humans can justify almost anything thanks to cognitive dissonance, explains Newsweek.
Cognitive dissonance is the extreme emotional discomfort we feel when two important beliefs, attitudes or perceptions collide. Humans cannot tolerate dissonance for long, so they ease the tension by making a change in belief or attitude—and justifying the change.
Why can’t we just live with inconsistency and contradiction? We experience unpleasant emotions whenever life forces us to choose a course of action, but we are not fully convinced it’s the right course. When we make an important commitment, the mind instinctively seeks out proof that we’ve done the smart thing.
What if you make a choice that is really bad and you can’t hide from it? People who don’t want to recognize own mistake become even more entrenched in their belief once it is proven wrong. They throw good money after bad in the market, grab for straws in a dying relationship or send yet more troops to fight a misbegotten war.

Comments: All of us have beliefs, and all of us have times when our beliefs are challenged by other people and reality. It is a real pain :). Cognitive dissonance is a natural psychological reaction that cause us to change or entrench deeper, but somehow resolve the issue. Being stubborn and hold to wrong beliefs is bad, but changing them frequently is bad too as it prevents us from building stable and predictable mental concepts of the surrounding reality. The best way to stay in touch with reality is testing our beliefs, get feedback often and keep mind open. This approach is a core of Agile and iterative development and this is one of the best methods to resolve cognitive dissonance in software creation.

IQ vs. Self-Discipline. What is more important in Software Development?

Angela Duckworth and Martin Seligman research shows that both IQ and self-discipline are correlated with academic performance and GPA, but self-discipline is a much more important contributor: those with low self-discipline have substantially lower grades than those with low IQs, and high-discipline students have much better grades than high-IQ students. Further, the study found no correlation between IQ and self-discipline—these two traits varied independently.

Comments: Does this research applies for software creation? Can we say that self-discipline is more important than IQ for programming? I believe that self-discipline, emotional intelligence and control over unconscious mind are more important than IQ in programming. You cannot get anything useful done without self-discipline; however low IQ is a problem too.
My formula for the talent in programming: Talent = IQ * Self-discipline * Creativity

Review: The Wisdom of Crowds. Making the Best Decisions

Who is smarter – a diverse group or the best expert? Can a boss, a project manager or the most experienced specialist make better decisions than a whole team? What are the problems with decision making in traditional corporations?

James Surowiecki in his book The Wisdom of Crowds argues that given the right conditions a group consistently outperforms best experts in decision making. Few people can do better than the group, but each time they will be different people. A group answer will often be at least as good as an answer of the smartest member.

The author provides interesting examples:

  1. 800 different people (mostly non-experts) tried to guess weight of an ox at the International Exhibition of 1884 in London. The average guess of the crowd was only one pound off (ox weighed 1,198 pounds) and was better than any estimate of the cattle experts.
  2. Stock market knew what company was responsible for the Challenger disaster within a half hour of the shuttle blowing up. Mostly uninformed investors dumped shares of Thiokol almost simultaneously.
  3. Team of the men with wide range of knowledge (e.g. mathematician, submarine specialists, salvage men) correctly estimated location of disappeared U.S. submarine Scorpion. The submarine was found 220 yards from collectively estimated spot (original search area was 20 miles circle) and it was better than any individual guess.

Crowd is wise when these criteria are present:

  1. Diversity of opinions (each person have some private information)
  2. Independence (people’s opinions are not determined by the opinions of others)
  3. Decentralization (people are able to specialize and draw on local knowledge)
  4. Aggregation (some mechanism exists for turning private judgments into a collective decision)

Read full post >>

Weekly Digest: Secrets of Creativity, Material Software Companies, Discouraging Incentives

Secrets of Creativity
Why some people are more creative than others? The Scientific American article provides some insights:

  • Intelligence is not a crucial ingredient. A crucial variable is the difference between “convergent” and “divergent” thinking.
  • Convergent thinking aims for a single, logical and correct solution to a problem. Divergent thinking proceeds from different starting points and changes direction as required
  • Creative people can free themselves from conventional thought patterns and follow new pathways to unusual or distantly associated answers, which leads to multiple solutions, all of which could be correct and appropriate.
  • These two processes took place in different brain regions – left hemisphere is responsible for convergent thinking and the right hemisphere for divergent thinking.
    • The left side examines details and processes them logically and analytically but lacks a sense of overriding, abstract connections.
    • The right side is more imaginative and intuitive and tends to work holistically, integrating pieces of an informational puzzle into a whole.
  • Our creative talent is gradually repressed from childhood. Schools place emphasis on teaching children to solve problems correctly, not creatively.
  • The brain is a creature of habit; using well-established neural pathways is more economical than elaborating new or unusual ones, which wither with time if not used.
  • Creative people are generally very knowledgeable about a given discipline, it is very improbable to come up with a grand idea without deep involvement in this area.
  • Creative solutions result from examining challenge from all sides, disassembling and reassembling the building blocks in an infinite number of ways. The problem solver must thoroughly understand the blocks.
  • Too much specialized knowledge can stand in the way of creative thinking. Experts often often internalize “accepted” thought processes, so that they become automatic. Intellectual flexibility is lost.
  • Creative revelations come to most people when their minds are involved in an unrelated activity. A little relaxation and distance changes the mind’s perspective on the problem – without us being aware of it. The brain clear away thought barriers by itself and at some point, newly combined associations break into consciousness, and we experience sudden, intuitive enlightenment.
  • The neural processes that take place during creativity remain hidden from consciousness and we cannot actively influence or accelerate them.


  1. Creativity plays a very important role in the software creation. IQ is not enough for developing the best programs as it will lead for technically complex, standard and expensive solutions. Solving changing business need with limited resources, dealing with inconsistent people and complex systems requires unorthodox solutions.
  2. Companies should start hiring people based on “Creativity Quotient” in addition to IQ and EQ. The article has interesting examples of the potential interview tests.
  3. We should specifically train our creativity and always try to look for solutions in novel ways, considering unusual alternatives, combinations and associations; breaking traditional approaches. We should strive to come with more than one solution.
  4. Creativity needs knowledge, serious preparation and understanding what challenges to solve. The brain will not work on the problem until it has enough food for thoughts :). And brain can work out solutions without our conscious involvement, automatically. We just need to learn how to prepare our brains properly.

Material Software Companies,,2112850,00.html
Software companies are coming to earth and turning from nonmaterial to very physical companies. Nicholas Carr explains why.

  • Google has data centres around the globe, reportedly holding as many as 2m or 3m computers altogether, and it continues to spend billions of dollars a year to put up new ones. Its arch-rival, Microsoft, is building a 140,000 sq m six-building data centre on a former bean field. Also rushing to build or lease data centres are Yahoo!,, Intuit, and Deutsche Telekom’s T-Systems unit, among many others.
  • Nature of the software business is changing. In the past, software companies only had to concern themselves with writing code, copying their programs on to discs and selling them. It was up to the buyers of the software to maintain the computers, storage drives and all the other hardware needed to run the programs. Now companies are beginning to rent programs over the net for a monthly fee. Even sophisticated applications for maintaining customer accounts, tracking finances, managing workers and performing other complicated tasks are now being offered as web services. The burden of running software is shifting from the buyer to the seller.

Therefore software companies are finding that they have to compete not just on the elegance of their programs, but on their ingenuity and efficiency in buying and deploying physical assets – land, buildings, computers, and other gear – as well as managing the huge amounts of energy required to keep all the machines running.

Comment: I feel we will miss this nonmaterial world, where we should care only about own computer, a table and a chair to write programs 🙂 . But I still believe that the essential and core business of the software companies will be programming, not management of all these physical assets. What do you think?

Discouraging Incentives
Do you think more incentives are better? Not always argues Barry Schwartz.

Economists assumption: the more motives the better. Give people two reasons to do something and they will be more likely to do it. Unfortunately this assumption is false. There are circumstances in which adding an incentive competes with other motives and diminishes their impact.
When you pay people for doing things they like, they come to like these activities less and will no longer participate in them without a financial incentive. The intrinsic satisfaction of the activities gets “crowded out” by the extrinsic payoff.

Comment: Money is the most powerful motivator. However we should carefully offer additional incentives for something that people like doing. It could leave a bitter taste and kill passion, motivation and dedication even if they continue doing this. But not giving money when people expect them could be even worse. So, probably, it is a good idea to discuss / understand person’s internal motives and expectations before finding a way to encourage desirable behavior. Maybe just public and unreserved admiration will be the best reward. We, humans, are so complicated 🙂

Weekly Digest: Computers vs. Humans, Thoughts: Remember or Forget?

Computers carry 70% of foreign currency trades (need subscription)
Computers make one third of all trading decisions in US markets. Experts predict that more than 50% will be done by 2010. Machines can make multiple trades and monitor thousands of stocks at breakneck speed. They can use tactics that makes trades indistinct and hide their intent; for example, by spreading the deal over many small trades. There are big profits to be made before market realizes these opportunities. Companies are moving their servers as close as possible to stock exchange systems to reduce order time: milliseconds matter in competition of computers. There is a new arm race between trading “algos” (algorithms) – they now try to guess and sneak signs of other algos trading. David Cliff designed one of the first commercially successful algos in mid 90s. Human traders still have place on less understood and illiquid markets where instinct and experience are still important; software helps them with simulations and test of ideas. People are still much better in predicting market trends. How much longer?

Comment: First, people, who try competing with these machines for day trading, have less and less chances. Second, the most important that another intellectual human area is given up to computers along with chess and drug creation. What is next? Computers can became smarter than people in the next 20-30 years. They just need to learn how to write programs for themselves.

Human-Aided Computing
Researchers at Microsoft are trying to tap into some of the specialized–and often subconscious–computing power in the human brain, and use it to solve problems that have so far been intractable for machines. Today it takes relatively large supercomputers many hours to recognize faces–something a human can do almost instantly. One application for this face-recognition technique could be to use it for quickly sorting snapshots from surveillance videos to find frames with faces and those without. This strategy could be useful for identifying other types of objects, such as dogs or cats, and different types of words. Subconscious brain power could therefore improve automated image search by preclassifying objects to help a computer more accurately identify pictures.

Comment: Now Microsoft evil guys 🙂 teach computers how to use our brains. If it will go further computers will not only become smarter (see previous comment), but also hungry for our brain power.

Forgetting helps you remember the important stuff
Bruce Kuhl and Anthony Wagner at Standford University have discovered that the brain’s ability to suppress irrelevant memories makes it easier for humans to remember what’s really important. This function, which is carried out in the prefrontal cortex region behind the forehead, helps the brain; it doesn’t have to work as hard in the future when it tries to remember an important memory because the competing but irrelevant memories have been weakened.
Memory allows humans to be predictive about what’s likely to be relevant to them as they go through life, Wagner explained. “What forgetting does is allow the act of prediction to occur much more automatically, because you’ve gotten rid of competing but irrelevant predictions,” he said. “That’s very beneficial for a neural information processing system.”

Comment: I knew this before – brain automatically forget irrelevant memories! You can read and learn as much as you want, but you’ll forget most of it. It doesn’t make sense for us to learn all the language constructs syntax, all the classes in framework and read so many books. We’ll forget if it is irrelevant. Now the most important question is how to make this information relevant. I believe the best way to do this – create abstractions, actively aggregate in your head conceptual pictures or just practically use it.

Mind Control: Unwanted Thoughts
Now if you want to forget something 🙂
Trying hard not to think about something almost guarantees that it will pop up in your consciousness. When you are actively avoiding a thought, one part of your brain is busily working to keep the upsetting thought at bay. It’s searching out distractors—something else to focus on that will protect you from the idea you’re trying to avoid.

At the same time, another part of the mental machinery has to keep checking to make sure that the job’s being done properly. Inadvertently, this monitoring process calls attention to the unwanted thought, and makes you more vulnerable to the very ideas you’re fleeing from. Article gives 2 advices: make secret preoccupation open or do the opposite of the thing you want to do.

Comment: These facts show again power of our automatic brain systems over our conscious mind and importance of cooperating with unconscious mind. You can try 2 additional things when you build program and you have unwanted thoughts:

  • don’t program at all – quality of your work will be low
  • or find most interesting problem in the program and you’ll quickly forget your thoughts

New approaches to software development
Scott Berkun provides information about the new (or reinvented) systems for software project management: Asshole Driven development (ADD) , Cognitive Dissonance development (CDD), Cover Your Ass Engineering (CYAE) and many others.

No comments.

5 steps to cooperate with you unconscious mind

The winds and waves are always on the side of the ablest navigators.Edward Gibbon


How much do you know about your inner self? Do you understand your reactions, emotions and desires? Do you control them or they control you? Your life, present and future depends on you. Your conscious mind tries to do best. But your conscious mind is the tip of the iceberg of you – the most advanced and self serving biological organism. Can you trust that it will do the best for your goals, dreams and plans? No, you can not – if you don’t understand, cooperate and direct your unconscious mind – the real master of you.

In the previous post I shared Buddha metaphor about mind containing a rider and an elephant. The rider is a controlled, sequential and conscious thought, which uses verbal communication of the left side of the brain. The elephant is everything else – our emotions, instincts and intuition, which compromise automated and subconscious behavior of our biological essence.

Read full post >>

The Mind of the Programmer. Anatomy and 3 Contradictions

Brain: an apparatus with which we think that we think.
Mind, n. A mysterious form of matter secreted by the brain.
Ambrose Bierce

Human Brain

We expect that experienced programmer has perfectly logical, rational and consistent mind (at least during working hours). However, my experience shows that programmer has the same brains and mind as other people. Programmers do stupid things, overreact and act inconsistently. Why?

Buddha compared rational and conscious part of the human mind to the rider of the wild elephant – your emotions, passions and desires. As in the real life riding – you can hold the reins, direct elephant to turn, stop or go… only until elephant allows you to do so and has no desires on its own. (from The Happiness Hypothesis)

A programmer’s rider develops programs, a programmer’s elephant hinders or inspires – and certainly makes the process slippery and unpredictable.
Three contradictions within human mind help us to understand these relations better.

Read full post >>

Human Forces and Software Creators

Software development occurs in the heads of the people – Pete McBreen

No matter what the problem is, it’s always a people problem. – Gerald M. Weinberg


Who does create software?

At this time, people are the only creators of the software. I don’t see how it could be changed in the near future. This is not a bad news if people were predictable, logical and rational. But they are not.
There are few issues with the fact that humans create software.

Read full post >>

Software Creation Mystery -
This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 License .