How NOT to write software

First, a bit of background. I'm pretty heavily into a MUD called Achaea, Dreams of Divine Lands. Achaea is much more focused on player vs player combat than most MUDs, and consequently, combat is a bit more complicated than typing 'kill ogre' and hoping you have more hp than it does.

The program I'm writing will interface with zMud, the MUD client I use, via DDE, and keep track of various afflictions that my character can be hit with.

Choose the wrong set of tools. I was pretty much forced to use Borland Delphi for this project, because I needed DDE, and didn't have the time or the ability to get my hands dirty with the details. Unfortunately, the rest of the project would have been more suited to C++ or, even better if only I knew it well enough, perl.

Immediately declare the problem to be trivial, and start writing code without considering how it's all going to fit together. I did this, and consequently had the rather unpleasant suprise to realize halfway through that I was going to have to throw out a good chunk of code, because it didn't do what I needed it to do.