Sunday, July 13, 2008

How Best Is To Revamp the Good Old Software?

Quick Quest - software created for college universities to generate ‘equally distributed complexity’ question papers. My college university attempted to utilize it and found it useful. This is an old story. The latest happening on this is, I am re-creating it with latest technology (.Net) putting the software architectural knowledge I have gained in several years being in this industry. If you are a person who is having more than 10 years of experience in software design, my step of software re-creation might not sound big for you. It turned out huge for me due to several reasons. When I had a plan to re-start on old successful software, I took opportunity to reach as many technical gurus as I can and asked them a most controversial question - “How good is to re-create good old software? Or should I extend the same old software with new features?”. Many had different thoughts but the common opinion was, extend the existing one instead going for whole new re-creation. When I sat and looked at the existing code base and also thought of the functionalities which I wanted to include newly, there was a strong sense of ‘more work and hard to manage code base’. For example, if I want to make some part of the application as configuration driven guided through configuration file (which could be an XML file) in good old Visual Basic 6.0, I have to manually write all the code to open file, navigate to the configuration entry, get the value and close the file. Newer programming language was offering it as one of its in-built feature. In fact, I gave you a simple example here.

I was keep receiving many views from many people on “application migration” act. Days were passing on. My thoughts were getting messier and started chaotic cooking in my mind. I had to finalize it. I created a small my own analysis report which gathers some points on Software business complexity, technology challenges, degree of ease to extended the current code base for future requirements, software support on production machine, deployment strategies, opportunities for web and mobile integration and utilization of forthcoming operating system features for future requirements. On the other side of the coin, nothing can be reused from previous software, spend more time creating all by greatly affecting schedules of my other products (Flexo, Outlet and CD Indexer), the technology which I am considering as ‘new’, may very soon get old when something ‘totally new’ hits.

Out of all these, strong points were making me incline towards the re-creation of the software using newer technology with very clear caution of uncertainties in this industry. I finally opted for re-creating it only if I am able to orchestrate the design of the software flexible enough to integrate, extend and reuse with current and future software technologies/products and hence the new version is under construction, “Quick Quest Compact Edition”. This edition of software works on single box, there will be “Professional” and “Web Edition” coming out in next several months targeting different audience.
Now, what I have to see myself is how good I designed the internal architecture when something new really hits.

No comments: