Saturday, June 10, 2006

What if we can maintain our Software Systems like our cars ?

My Comment : World would be a a happy place to live.

Problem:
I have come across a comment from software professionals that they know that some parts of their software oulived its utility. They would love to replace it with new parts but their business users would not allow it. Business users’ opinion is if they are not getting new functionality from software then they don’t want any change.

Solution:
What if we have ‘Maintenance Check’ or ‘Overhauling” phases in our software life cycle? We allocate time and resources for maintenance check in our project plans. Qualifies Software Professionals would check software and see what parts are worn out or need oil and tuning. Worn software are removed with new, others are refactored and tuned.

Do I like paying for Car Service? No. Do I go for every car schedule to keep my car running? Yes. I think that it is a time to educate Business Users about Software servicing. They have choice to pay tens of thousand dollars for software servicing or million of dollars for software rewrite. Because Software System is going to die with
out service ultimately.


Till it happens, let us sneak changes as refactoring with next release.

2 comments:

survic said...

Very nice post.

I thought about it recently also (http://survic.blogspot.com/2006/06/legacy-enhancement-development-why-and_06.html). However, I elaborated the “why” part only from individual developer’s perspective. Your blog reminded me to address the bigger picture.

I want to push your post “a little bit” further.

(1) Rewrite is always much more costly, and more importantly, much more risky (more than half will fail the first try).
(2) With good service, software can live forever -- it can even evolve, individually ;-)
(3) Combine the above two: “total rewrite” is a bad sign; it usually means the “car” is abused.
(4) Users depend on professionals to help them. Educated and informed decision is the norm; however, a lot of times, “let us sneak changes” is also necessary. It means a lot of responsibility, and requires real “fearless leaders”. It is sad that we see too much “total rewrite”, and too little “software service”.

Vikas said...

I really enjoyed your post.
Legacy Enhancement Development
It is really surprising that there are so many million dollars rewrites. After Martin Fowler's book on refactory, very few people have done any more structured research on this issue. I have seen some very smart Architects or Leads leading heroic efforts to salvage the existing systems without costly million dollars rewrite. It is really bad state of matter that business people has not taken servicing software seriously even though it makes million dollars sense.
Here is my attempt to take structured approach about refactoring
Eight Point Checks for Servicing Software -- Servicing Software Part 2