I have created a bit of turmoil in my mind concerning an old software program that I wrote quite a few years ago, called "HazTrac". I originally developed it as a "typewriter" that allowed me to input information as paragraphs and then print it in the required format consisting of columns. I did this by creating a very simple database that allowed me to write in paragraph shaped fields, and then print the information in whatever format was needed. It was quite a handy tool. Once the information was entered into a database, it instantly became obvious that a lot more could be done with it than just print it out. For example, it could be sorted or filtered! The "feature creep" really took off at that point because almost every time I used it, there became a need to do something else with the data. It rapidly became a status and action tracking tool, in addition to just a weird word processor.
The program grew, and morphed into a tangle of programming codes and statements. Luckily, the versions of the database (dBase in those early days) changed enough that I had to eventually scrap my process of adding and modifying an undocumented program, and was forced to rewrite the entire thing. That gave me a much needed chance to do a much better job of designing the software, and of documenting what I was doing. My System Safety engineering firm started to use the program as the basis of much of the work that we did, so I was lucky enough to get feedback from many users and quite a few customers. Each person seemed to have yet more ideas for improvements and changes. After awhile the changes started to slack off and people just used it. My guess is that at that point it was doing the job it was intended to do - help safety engineers and project management document and keep track of the hundreds (or thousands) of safety items.
I then decided that maybe it could be turned into a "product" where I could recoup some of the hundreds of hours of labor that I put into this thing. That decision required a significant modification to the user interface because now it had to be used by unknown customers, rather than "hand trained" engineers. I could no longer rely upon being able to sit down and teach folks how to use the program, it needed to be intuitively obvious. I created a first edition in dBase that ran as a stand alone runtime program. My personal opinion is that it was a pretty good, and extremely useful, tool. I advertised it around and sold a couple of copies - certainly not enough to pay back the effort of turning it into a product.
Then dBase went out of business, over run from competition from Microsoft Access. It was a terrible event from my point of view. dBase was a MUCH better database program, and allowed for a MUCH better user interface. It was a sad moment to be forced by market forces to dump a great program and have to go to the worst of the worst. Access is a terrible program in many ways, but it is what is readily available, so I once again rewrote the code - which ended up with huge change to the user interface necessitated by the functions available using Access. I had to move from something that I considered to be friendly and easy to understand, to something much more clunky. But I eventually got most of the bugs worked out and accepted the lose of functionality necessitated by the change. I still had my eye on the program as a product, so built many of the features this required into the structure of the program. I didn't add all of the "product" features at that time, but provided links and a structure that would allow for fairly easy future enhancements.
I once again advertised it, and talked it up around the Society, but nothing much came of it. I did notice that by that time a number of large firms had started up projects to create their own Hazard Tracking System (HTS), based upon specific contractual program requirements (including MIL-STD-882 and others). I gave up at that point, fearing that once the "big boys" got into the HTS game I would never be able to compete. However, I see that there still is a big opportunity for such a flexible HTS system. Actually, once it became clear that it isn't really a hazard tracking system, but rather an action tracking system, it became obvious that it would be useful for a wide variety of uses.
So now am sitting on this little program and nobody is using it, or even knows how very useful it could be. I am not particularly interested in going back into the code writing business, but sure would like to see the rest of the features that I designed for to be included. The smaller part of the job still needs to be done but I am not really ready to do it myself.
One of the problems that I keep having is that every time I talk to someone about maybe finishing it, the answer is always the same - "sure, I could start from scratch and use your funky little program as a template." That seems like such a terrible waste of time and energy. Some companies have actually attempted that, with the result of spending a lot of money and still not having an easy to use HTS. I would like it to be finished, not started all over again. I have been told that it could be rewritten as an SQL program - it is already written as an SQL program (using some functions, formulas and features built into Access). I suppose there might be some value to migrating to an SQL server, but I don't know what that might be. I attempted to use the SQL code conventions, rather than VBA - but that still doesn't guarantee an error free migration, and in fact is almost certainly going to cause many of the subtle user interface elements to fail.
My desire is to complete what is already there, rather than scrap it and start all over again. If it is finally ever completed, and there becomes a pressing need to migrate to a larger server (such as could be accomplished by migrating to and SQL server) that could be done - but it is likely to be a costly process.
My guess is that nothing is going to be done with it, and it will finally be relegated to the scrap bin of history because it failed to keep up with changes to software applications. It is already probably not compatible with Access 2007 because Microsoft made drastic changes to the basic structure of the database and code, they dropped compatibility with older versions of the program, stranding applications such as HazTrac high and dry.
This was a really quality post. In theory I'd like to write like this too - taking time and real effort to make a good article... but what can I say...
ReplyDeleteI procrastinate alot and never seem to get something done.
Issue Bug Tracking