Gonzo blogging from the Annie Leibovitz of the software development world.

Day: January 1, 2004

Surviving the New Years and Iterative Development

Well that was fun. So yes, I survived the night of drinking and debauchery (actually me rallying between TV and computer catching the various “good” movies they played and having a few to bring in the new year). A few hours sleep and I’m good. I’m just trying to find a good New Years Day brunch out there now.

Last night, no I was not drunk. I really do need to get off the pot so to speak and get these things done. It was me talking, not the booze. I have started doing the proverbial path. After getting my account reactivated on my SimsTools site things are back and running over there. I also spent a few hours and finally got my hard drive setup for the various SourceForge projects I have on the go, creating (albeit boring) websites for the projects and resigning myself to actually complete at least the first iterations of these goodies.

When I do development, I generally use two principals in creating them. Test first and iterative development. Test First (or Test Driven Development which really should be called Test Driven Design) is that every part of a system is first written as a test. This might be something to test transfering a file, logging in, or leveling up a character in a game (or the very basic, show a character on the screen). The test is written to fail. This way we know it can be broken. As you go through the test you make design decisions about how the test will pass (object names, relationships) and you build only what you need to to get that test (and only that test) working. As the system grows, you end up with a fully automated testable system where every change you made was first tested, then coded. This is my preference for developing bullet-proof and solid software.

You might find the benefits of a test first driven development to be useful. For more information please check out the following sites:

cppunit.sourceforge.net

www.xprogramming.com/software.htm

www.xprogramming.com/testfram.htm

The second main principal I use when developing software (game or otherwise) is to use an iterative development approach. Iterative development is basically working in small, incremental steps to achieve a bigger goal. Okay, so you´re thinking “wait a minute, we always do that”. Some do, some don´t. Iterative development is not “let´s keep doing it until it´s finished”. With each *planned* iteration, software is created as a fully functional unit, up to the point of that iteration. Let´s say you have a spell system you need to develop for your game. Okay, so you need the ability to cast spells, learn new ones, spells for magic users and clerics, spell casting for non-spell casting users, etc. All of these are iterative pieces of the big “spell casting” puzzle. Each can be delivered on it´s own (some are dependant on others) so you can work on them in pieces. It might go something like this:

First iteration: cast a single hard coded spell.

Second iteration: cast a single text file based spell.

Third iteration: cast a series of different types of spells.

You get the idea. The benefit is that you always a working system. It may not be complete (i.e. only mage spells are in this iteration) but it is functional. Something you can test, improve and build on.

PS I added the BlogSpeak system to this blog so you can leave comments about posts (is anyone out there??)

Happy bandwidth exceeded and New Years Resolutions, oh my

Happy New Years everyone! My corner of the world has entered into 2004. Here I am looking into another year full of challenges and opportunities.

I’m not big on New Years resolutions. I’m not really akin to the fact that people seem to think that the end of the year means they have to resolve themselves to do something that they probably should have done in the first place. I’m the biggest procrastinator. In the past year (and beyond) I don’t know how many times I’ve started or said something and never followed through. That’s my flaw (one of several). I shoot out of the gates with the best of intentions and all the ambition and excitement of a giddy school girl, only to flame out a few short steps past the start line.

So for this year my resolution is to yank up my undies and complete all those things flailing in the wind right now, and the dozen other ideas I have in my head that are just itching to be released. I’ve been getting better over the past while as I try to get closure on things and I do continue to improve, however it needs some serious work if it’s to go anywhere.

For you guys it’s cleaning up and releasing SimExplorer that keeps hounding me, getting the other software going and all that jazz. Yeah, you probably heard this before so you can tune it out. Well, December was a bit of a write off. I burned out like a flame in my developer challenge at work and for the first 20 days I worked pretty much 18+ hours a day. Not that I’m complaining, it’s my way but there is a physical limit on how much someone can be at doing something. The rest of it, well, Christmas and lack of inspiration/laziness on my part. Then sometime around then I blew the bandwidth limit on the site so now it’s more moolah to keep the site going.

If these sound like excuses, maybe they are but I’m just stating the facts. No, I’m still not burnt out writing Sims software. If anything I have a new invigoration into it. For those of you that can only bitch, whine, and complain in the comment system (if it’s still up, he’s having bandwidth/financial woes as well) then get the hell out of here. I’m serious. What are you doing coming here and just pissing everyone off. Really, it’s no skin off my back and it’s not like I’m going to sit up and work harder to prove you wrong. It’s a personal journey for me and a self-satisfaction. So if all you can do is come here, hide behind an anonymous commenting system and bitch about how bad a job I’m doing get lost. I’ve probably said this before so this in itself may be old news. As for me, I feel I’m like Preston Tucker in sorts. I keep building things that are somewhat useful. Sure, they’re built in my garage with a minimal of staff and help and sometimes don’t work but I’m having fun and once in awhile, something good comes of it. I’m in the for the long haul.

Look for a new me in the new year, completed tasks and projects, and more great things from what I call a mind.