Software Creation Mystery -

Archive for June, 2007

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 >>

System Forces and Software Evolution

Only entropy comes easy.Anton Chekhov


What are the systems in software creation?

System is a group of interacting, interrelated, or interdependent elements forming a complex whole. – The American Heritage Dictionary

There are some powerful forces in our Universe that lead systems to more complex organization – from elementary particles to molecules, from space dust to stars and planets, from chemical elements to biological organisms and from early tribes to advanced civilization. Even more powerful forces lead systems to destruction or degradation back to primitive forms or complete mess.

System evolution is the constant fight between order (or more complex organization) and entropy (or degradation) of the systems.

System forces are working on 2 levels of the software creation:

  • People, how they organized and the way they build software
  • The software system itself

Both these levels intervene and affect each other to deliver desired result – a working software system. These levels are different – people systems are the product of biological, social and economic forces. Software systems are the product of technology, mental concepts and theories. But both of them share common challenges related to the system forces.

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 >>

Economic Forces and Software Genesis

“Somebody has to pay for all this.”Kent Beck


Why do software projects exist?

A rational self-interest is a foundation of economics – maximizing expected benefits and minimizing expected cost. Software is one of the important instruments in hands of businesses, organizations and individuals that helps to achieve both goals. We could make money developing software and we could become more efficient and reduce cost. Benefits are not only limited to profit and money as with government, science or open source volunteers.

Economic forces start, drive and end software projects. These forces are complex, unpredictable and demanding. And they are the main reason for existence of the software.

What are economic forces?

Economic forces operate on 3 levels – internal, market and macro. You can find below description and examples of these forces.
Read full post >>

What is Software Development?

Tower of Babel

Software is everywhere: inside our computers, cars, phones and even toasters. Software tells these devices what to do.

Everybody can develop software. Hundreds of millions do. We use similar skills as in writing a cooking recipe or telling a friend how to find a shopping mall – we just need to come up with the set of instructions. Basic logic and knowledge of instruction language is enough. You don’t need to have a computer science degree or even finish courses to become a good programmer.

Does it sound simple? Creation of a program should be a routine job now as growing potatoes or building a bridge. And we have at least 2 good reasons to hope for this:

And still, software creation is unpredictable, unreliable and often fails.

Why? We should understand better what is software development.

Software development is the translation of a user need or marketing goal into a software product. – Wikipedia

We can add more to this definition.
Read full post >>

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