Fixing bugs or adding features?

by Marty Alchin on November 17, 2007 about Django

No, I’m not going to actually answer that question, as I expect it to be different for each person. This post is more about what I go through when trying to answer it for myself. With the upcoming sprint, it’s especially important to answer, at least it is for me.

I’ve generally been more concerned with adding new features, both for Django itself and for my own applications. It’s just something that I’ve always found easier and more useful, but there’s definitely more to consider.

Working on bugs can seem unfilfulling, since the end-goal is usually to retern the software to a properly working state after finding some breakage. It doesn’t have to be your own code that breaks (and indeed, with Django, people often fix other people’s bugs), and it’s often fairly unrewarding. There’s little praise to be had: no big updates on the mailining list, no masses of people suddenly ble to work properly, just a small entry in Trac’s timeline.

With new featues, however, there’s often a lot of public discussion beforehand, several updates along the way, desires to have that feature in previous version; basically, a lot more publicity. The sprint is supposed to be about closing tickets. This should mean that I drop new features and fix bugs, but I have tickets for the new features as well, so fixing them would indeed close the issues.

But is that time best spent? Is it worth spending a weekend on one feature (or two), just to close a single ticket (or very few)? Or is it better to try to close a great number more tickets in the same amount of time, leaving fewer — but larger — tickets to deal with once the sprint is over.

I haven’t yet decided exactly how I’ll work on the sprint. I have a few major issues in the works, most of which already have tickets on them. If I can’t get them finished before the sprint, I expect I’d rather try to get them done, than to spend time on individual tickets. That said, a great many things go into that decision, and I probably won’t be able to decide for sure until the sprint starts. It’s definitely something I’ll keep in mind though, over the next week.