I also agree with Ian, and Fuzzy. I have never created a design document for any games I've made, and also most of my non-games programs at work. I doodle and sketch out some code logic in a notepad occasionally (while AFK!), but no actual design doc. My 'design' changes too frequently to even bother. How do you plan something that wouldn't be obvious UNTIL you've prototyped something first? Just keep your code very flexible, modular, and related code in separate files.
One thing I need to get better at (which I am at work) is keeping each code library completely independent from each other, as much as possible. For example, my Input library will use my Rectangle (x, y, w, h) TYPE from another library, but then I can't change my Rectangle library without other libraries bugging out. (May be a bad example, but the point is valid).
The only exceptions to this is at work, when I programmed 2 huge applications. My boss would design some basic logic (using simple pseudocode) which I would convert to Visual Basic 6 code. But that's just the way he worked, and helped wrap his head around the project. But in hind site, maybe I should have prepared better documentation for my other projects. But I managed to get the apps to work when I had full project layout authority. And they were complicated (both valued at over $1M in the market I'm in (steel manufacturing)).
I believe to each his own. Its the final results that matter. But in team environments (or where somebody needs a quick way to get up to speed on your project) a design doc may be recommended.