I enjoy writing software more than I enjoy using software. I'm not berating myself over this, nor am I proud of it. It's just how I am.
What this means in practice is that I will often write a whole bunch of code before I even start trying to debug it. Writing code tickles what I imagine is the creative part of my brain, and it feels good. Running and debugging code tickles the "chore" part of my brain and it doesn't feel as good.
(Yes, programming is creative. It's an act of creation. I'm emphasizing this point because there is a tendency in non-technical circles to view programming as something sterile or clinical, like accounting. I would imagine, however, that there are very few accountants who do accounting in their spare time, whereas you can easily find tons of programmers who do coding in their spare time, myself included).
Writing huge swaths of code that don't run is obviously not ideal. Since part of my job is, in fact, to produce working code, I obviously know how to debug, and I do. It's just that I could probably be more productive if I took a breath, stepped back and started trying things out earlier in the process than I usually do.
This is especially true in my hobby projects. Those are meant to be purely for fun, and so I tend to put an emphasis on the parts I enjoy, which is creating the software. I obviously do get some enjoyment from seeing it work, so I do of course eventually get it running (err...sometimes...) but much later than I should.
I think this is part of the reason I will often spend days setting up elaborate todo systems with org mode and Emacs, and then never follow through with using them. I'm surely beating a dead horse by now, but writing software is fun; using software, particularly my own, is another matter entirely.
What do I do about this? I have no idea. I'm not even sure there's anything to do. I mean, I'm mostly productive. I do, for the most part, produce stuff that, on some level, works. Eventually.
I'm not even sure what I want to get out of this blog entry. I think I just wanted to get it off my chest.
Still, self-improvement is a good thing and as I get older I find myself wanting to be a little more practical so maybe I should look into improving this.
Maybe more unit testing? That seems plausible - combine programming with testing. It could work.
Then again, I'm not a young man and retirement is...well, it's not close but it's no longer unfathomably far away. So maybe life is short and I don't bother.
I'd be curious to see which side of me wins out.