I didn't do any work on the Journal this weekend, you know why? Because I got freaked. Those comments I got about how crappy the code was in MiniBlog and the SimpleWeb really got to me. I KNOW it's crappy code. I knew that before I published it. But nevertheless, having someone review your code and say, "this really could be a lot better," sorta sucks. It stopped me cold on what I was doing - I started over analyzing everything instead of developing. I can get that way... I couldn't even produce an HTML page this weekend. It wasn't Dive Into Mark perfect, so I couldn't get past the freakin' CSS file without reediting it.
I can drive myself really nuts by being a perfectionist. I can produce absolutely ZERO for years that way. I've done it, I know. That's where the "just get it done" motto came from. I was sick of trying to write the world's most perfectly written code, or developing the most beautifully structured programs and not getting anything done. I call it being "blocked": Sitting at your computer for hours on end, but not producing a single line of working code to show for it. It's the fear of not having perfect code to show off to your geek friends. It's the fear that really down deep you're a shitty coder and as soon as you produce something everyone's going to know it.
Well, you know what? I'll come clean right now and get that monkey off my back. I'm A HACK not a real programmer. My code in general is just good enough to work. I'd try to claim some sort of XP badge (do the simplest thing that could possibly work) but I won't. I'm just a lazy ass coder who does the minimum possible in every situation. I like to get prototype-level code down, working and then I go on to the next thing.
My CODE SUCKS. There, I said it. I'm going to use this as a reference for all comments into the future. Not that the comments I got before were anything but nice, they just got to me. This is my attempt to get off my mind and get back to work.
My development will always be the SIMPLEST possible solution in the fastest way possible in the shortest amount of time. Writing code that way and you'll be able to rewrite the code four times in the same amount of time you take trying to architect the code up front. This IS very XPesque, actually, but it isn't (because, for one, if you're not doing ALL of XP, you're not doing XP) it's just me sick of not getting anything done. Basically, there's ALWAYS a better way to do something, but I don't care. If my solution works that's all I care about.
I really dislike over-architected code, actually (who doesn't?). There are so many programmers out there that want to use the latest and greatest tech or methods instead of just getting the code working. "Real Programmers" in my experience love to slap more and more abstraction onto stuff that doesn't need to be abstracted 90% of the time. Many times a simple SQL statement will do the work of 3000 lines of some "maintainable" code which is rarely if ever maintainable by anyone except the original programmer or 4 months of studying the API to do a simple database query. Obviously, if I'm writing my code in my spare time, I'm not going to be doing that sort of development - despite being more impressive to the geeks.
Okay, end rant. For you amateur psychologists out there, this should have been a very interesting post. Lots of defense mechanisms popping up, denial, self-doubt, etc... ;-)