1. Proper source control
Yes making occasional backups on a CD is fine most of the time but it doesn't give you the full stength of a proper source control system. In my current project I've needed the ability to roll back changes and do diffs more than once, and it's saved me countless hours. In this day of great open source solutions there's no reason not to be running a source control system. I run an SVN server on one of my machines and love it. I even went as far as setting up an SSH server so I could do checkins remotely from a coffee shop. So far I've had checkins while in 3 countries. One doesn't count because it was Canada where my parents still live but the other was from Spain. What else are you supposed to do on an 8 hour trans Atlantic flight besides code?
2. Library separation
In the past I've usually just included my engine source right into my game projects. Same goes for any external source I might be using. This time I have kept all non-game source separate and built into static libs. That means everything. I use TinyXML for some data parsing in my engine and I have a lib for that. My Ogg Vorbis stuff is in a separate library. This may seem like a lot of extra organization work but it makes problems so much easier to track down. Knowing that my parsing code is solid and not changing means I don't have to question that code when I see it in a call stack.
3. Real Documentation & Samples
No matter how small your engine is there are parts of it you will forget. I've coded 100% of my engine yet from time to time I find myself coming across a method that I don't remember. As the engine gets larger and needs less work this will only get worse. For this reason I set about creating real documentation for everything. While this may seem like a bunch of extra work it really isn't. Using a tool like Doxygen you can now create great looking docs from the comments in your source code. We all need good comments so why not format them in a way a tool like that can use?
Going a little further I actually coded up some basic samples on how to use the engine. I admit this might be a bit overboard :) If nothing else it was fun to treat this tiny little engine like a real product.
4. Work logging
As I've said before I try and track all work items done along with how long they took. I gives me day to day motivation and helps give me an idea of how much work is involved in such a game. It will hopefully help me to make better time estimations down the road if I should ever get to the point when someone asks me to deliver something.
5. Become legal
The final step to professionalism was forming a legal entity. A couple months ago I formed an LLC and got all the necessary business licenses. The startup costs were around $500 and the annual costs are going to be in the $150-$200 range. This might seem like a fair amount of money for a piece of paper but people who have other hobbies don't think twice about spending more than that a year. Do you know a golfer who can't spend $100 in a round of golf?
It does mean having to get serious about other things. For one there are taxes. While you don't have to pay taxes if you don't have any revenue you still have to file all the paperwork. So come next January I'm going to have some additional work to do thanks to this little move. You think I'm going to be happy if my project has dies and I'm doing it all for nothing?