Saturday, July 22, 2006

A Stupidity Masterpiece

It has been a while now that I am thinking of writing something about the software industry but every time I fail to find anything meaty enough to interest the reader because as I see there is actually nothing meaty out there. The software industry is a superb economic machine that churns out the fuel it requires to run itself and money is just a byproduct.

The great Albert Einstein once famously quoted that “Only two things are infinite – the universe and the human stupidity - and I am not even sure of the former”. Even the great man must not have envisioned that he had laid the foundation of a regenerative persistent machine that will shape the future of the world. If you have missed my point, it’s the human stupidity that has created this biggest money churning industry. You can argue that I am stupid but, honestly, this time I am not!

The universe of problems is infinite (Einstein must have missed it, okay) but the problems whose solution is useful are much less and the problems which could be solved are even lesser. For example, a solution (or rather software) to suggest a girl what dress she wants to wear is useless. Even if you suggest the best, she would reject it. Now, I will leave it to you to decide whether this problem is solvable or its solution useful.

The point I am so unscientifically trying to make is that why it takes infinite time for the software industry to solve any useful solvable problem? (This is a fancy way of saying that why can’t it solve the problems?) Simply because of human stupidity. When a programmer (there could be another post to decide whether to consider it among humans and for now lets consider him to be) tries to write a smart solution to a simple problem, he inevitably does something stupid and creates the quantum that energizes the software industry. In their lingo, this quantum is called a BUG.

So, once a problem is considerably solved, there starts the process of testing the solution and this triggers the vicious circle which is the heart of this machine. Testing generates a lot of bugs which generate more problems for the programmers and they in turn try to solve it and unintentionally inject more bugs. Since there is no way out of this vicious circle, once the number of bugs become considerably high that they cannot be handled, the software is declared to be dead.

After all, there is always hope. There will always be problems and always human stupidity!

PS – I am a software engineer.