Friday, November 18, 2005

Layoffs!

As much as I was complaining about software developers writing unnecessary complex code most of the time, my heart goes out to the same people today! My client laid off thousands of people today and most of those were from the IT departments. A black day in the history of my relationship with these people. It was very disheartening to hear that starting tomorrow morning, many of the people we had worked with over the past months will not be at their desks. The sad part in this whole affair is, this time around it is not the IT industry which is on a slump, yet it is the IT personnel who get the axe. I find it very unfair!

Apparently, the rate at which the projects are going to progress is going to be very slow; the projects will have to be rescoped. Since my program was not affected much, I hope the fixes I am expecting for my module and future analyses will not be affected.

All the best to everyone in their future endeavors!

Saturday, November 12, 2005

Technology vs Occam's Razor

I think I will dedicate this post to all the software developers who come up with complex, near perfect enterprise-level code!!

In one of my undergrad classes, I studied about how Occam's Razor was to be used in any industry. And one of the industry that fails to make use of this principle is the software industry. I mention only the software industry because that is the only industry I have any knowledge about!

Before we delve into all the technical mumbo jumbo, let me say a little about what I do. I am an analyst for a complex, near-real-time, highly business critical application, which has been live for almost two and a half years now. My job - analyse the data that flows through this system and detect inconsistencies and come up with recommendations for fixing these issues. Basically, I know what I am talking about here!

Believe it or not, I see inconsistencies on a daily basis. Sometimes, it is a nightmare figuring out why these things are happening. When the Business Analysts too have no clue, you can imagine the nightmare for the rest of the folks. I can attribute most of these issues to non-compliance with the Occam's Razor. Occam's Razor states:

Pluralitas non est ponenda sine necessitate

which roughly translates to Given two equally predictive theories, choose the simpler. In order to make this principle fit for this scenario, the alternative translation for this reads as: pluralities ought not be supposed without necessity. The pluralities here refer to the number of classes/layers used.

I do agree that there are situations where introducing such complexity is necessary. There may be requirements that drive such decisions. But should they be used all the time? There have been so many instances during my analyses where I have realised that the requirement could have been satisfied without introducing such complexities! Workflow in particular has been an area of particular concern to me and I feel most of the things that workflow achieves, can be achieved without its use. People who have used workflow are the ones who know what a beast it is and can be if not used properly.

Personally, I feel that complex concepts should not be used just because it is out there. There must be a valid reason for using it and that must be simplest way of solving that problem.


P.S.: I am watching this movie called Taking of Flight 847. This movie is very similar to Delta Force starring Chuck Norris.