Yes, it's totally depending on the project.. If it's for fun, I tend to just code it right away but having the rought idea on how do I want it to be, but as TeraTask has pointed out, if it's a complex system, then I tend to wrote it down first before getting into the coding part so that I know the flow of the system.
I tend to draw UML for Database design...

Although I'm still suck at it haha...