Now you can buy offsets for both!
The Bad Code Offset provides a convenient and rational approach for balancing out the bad code we all have created at one time or another throughout our lifetime—even when we can’t go back and fix it directly.
Money raised through the purchase of Bad Code Offsets supports the various Open Source Initiatives that are performing vital work towards the salvation of our future code base.
So basically you can "offset one bad line of code" with the purchase of a $1 offset, which is then donated to the Apache Software Foundation, jQuery, or PostgreSQL (you get to pick). Ten dollars buys you 20 SLOC (source lines of code), or "offsets one large function plagued by bad code."
This is all well and good, but if you really want to appeal to overworked, hurried, harried, excuse-making developers who don’t always "have time to do it right" — or just "developers," as they’re often called — what you should really be selling is indulgences. Same concept, but good for future infractions, not past mistakes.
That sounds like a great idea for an IDE plug-in. It can occupy its own window in the bottom right of the screen, and tie into the IDE’s existing bug-catching or style-checking code. Code editors are already smart enough to warn you about "static variable used in non-static context" or "method xyz is too complex to analyze by data flow algorithm." They even present a pop-up box with a list of possible fixes, like "change to static reference" or "split method into smaller methods". Now they just need to add a new option to the bottom of the list: "Leave code as-is and donate $1 to Apache." Click the option and it automatically sends the request to Pay-Pal (obviously, the setup screen for such a plug-in would have to get your credit card details upon installation).
So now when there’s no time to "do it right," throw a dollar at someone who finds the time to write pretty code and let your conscience be clear. I have some experience writing plug-ins for the Eclipse IDE, so I’ll get started on this project this weekend. Of course, I don’t have much time so my code’s going to be pretty messy. But that’s okay — the check’s in the mail, PostgreSQL. (Hey, that rhymes!)
Now to figure out how these offsets should be listed on my expense reports…