Sunday, February 28, 2010

Theory or Practice ?

As a practicing Project Manager in the software industry, the majority of the people i come across can be divided into two categories.

The first is the set of people who don't read books or papers or manuals on software engineering or project management.  For them, everything that has to be learnt can be learnt by doing and they dont find much of a point in learning from other people's experience. For them it is all simply 'theory'. These set of people don't for a minute think that most of what is written in books and papers comes out of practical experiences of people.

The other category of people always want to refer to the manual first. They do this, even when there is an urgent or pressing issue. For these people, what is written in the book or in a published paper is more important than the present situation. The assumption is that solutions to all problems are already available some where and they will find it by reading books or manuals.

The unfortunate part is that neither of these set of people are right. Why is that ?

For us to understand why, we need to understand how the human brain learns. A little bit of evolution before that.

How did human beings come to a staggering 7 billion strong and growing from a small number (some scientists think this population to be not larger than 2000).? Scientists attempt to explain this progress using a theory called Variability Selection Theory.  According to this theory, human beings evolved by giving up on stability and by adapting to variation itself.

Variability Selection Theory predicts some simple things about human learning. It predicts that there will be interactions between two powerful features of the brain.
  • A part where we store what we learn. (You can equate this to a database)
  • the ability to make use of or (improvise off) that database. (You can imagine this to be a set of rules).
The database allows us to know when we have made mistakes. The ability to improvise allows us to learn from the mistakes. Both of the above gives us the ability to add new information under rapidly changing circumstance.

To put it in a pictorial representation, it looks some thing like this.


From the diagram it is obvious that one feeds into the other, thereby enriching both.

People who emphasize on either Theory or Practice don't have the advantage of the typical relationship that feeds from one to another and enriches both.

This results in the People who emphasize theory or a stable rote learned database to ignore the improvisatory instincts drilled into us for millions of years, resulting in less creativity and monotony.

People who emphasize practice also suffer because these don't have the experience database in the first place. These people typically ignore the need to obtain a deep understanding of a subject, which includes memorizing and storing a richly structured database.

Any person who underlines a work environment  that stresses only the database instincts ( theory) or only the improvisatory instinct ( practice) ignores one half of the brain altogether. The person or the environment is doomed to fail.

For a person who understands the points given above, the database and the set of rules, increase in size over a period of time, as the person learns. This helps the person to approach the problem that he/she faces in an unique manner and stand out from the crowd.

To conclude on the query that we started with, "Theory or Practice?", i would say "Theory and Practice".

Thanks to the book 'Brain Rules' for the interesting piece on human learning. you can expect more from the book in the coming days.

Saturday, February 27, 2010

hovering dragonfly

Camera is a Nikon D80 with a 55-200 mm lens at 200 mm.

Took more than 10 minutes to compose the shot as i waited for the dragonfly to hover long enough :)

Friday, February 12, 2010

Algorithm for Successful Project Management...

Any project planning and execution should follow the steps given below to be successful.

#1. Understand the goal (why)  and the scope ( what ) of the project.
#2. Understand the external and internal constraints (factors) that impact the project
#3. Plan (Who, does What, When and How) to reach the goal, considering #1 and #2.
#4 Once planning is done, execute steps #5, #6 and #7, till #8 is satisfied.
#5 Execute the plan.
#6 Keep checking for changes in #2 and #1.
#7 Modify the plan as needed.
#8a Do the above till the goal is reached.
#8b Drop the project if the project is no longer feasible due to changes in internal and external constraints.


I call the above Project Management Algorithm.

While this can be very obvious and looks very simple, experience tells me that it is not so obvious or as simple :)

And don't be taken in by the simple steps. Each of the steps given above can be elaborated and a lot can be written.

The attached image was part of an article that described an algorithm that physicists have come up with that only quantum computers could use.

I have added it to remind ourselves that project management may not be simple, but at the same time, it doesn't have to be as complex as quantum computing.