So, at work I’ve run into yet another one of the oddities of software design. I was checking out something that I’d never done before, and when I loaded it up one process — the one I needed to run — kept dying. I did a search on something else that does what I want it to do, and discovered that I wasn’t updating something that it was. I added it there, and then … every process either wouldn’t start or kept dying.
Progress!
I was getting it complaining about my definition on the North side, and so tried to fix that. Failed due to a typo. And then just before I left yesterday, I loaded it up and … it complained about the South side.
Progress!
The interesting thing is that this really counts as progress for software design. If the behaviour doesn’t change, then you haven’t gotten anywhere except that you might have eliminated one hypothesis as to what the real problem is. But if the behaviour changes, your change did something, and so that’s at least potentially progress. It stops you from simply banging your head against the wall because you can’t figure out why nothing ever changes.
In this case, it may turn out that to fix my problem I didn’t need to do the things I needed to do except for the last one, but I likely would eventually have had to do them anyway. So, progress!