Tuesday, May 15, 2007

Software Dilemma, the next version

Working on the next version of a piece of software is hard. You have extended the current piece of software as far as you can and added features at the cost of a clean design. There are a number of features that you currently cannot implement, so after they amount up for awhile, you decide that you need version 2.

Version 2 is not like starting from scratch, which is both a good and bad thing. For version 2 you have a bunch of source code from version 1 that you can use. The bad news is that much of the source code from version 1 will have to be tweaked in order to incorporate the new features that you want to add. Personally, I have found myself cutting-and-pasting code from version 1 into version 2 then modifying it to conform to the current design. My gut says to start version 2 from scratch, but my head knows that that would be a waste time and I probably would end up producing similar code anyways.


Anonymous said...

Version 2 doesn't have to be a scratch and re-code. If something works, by all means, re-use it. This works well for user interface components. However, in this type of application, the real work is in getting the "engine" correct. The engine supports the handling of card action and interaction. Finding the correct structure of the engine to handle new functionality without having to tear it all down and build it up again, that is the real art. This probably what you are referring to when you mention start from scratch. As long as you keep a working version (assuming you are using version control), you should be able to get as creative as you need.

Forge said...

Yes you hopefully don't have to re-code the whole thing but sometimes you have to. The engine in version 1.0 had global variables which hinders me from doing some things with the Computer AI, so the engine in version 2.0 is almost from scratch.

I can practically cut-and-paste the user interfaces, which saves alot of time.