In a previous article, I pre-announced (with permission) the new plugin capabilities of FogBugz 7.0, which has now been released, and put out a call for ideas for functionality you’ve always wanted in the product. I didn’t get a lot of suggestions, so I opted to start with something that I’ve needed for my team.
If you’ve used FogBugz for any length of time, you no doubt have learned that this software comes with a subscription to Joel’s dogma on the way bug tracking should work and the software has generally enforced it, although the last two releases have shown a marked departure from their previous hard-line position.
One thing that comes up fairly often in their discussion group is the desire for the ability to go back and delete/modify previous entries after they have been submitted. It isn’t hard to come up with a list of reasons you might want to do this, but here is mine anyway:
- Everyone makes spelling/grammar mistakes, no-one wants them permanently memorialized as a monument to their illiteracy.
- Once in a while, you accidentally add an update to the wrong case. While you can add another entry imploring people to ignore the previous one, it mucks up the case history and makes it confusing to read.
- While working on a complicated case they sometimes take a hard left turn and make every previous discussion in the case notes irrelevant and misleading, especially for testers who come in at the end of the case and have to make sense of what the fix/feature exactly is supposed to do.
However, I do see FogCreek’s position about not encouraging people to change history. For typos sure, but this capability could clearly be abused by a clever revisionist trying to hide their tracks.
FogBugz Scratchout Plugin
My compromise was to approximate the Wiki model of changing history, let people change things, but leave a visible audit trail. I built a plugin that lets you mark case history events as deprecated and display them with the strike-through CSS effect. There is even a tool-tip over the struck text with an explanation of why it was deprecated.
Also, scratchouts are completely reversible with a single click.
Event Editing: The current version of the plugin addresses situations #2 and #3 (above) reasonably well, but it doesn’t yet provide a way to edit an existing event. This is something I’d like to implement in a future version.
Real Deletes: I’m still working out how the permissions would work, but for those who aren’t worried about abuse, I’m considering a configuration option, or maybe a separate plug-in that allows a permanent delete of a case or event from the database.
- The button is still ugly, and due to limitations on the plugin API, I haven’t been able to reliably put the scratchout/restore links where I wanted to, in the header above each event. At least not reliably for all browsers. Any CSS experts that want to take a crack at that, let me know.
- I’d like to do some visual effect so you didn’t need to hover over the text to see the scratchout reason, but I haven’t come up with an aesthetically appealing design for that yet.
Your ideas: If you are using this plugin and have some ideas for improvements, send them my way via comments on this post.
Available now at a plugin gallery near you!
If you haven’t upgraded FogBugz yet, I strongly recommend it, the new version is a major step forward for the tool.