Wednesday, September 14, 2022

Accidental Nostalgia Overdose: An old "Cheat Machine" review

 On a random ego-surfing session, I found this post that made me smile: is generally about my own work, but since I don’t like to disappoint my visitors (and since I liked it a lot once), here is Cheat Machine 2.20 by a Forest Software. To my knowledge this is the most recent DOS version, and the only one that is Freeware:

Download Cheat Machine – Don’t get mad, get even!

Hit the keyboard with your head to continue …

Note that you will need to set the date to 1998 or so in order for this software to run.

Cheat Machine is a handy collection of cheat codes, trainers and easter eggs for antique software. I was very inspired by this specific piece of software around the mid 90’s when I began to program for DOS (using Borland’s Turbo Pascal). I liked the obsession for details and the overall fun atmosphere. The people (or person?) who made this software took their work seriously while not taking themselves very seriously – this, in my opinion, is a great recipe for (software) creation.

In the end, this is just a small piece of software that has very limited functionality, but every bit is plated in gold. It was fun to use, and you could clearly see it was fun to make. Software team leaders will argue that such “gold plating” is not only unnecessary, but also puts the project at risk and waste money and time in developing features that the customer did not pay for (while also making the software more complex and potentially buggy). Although I accept this to be generally true, I believe that in software manufacture, like in every other aspect of life, the key to success is the correct balance (which is never exactly halfway btw). You need to have something that will motivate your team and create that good vibe of excitement about the product. Let’s face it, not every project is very interesting to make, and spicing things up by adding some so called “gold plating” will not only make you proud of your work and give you the energy to successfully glide through the rest of the project, it might also give you a competitive edge because even if most people won’t notice your extra work someone somewhere probably will.

That said, never put time limitation on your software (especially if it’s freeware!) claiming that a new version must surely be available, because nothing last forever and having to change the date on my computer every time I want to run your 10 years old application is not very hot :) I could try to patch it, but the EXE is protected against just that!

I love the fact that he called my unhealthy obsession of "perfect code" and micro-managing development as "gold plating", back in the days that I wasn't paid by the hour for solutions. 

I disagree with him on the time limit.  It was added very much on purpose, because the program was only valuable if it contained recent information.  Without it, one would have to support every version ever released, and that is not doable.   This was in the days before the internet, where you couldn't just hit an "Update" button and the software was magically up to date again.  You had to log into a BBS and manually look for a new version and download it.    This was something that a lot of users didn't really want to unless they were forced to. 

For hardcore fans, I did a Youtube demo of an earlier version.