Scmbug helps you establish a software change management process. It ties what changed with why it changed.
A software change management process helps guide software development. It helps track all changes so far, plan what to work on next, and trace problems back to their root cause.
In short, Scmbug keeps you disciplined. It instantly rejects commits unless you provide a bug number in the commit log message, or if you are working on a bug you shouldn't.
It feels silly to use software that forbids you from writing software. But it feels less silly than not remembering what you were thinking when you wrote your software. When you program you make a lot of swift decisions descending deeper into a problem, and you can't hold all of them in your head. At some point you find yourself lost in the woods with the starting point long out of sight.
When you use Scmbug you can always find your way back. You leave a trace back to why you wrote every line, like the thread Theseus used to find his way out of Minotaur's labyrinth. You also leave a trace towards the opposite direction. For each bug you describe, Scmbug inserts commit logs in the bug comments so you know what changed in the source code to fix it.
The biggest advantage however might be the indirect effect on what you choose to write. You can't make changes at will now, so you have to justify why you are writing something. You are forced to stop and think. You stop to look for a bug number to use for the change, and soon can't help but think: why am I doing this?
Scmbug gets you in the habit of stopping to think as soon as you are about to make a change. If you get tempted to go down an unimportant path, you are dragged back to the todo list that is your issue-tracker and notice soon enough. If instead you are working on something important, you soon realize your assumptions are incomplete. You start opening new bugs in your issue-tracker to describe what you haven't considered, which helps you make progress in your design before you start programming again.
So not only does Scmbug help you avoid writing bad programs, it also helps you think through writing the good ones.
Of course, Scmbug can only help with thoughts circling in your mind. It would be miraculous if it could generate ideas for you but unfortunately it doesn't. There are other ways to do that.
There are two parts to Scmbug. Integration glue is added as hooks in your source code version control system like CVS, SVN and Git that lets it control commits. The glue talks to a server daemon to integrate with an issue-tracking system like Bugzilla, MantisBT, and RequestTracker.
The latest version 0.26.22 is available here, there is a user manual [HTML single] [HTML multiple] [PDF], and an issue-tracker.
Neither DynAMOS nor UpStare would exist without Scmbug.