Thursday night, there were 136 failing tests left on the M7 test suite. As of this morning, that number is 90. 46 fixed tests in 3 days. Not bad! Of course, 1.5 of those days consisted of trying to fix a set of tests that I never quite figured out (but fortunately, I have lots of notes and ideas!).
The career of a software developer is one of continually not knowing the answers. That's what makes the job fun. Every day, you're learning something new, solving some new problem (unless you're in one of those other software jobs, you poor soul!). But when you're racking your brains (I was corrected recently on this term – it's not wracking, it's racking) out on why Factory Girl (yes, this is actually a Ruby gem) won't work the same under Rails 2.3.2 using particular "associations" and there's only one way-too-simple example to go off of (nothing is said about creating a factory with more than one child association, which is unfortunately what we had) and not very much documentation, well... it can be a little frustrating.
But sometimes you just have to beat your head against that wall until you get it. It's a concept that most skilled creative types have to learn at some point. I remember learning guitar and it just seemed so hard to stretch my fingers far enough to make a power chord. Then one day after weeks and weeks of trying to do it, it just clicked. The process of writing songs is like that for me as well. I seem to make about ten or twenty failed attempts at one for every good one I write, and usually that one's written in under a day. But those ten or twenty failed attempts were as much responsible for that one good one as anything else. They attempts had to be made. I had to go through that frustration to finally relax and write the one that worked.
I've actually started to look for the odd brick wall. The thing about them is that they act as natural barriers to everyone else. When you look at the amount of stuff out there on the Internet, it's easy to get discouraged. Everyone has a voice now. Tools are being created every day to reduce the barrier of entry (in terms of skill) to a lot of areas of creativity. I actually think this is a good thing, as it allows people to exercise other areas of creativity. But if you want the creative life to also pay the bills, you need to continually stand out. Brick walls help you do that. Because they can be pretty daunting, and they won't seem worth it to most people. And, actually, they aren't really worth it, unless there's at least some passion backing your attack. You've got to love something about the challenge. You've got to be a bit obsessed.
And sometimes you've got to just keep going when you've got a bit of momentum. This was basically a work weekend, but I don't mind doing that the odd time. Of course, I also expect people to understand when it goes the other way a bit. Creative work does require discipline, but it also requires a little more flexibility than is built into the nine to five system. You've got to give time for brick walls, and also take time to rest a bit once you're on the other side. Still learning to properly do the latter.
Food for thought: I've been musing over this slightly related post over the last couple of weeks. I think there's a lot of truth to it. I hate the uncomfortable moments, but good things often seem to come from them.