A long project can be paralyzing at times, making it hard to figure out where to start. A trick that I learned in model railroading is to just work on whatever small percentage of the project that bothers you the most. Then, when that’s done, cycle back, create another subproject that fixes whatever bugs you the most now, and keep making incremental improvements like that until you get where you want.
I’ve used the same trick on home improvement projects, and I applied it to this web site over the course of the last few weeks, doing a series of incremental improvements. It led places I didn’t expect it.
A year ago, I tried to do it all at once by migrating to new hardware running a new operating system. That didn’t go so well–it turned out to be a bigger step than I could handle all at once. The server sat in the basement unused, waiting for me to have time to revisit it. Even after I got through the hardware difficulties, getting my existing WordPress site to run on it ended up being non-trivial.
Two weeks ago, I didn’t expect to be running on that new hardware by now. I started out with a plan to get things working as best I could on existing hardware, and see where it led me.
First, I got fed up with my server crashing under load. That led to a different approach to spam blocking, but then to some Apache and MySQL tuning, and testing with Apachebench, which was satisfying. Once a sysadmin, always a sysadmin I say, and this let me be a sysadmin solving a real problem that affected real users.
Once the server went several days without crashing and memory usage remained stable–it would spike under load, but always settled back down–it emboldened me to attack something else that’s always bugged me: tagging untagged content.
That went well. That got me thinking about poorly tagged content. So I performed a database backup, eliminated some unused tags and some tags I didn’t want the system to use–some automated tag process I tried way back when had decided words like “it” and “nt” are useful tags–and re-tagged everything. To my surprise, it took less than 30 minutes.
Then I remembered I had a problem with duplicate content. I found a plugin to address that. I ended up not using it, because it wanted to delete the copies of the posts that had comments on them, but that hunt proved fortuitous because it led me to something I wasn’t looking for.
In the course of trying to find a plugin to address duplicate content, I found a plugin that clones sites. I thought that would allow me to move to a new server a lot more easily. And it did.
That brought me full circle, back to the hardware I bought for a new server a year ago. Even with the plugin, I had a few bumps in the road, but once I had a clean-enough database and /var/www directory, I got it done in two evenings.
That’s not entirely a bad thing. I ended up in the same place, but with the detours, I ended up getting there with things I wouldn’t necessarily have had if everything had just worked immediately.
This approach would drive a professional project manager crazy, but when you’re doing something on your own time, it’s not a bad way to go. Spend 15 minutes a day doing little things, and over the course of a few weeks of doing that, you can end up making real progress. Whether it’s building a web site, a train layout, or fixing up stuff around the house, it’s a method that can keep you moving forward without feeling overwhelmed about where to start.