Showing posts from May, 2006

age of software

I have been thinking about longevity of software, how it ages and eventually dies. Many of the software that was around while I was baby footing in this industry is no longer around or has come up with newer versions that resemble to the original only in name. Is it possible to write a truly magnificent piece of software that can live forever without being a recluse? If we realistically don’t expect our software to live forever, what are we doing about it?

Is it possible to design for the future in advance? Unless hit by a bus tomorrow, I can venture a fair guess about what will happen to me at most 1 year from now, not more than that. Then how can we design a piece of software to work for even 5 years. Do we even think about how many years a piece of software will be used while designing?

There is music, films, paintings and buildings that last for a really long time, but the average life of software maybe 5 years (wild guess). There are too many parameters changing i…

problems and solutions

A quote on a manager’s door in my office – “Don’t come in with problems. I want solutions”. I think a beginner will go to his boss with problems and would not have thought about solutions at all. Next level is thinking about options to solve and the pros and cons in choosing any of the options before even going to the manager. You cannot expect the manager to solve every problem. Anyway the first thing he will say is “okay, I hear your problem. So what can we do about it?”, so better be prepared for that. Better yet, identify the best solution and implement and then inform the manager. You have to inform your boss anyway – if you find the problem, analyze it and fix it and nobody knows about it, still you will be on losing end since nobody will ever know how good you are. Even the next level will be anticipating problems and fixing it before it can surface.

How to take up maintenance of an existing software application?

Software development is not always about developing an exciting new application. There are situations where you need to get into application maintenance or enhance an existing application. I never thought I would write a “How to...” or “Art of...” article, but here it is. It is not in any particular order, just things that I may have done in maintenance projects.

1. Suspend judgment: - It is a universal fact that we fear or suspect the unknown. Unless we can see it, touch it and make sure that it is not dangerous, we may withdraw from things without even putting up a fight for it. There are systems developed over many years and it may seem like an uphill task to take up maintenance of such application. I like the phrase “suspend judgment” – be it meeting a new person, watching a movie, reading a book or getting to know a new application. Suspend judgment at least until you can confidently evaluate whether you like it.

2. Persistence: - Another phrase that is sticking w…