I <3 Steve McConnell*
Coding Horror
programming and human factors
by Jeff Atwood

November 19, 2009

Buy Bad Code Offsets Today!

Let's face it: we all write bad code.

But not every programmer does something about the bad code they're polluting the world with, day in and day out. There's a whole universe of possibilities:

But that's a lot of work. Really freaking hard work! Wouldn't it be nice if you could do something a bit simpler and easier to, just … say … offset the bad code you're producing?

Well, now you can -- with Bad Code Offsets.

bad-code-offset-front.jpg

bad-code-offset-back.jpg

I am a proud member of the Alliance for Code Excellence, and this is our vision:

We envision a world where software runs cleanly and correctly as it simplifies, enhances and enriches our day to day work and home lives. Mitigating the scope and negative impact of bad code on our jobs, our lives and our world is our all-consuming passion. We foresee a time when bad coding practices and their rotten fruits have been eliminated from this earth and its server farms thereby heralding a new age of software brilliance and efficacy.

Nettlesome bugs and poorly written code have been constant impediments towards realizing our full potential as programmers and engineers. Bad Code Offsets provides the vehicle for balancing the scales of poor past practice while freeing us to pursue current excellence in code development. Until the dawn of the worldwide, bug free code base, each of us can take steps towards reducing our bad code footprint and remediate the bad code that we have each individually and collectively left behind on the desktops, servers and mainframes at school, at work and at home.

Yes, this is partly tongue in cheek, but we aren't just doing it for the lulz. Bad code offsets cost real money, because the Alliance has a goal:

Q: Where does my money go?

A: The proceeds from the sale of Bad Code Offsets are donated to various worthy Open Source initiatives that are carrying the fight against bad code on a daily basis. These organizations include:

This is the awesome part: the money you spend on Bad Code Offsets really does offset bad code!

All the money spent on bad code offsets goes directly to open source projects that actively make programmers' lives better. For every ten thousand lines of mind-bendingly bad code produced, we hope to subsidize a thousand lines of quality open source code.

So, please -- buy bad code offsets today. It is, quite literally, the least you could do.

[advertisement] JIRA 4 - Simplify issue tracking for everyone involved. Get started from $10 for 10 users.

Posted by Jeff Atwood    View blog reactions
« Parsing Html The Cthulhu Way
Version 1 Sucks, But Ship It Anyway »
Comments

You're going to need larger denominations...

DGentry on November 19, 2009 6:08 AM

So you are now officially encouraging people to write all their bad code in as few and long lines as possible, to get cheaper offsets ;)

Morten Christiansen on November 19, 2009 6:08 AM

I don't know why it is that some developers consistently denigrate their code. I don't know why this must be. I have worked as an electrician, and have had to review my own wiring and soldering and my own installations, and although there might be a thing or two here are there that could be tweaked, I was almost always proud of my work. As an engineer the degree of difficulty shot way up from being a tweak (Navy-speak for an electronics technician), but I never recall looking back and just loathing my prior work. And now, as an experienced developer, I can look at earlier samples of my work without cringing. Yes, I have polished my technique further since then, but the logic is not really going to change much. The implementation? Eh. Why waste time beating yourself up over your code? It is pointless to me. This is a progression. My code gets better and better. The corrolary is that it looks worse and worse the further back I go. But this is not a bad thing. Just like the circuit boards people designed in the 60s look quite quaint and inefficient compared to what we can design today, they still got the job done and did the job reliably.

Also, I am a musician who was written original music for years. I never rip my old stuff, even if my more mature ears are constantly noticing things that might have been expressed differently. But that's why they invented the remix, baby.

Gray Fox on November 19, 2009 6:24 AM

I would definitely consider donating to FOSS projects (& I have actually donated in the past), but not on the basis of my own code quality. What if I didn't know my code was bad? Should I just buy enough credits for every single line in the project? Who would pay, me or my employer?

John Ferguson on November 19, 2009 6:24 AM

What about people that write bad code using jQuery, PostgreSQL and ASF ?

Christo on November 19, 2009 6:24 AM

I see supposedly smart people missing the point and focusing on the joke about bad code instead.

Aaron on November 19, 2009 6:27 AM

"The proceeds from the sale of Bad Code Offsets are donated to various worthy Open Source initiatives..."

This implies that some portion of the amount donated is going elsewhere besides the open source projects - perhaps to cover your costs, or perhaps to pay someone a salary.

What are your costs in running this website? How much of the donations are going to some place that isn't one of the open source projects (such as Jeff Atwood LLC)?

Matt B on November 19, 2009 6:35 AM

Wow, publicly calling out bad code (in that htmLawed example). I would hate to be Santosh Patnaik right now.

Chris on November 19, 2009 6:43 AM

"How much of the donations are going to some place that isn't one of the open source projects"

+1 I would very much like to see the breakdown for this or wouldn't consider donating any money.

dan on November 19, 2009 6:45 AM

That's almost like a religious teaching "If you sin, take god's name x number of times and your sins are washed away".

fallenprogrammr on November 19, 2009 6:46 AM

"For every ten thousand lines of mind-bendingly bad code produced, we hope to subsidize a thousand lines of quality open source code."

Does that mean for every $10k you get from code offsets only $1k goes towards open source?

Please tell me that is not so, otherwise you are basically clearing peoples bad code guilt in exchanges for your own personal profit!

Jon C on November 19, 2009 6:46 AM

a hef="http://knowyourmeme.com/memes/i-did-it-for-the-lulz"

Did you hef for the lulz? :O

Practicality on November 19, 2009 6:56 AM

Nice riff on the whole "carbon credits" BS as well :-)

Mike Kingscott on November 19, 2009 6:57 AM

@Jon C: I'm pretty sure the 1:10 metric means that they consider good code to cost a lot more to produce than bad code :)

Mikkel Høgh on November 19, 2009 6:58 AM

Your ambition is noble, but your website screams "1997". For your own credibility - get a professional designer.

Bartek on November 19, 2009 6:58 AM

Re: Matt B

Or maybe it's a way to re-kindle thedailyWTF's spluttering fire. I used to read it alot... Now I check it about once every month and its filled with classic (AKA: old) posts and/or total crap.

This is a sure fire way that they can get others "bad" code for free... make personal gain from advertisement's and now sales whilst keeping the WTF train rolling.

Boo

Pablo on November 19, 2009 7:00 AM

I meant of course the Code Offset website, Jeff's site screams "minimalistic stylishness" ;)

Bartek on November 19, 2009 7:00 AM

I enjoy the "emission" of bad code.

Practicality on November 19, 2009 7:00 AM

Least I could do ?

http://leasticoulddo.com/

Monkios on November 19, 2009 7:08 AM

Yeah, I'll get right on that... Right after I finish buying these indulgences for Purgatory.

Dubs on November 19, 2009 7:16 AM

Abolsutely ridiculous.

Anonymous on November 19, 2009 7:20 AM

Long time reader, first time poster...

Oh please... you have become too much like Joel... thinking that every software developer out there is making a fortune and can waste their money on this crap.

Anonymous on November 19, 2009 7:29 AM

I must say I wasn't impressed until I saw the THE JON SKEET is a chair member of the organizations board. You should of mentioned that earlier!

Thats all the advertisement you need !

Robert on November 19, 2009 7:37 AM

Jeff,

I know you're not really from the business world, but it is where most programmers reside. In listing the possibilities to overcome bad code I think you are missing one essential item that is as important as the skill and dedication of a programmer.

I'm talking about resources. For example, a project with so much time pressure that developers are forced to cut corners. Or, a business hiring developers so junior/cheap that it is impossible to get any quality. Or, a business who saves on proper hardware and software, frustrating the productivity of the developer.

Stupid business. Yes. But it's business, and it's how it works for a lot of us. My point: poor code quality cannot be directly related to poor developers, that would be a gross simplification of the truth.

Ferdy on November 19, 2009 7:38 AM

Brilliant! I'm still laughing. I don't know about jQuery or Postgres but Apache projects aren't necessarily leading the charge against bad code. In fact, I've seen significant quantities of pollution bellowing from the smoke stacks over there on occasion.

What we need a is foundation that works on existing open source projects with no other purpose than to improve bad code.

And after that we need a new development methodology with a cool name and a requirement incorporate code offset billing into code reviews. Every time "WTF" is heard in a code review, the developer gets charged an offset credit! The developer still needs to fix the bad code from the review, the offset is an acknowledgment of the bad code he or she will be pumping into the universe that won't be reviewed.

Just like cashiers who come up short, your bad code offsets get deducted from your paycheck.

In my view they should be tax deductible. This gets better and better!

Mocky on November 19, 2009 7:43 AM

This is hilarious...it's like you cross-bred Indulgences with Carbon offsets. And in truth, the absolute LEAST you could do, is nothing. Which almost everyone will do. But I'm hooked, I'll buy a few as gifts for my colleagues. Fun idea.

Dave Rodenbaugh on November 19, 2009 7:44 AM

Basically you want to create incentives for all the lousy programmers to code-golf their bugs into the smallest number of lines possible. Won't the lousy programmers spend all their time reducing offset costs rather than producing more . . .

Hmm . . .

chernevik on November 19, 2009 7:48 AM

I may be over analyzing this (what, me?) but I see a major inconsistency here with the same concept of carbon offsets.

People who buy carbon offsets usually do so because they are either unwilling or unable to reduce their carbon emissions any further through direct means. (So far so good). But the reason the carbon offset concept works is that most times is that operating in a way which ememits extra CO2 is usually CHEAPER. Thus, the extra money can be payed to help motivate/restrict others from doing the same.

The bad code parallel doesn't hold up as far as I can see. This is because, as we all know, writing bad code is MORE EXPENSIVE. If you write lots of bad code, you're going to need that extra money down the road to fix or just maintain your own mess, which you might otherwise send to a worthy cause such as bad code offsets.

Mark Renouf on November 19, 2009 7:50 AM

Of course I might be missing the point entirely and should just see this as a clever wait to spin a fundraising effort for worthy open source projects. :-)

Mark Renouf on November 19, 2009 7:54 AM

The more I think about this the more I am convinced that donating the money to OS projects is the wrong way to go. Instead the money should go to paying bad developers to stop writing code.

As in, "Here's your $300 in code credits, Jeff, go home and don't write any code at all today."

Mocky on November 19, 2009 7:58 AM

do they ship to italy?

aaawww on November 19, 2009 7:58 AM

So, how many offsets are required to cover Duct Tape?

bj on November 19, 2009 8:19 AM

You've got the trade part down, but how are you going to put a cap on bad code? Obviously a bad code tax would be a more efficient and market-driven approach to solving the problem. Maybe the Business Software Alliance could help with enforcement.

Brian Deterling on November 19, 2009 8:33 AM

I saw this on worsethanfailure.com yesterday and immediately sent to my boss in hopes getting a bunch of offsets. So far doesn't seem likely... Great idea however.

Patrick on November 19, 2009 8:41 AM

Unlike carbon dioxide emitted into the atmosphere, bad lines of code are not equivalent. I don't particularly care if the implementation of some function has six lines of funny business. But if the method signature is horrendous, that's a big problem.

Or are you suggesting that the person responsible for the method signature be charged for all the bad code that results from its use? How much does Bell Labs owe for bugs caused by strcpy?

Trevor Stone on November 19, 2009 8:43 AM

Maybe I'm just a dunce, but I don't understand this at all.

You're assuming that

A) I write bad code and know about it
B) I can quantify how many lines of bad code I write
c) I'll choose not to fix those lines, and instead donate money to your open source project.

If I notice that I have 1,10, 100 or even 1000 lines of bad code, wouldn't I fix them? Isn't that my job? I can't imagine telling my boss that my code sucks, but don't worry, I donated 100 bucks to an open source project.

In the parlance of offsets, why don't we take the money we'd spend planting trees and just figure out how to produce cheap clean power?

Jonathan Beerhalter on November 19, 2009 8:45 AM

This appeared on The Daily WTF yesterday.

Kenneth on November 19, 2009 8:54 AM

"It is, quite literally, the least you could do."

No, lierally the least I could do is nothing. Which seems about right.

Anon on November 19, 2009 8:56 AM

"We foresee a time when bad coding practices and their rotten fruits have been eliminated from this earth and its server farms thereby heralding a new age of software brilliance and efficacy."

Uhmm, ok. If that makes you happy, I guess.

When you take away the comical facade of the offsets, you basically just have a marketing campaign to donate money to a foundation / brotherhood / gaggle of programmers, most of whom dont *need* the money.

Just imagine if every dollar spent on "bad code offsets" went to an actual good cause, like combating poverty in our inner cities, or helping to find a cure to diseases such as Parkinsons, or providing assistance to adults and children born with disabilities that make the standard of living we take for granted difficult for them to achieve Or even if you feel these are too "lefty" for you, support a religious organization doing charitable works.

Peter on November 19, 2009 8:56 AM

oh god, people have very non-existing senses of humour

Anonymous on November 19, 2009 9:12 AM

If you've money to fritter on stuff like this, please consider the alternative of donating it to one of the many worthy charities out there.

bad code < starving humans

Galwegian on November 19, 2009 9:14 AM

Computers are the source of many problems in the world, just take the financial meltdown as an example... All of their hedge fund bets which were made using computer modeles; failed.

Of course it was based on bad real estate deals but who cares? We have our nice little probability equations modeled into our calcualtion as to when and not when to bet...

Give me a break, is it bad code or bad ideas?

Mac on November 19, 2009 9:21 AM

Nobody is saying you should spend all your disposable income supporting open source projects. If you would rather support a charity or other "good causes" nobody is stopping you. In fact, do it; there are lots of good organizations that could use the help. But, I don't think most people would have a problem with donating a few dollars to a software project that has helped you and saved you time and money.

I've donated to a few OSS projects before, but that doesn't mean I can't support other good causes too.

Matthew Crumley on November 19, 2009 9:43 AM

Unbelievably remedial...

But on a side note, the quality of applications has suffered in part due to the complexity and instability of the tools.

Steve on November 19, 2009 10:09 AM

"Computers are the source of many problems in the world, just take the financial meltdown as an example... All of their hedge fund bets which were made using computer modeles; failed."

Please don't spread this misinformation, the meltdown was due to widely known intrinsic flaws of capitalism.

Chris on November 19, 2009 10:17 AM

nm it was sarcasm, disregard above

Chris on November 19, 2009 10:18 AM

But what about the fact that jQuery itself is bad code? Infinite loop!

Greg H on November 19, 2009 10:28 AM

For those of you on a tight budget, that's ok--you can still do your part. Stop writing bad code!

;-)

Fonix on November 19, 2009 10:46 AM

Umm, I would be mildly surprised if any money really changes hands here (though there is no underestimating the ....)

What is really scary is that this system has already been deployed for years on commercial projects, with billions of dollars of everyone's real money in the pot. It's called Quality Credits, a.k.a. QC. Pretend to save money by faster coding, and patch it up afterwards with extra software testing and fixing.

Tom Harris on November 19, 2009 11:05 AM

It might be American funny. It might even be German funny. But it's not really funny.

(Pause while you refresh your notion of "funny" by watching a sitcom. I recommend anything by the BBC post 2001 or so.)

It's not Yiddish funny (which I think is crucial) and it's not Pirahã/Hi'aiti'ihi' funny. One, two, where did we start from again?

More importantly, it's irrelevant. You swap carbon emission permits as a fiat currency (true: it's broken). You don't swap broken code. You don't swap broken code paradigms (insert language or methodology here). You don't swap idiot co-workers, and even more importantly, you have no way of swapping the 80% of idiots who coded before you.

None whatsoever. I'd pay big bucks for that.

Like they say in Chicago, "If you're so smart, why aren't you rich?"

Two words: Impedance Mismatch.

Now, if you can figure out how to trade on that ... then you've got a winner.

Anonymous on November 19, 2009 11:12 AM

"When you take away the comical facade of the offsets, you basically just have a marketing campaign to donate money to a foundation / brotherhood / gaggle of programmers..."

Someone else noticed too.

Steve-O on November 19, 2009 11:17 AM

This money would probably be much more appreciated by smaller developers/development teams.

HJennerway on November 19, 2009 11:35 AM

Sure, Jeff, you first. Do you need the number of a good bankruptcy attorney while you're at it?

HamSammich on November 19, 2009 12:10 PM

Relativity: without bad code there can be no good code.

Neil Fenwick on November 19, 2009 12:28 PM

I can't decide whether this is more "lame" or more "dodgy."

Aside from the fact that the joke is so weak, where does the money actually go, and in what proportions? What's the benefit of organizing this as a separate institution when all it's doing is printing up fancy-ass certificates? Wouldn't it make more sense for the jQuery, Postgres, ASF, etc folks to collaborate and print their own certificates?

Is this "Alliance" a corporation? A sole propietorship or partnership? A charity? Does it have a street address? A phone number? Any kind of regulatory oversight or transparency at all?

No? Didn't think so. I guess you can put me down for dodgy and lame in equal parts. Nice work if you can get it.

evil twin on November 19, 2009 1:07 PM

what a con

what's next. going to start your own religion?

Punky on November 19, 2009 1:16 PM

wait...this is for real? good luck with that, not all programmers have money to burn like you big city slickers and your 100k+ salaries.

Joe Beam on November 19, 2009 1:17 PM

I'm with Practicality, you need to buy another offset for the bad html:
hef="http://knowyourmeme.com/memes/i-did-it-for-the-lulz"
;-)

Lloyd Budd on November 19, 2009 1:55 PM

We're still a way off from April 1st? I'd rather purchase some other offsets for the increase in hot air being produced here lately.

Ben Garreros on November 19, 2009 2:27 PM

Would you please buy my Bad Blog Post Offset today?

Only a dollar per line of a Bad Blog Post.

Hurry up - offer valid only while stocks last!

Eugene on November 19, 2009 3:13 PM

you guys are getting a little to silly for your own good, come on get down off your high horse soon

paul on November 19, 2009 3:37 PM

I won't support projects like that because really who are you to decide which open source projects deserve the funding and which do not.

No thanks I think my money is better spent when I directly donate it to a project to my liking.

Onoez on November 19, 2009 3:39 PM

Why the fascination with bad code Jeff? I know plenty of developers who make it very difficult to find bad code in their work products.

Then again, these people know how to write code without the IDE constantly compiling, and know how to deal with case-sensitive parsers...

tim on November 19, 2009 3:46 PM

What about bad design, bad architecture? which could lead to a total failure product even with perfect codes. Should buy bad design offset first!

HN on November 19, 2009 4:33 PM

Ridiculous idea. Seriously. How obtuse can you get?

Chris V on November 19, 2009 6:14 PM

I write bad code. Everyday.

And I do it because of a few things:

- I work for a company. Deadlines are usually pressing and we cannot afford wasting time with good code that will invariably result in the same thing as bad code; i.e. an application

- Programming languages (all programming languages) encourage bad code. They practically beg you to write bad code. From the "shot your foot" languages like C or C++, to "save coders from themselves" languages like C# or Java, all languages make sure of one thing: If you write bad code, you will complete your project faster. Writing good code is only an afterthought.

- Users appreciate bad code better than they do good code. A patch is an highly anticipated event. A reason for celebration. Conversely, an application without patches lives a dull life in the noisy marketing land.

- Operating systems turn good code into bad code. They don't actually do it, of course. What they do is give the impression on the user your code sucks because your application fails. And it can fail because the operating sucks, or the operating system doesn't suck but you think it does because in fact what made your application fail was some device driver made by someone else. See the snowball?

...

So why on earth would I ever want to write good code? My bad code is better than any good code. I'm done with it faster, I'm respecting the programming language tenets, I get more market visibility with my continuous presence and I don't waste my time on things that some operating system, processor, driver or combination thereof can invariably ruin.

So you know where you can shove your certificates...

Mario on November 19, 2009 7:25 PM

Wow, I lost a lot of respect for Jason Cohen and Eric Sink - Guys, what the hell are you thinking?

I thought this was a joke, but then I actually clicked on the link. Unreal. Aren't there better ways to get press or promote some open source projects?

Time to come back down to reality...

It is also so ironic that so many people who make a fortune in the software business decide that they want software to be free. (now that they are all set for life) I wonder why that is...

tim on November 19, 2009 8:13 PM

"So why on earth would I ever want to write good code?"

Well it might seem strange but some developers actually became developers because they love software development and not just because when you grow up you have to find a job.

burpy on November 19, 2009 10:48 PM

The ASF is fighting bad code? How? By taking over subversion? Only if you don't count 'brokenly designed' as bad code.

No way I'm going there.

Andreas Krey on November 19, 2009 11:16 PM

Sorry, forgot to mention ant. Really, no way.

Andreas Krey on November 19, 2009 11:18 PM

You know, the Catholic Church once did this.
They got some really nice churches and cathedrals out of it.

boersnoes on November 20, 2009 12:15 AM

another lame self promotion

offler on November 20, 2009 12:25 AM

Why should I do this rather than just giving money to those open source projects?

It seems that you're not achieving much apart from adding a layer of indirection and uncertainty over where the money goes...

Martin McNulty on November 20, 2009 1:26 AM

Love the idea!
Although some "developers" would need something more like a blank cheque, hehe.
I hope all these efforts will help to dilute bad smells in Internet.

Berny Cantos on November 20, 2009 1:30 AM

I want to know how many ppl will buy these..
So if people start buy these offsets..does it means we have solution to fix bad code..
I dont think so...Use the brain to fix bad code..not money..

Orange on November 20, 2009 1:32 AM

What about offering "Theft for my own good" offsets for politicians? Or "Merit taken for someone else's actions" offsets for management? That's totally not fair, also because we're doing so much less damage than those guys...

But that's the internetz anyways, so nice joke :-) and that's a fun way to help OS projects... because you're not making any profit out of this, are you?

Andrea on November 20, 2009 2:24 AM

Jeff...you may write bad code but not me. My code is perfect, now stick that one in your butt :)

whocares on November 20, 2009 3:19 AM

To summarize, you want those of us who earn a living writing code to subsidise those who give their work away for free, jeopardizing our own jobs in the process.

What I don’t get is why if these open source projects are so much better, why don’t they finance themselves by selling on the open market?

SW on November 20, 2009 4:47 AM

Jeez... what a naive idea! Like someone would just give away 5k in return for a jpeg file and the hope that it will be used to improve the quality of open source code. Give me a break.
Spend the money on Visual Studio 2008 and few re factoring tools. Much better investment if you ask me.

Bobby on November 20, 2009 5:17 AM

I have come to the realization that there is obvious bad code but then there is code that is good based on usage. By that I mean, sometimes reducing 5 lines of code down to a small segment of code doing the same thing more efficiently isn’t always a good thing, unless you are absolutely positively sure that chunk of code will never need to do anything else but what it does today and there is no need to edit it.

Sure it’s a fun little exercise for the programmer but it doesn’t always lead to productivity in the work place especially when you have several people maintaining that code. And the code that was written yesterday based on a specific need has to implement a few more needs today.

There is nothing worse they wasting time deciphering someone else’s code and then retrofitting it’s narrow because they were striving for the less is more golden chalice. This can be argued on both sides but I find simple basic easy to read code is often the better way to go, in applications that get revised often by multiple people, each with their own style of coding.

I guess what I’m saying is, sometimes beautiful code is in the eye of the beholder.

-dan on November 20, 2009 6:18 AM

I, a dev behind the code offsets site, am utterly bedazzled by the comments I am reading here... let me list a few responses to some of these typical ones:

"Why wouldn't I just donate to the projects directly?"
- Nothing wrong with that at all as they're getting the same amount of money either way. 100% of the proceeds (read "the sale") go to the project you choose. At least now you have something amusing to hand out in your next code review, tack to your cubicle, or hand to the guy who breaks the build.

"I don't make enough money, these are too expensive, no one would buy $1000 worth, etc."
- The higher amounts are for amusement only, no one is expected to actually purchase them. If you cannot afford $1.50 for 3 of these things, I don't even know how to respond to that. I'm sure you've gotten at least $1.50 in value out of jQuery, for example.

"I would rather donate to project X..."
- Please do so, that's all we're encouraging here. If you want some offsets for your trouble, use the contact form on the site and suggest the project you'd like to add to our list.

"Aren't there better ways to promote these projects?"
- There may be different ways, but "better" is a subjective term. If I were on the receiving end of free money, I wouldn't be too upset about it. At this point, it's given the projects at least some free press.

"Feed the homeless instead of buying these, if only the money went to help poor people in the inner city, etc."
- Who says I can't do both? There are plenty of charities you can donate to if this is what you desire.

In the end, the complete pompousness displayed in the verbiage of the site is mere satire. Yes, we're aware that it doesn't work exactly like carbon offsets - that is irrelevant. The site is meant to be a fun and joking way to increase awareness for these types of projects.

John Rasch on November 20, 2009 9:47 AM

@tim:
"Why the fascination with bad code Jeff?"

Since you've seem to have forgotten, the name is this blog is "Coding Horror."

R. Bemrose on November 20, 2009 10:00 AM

It is a tradition on the internet that the Ministry of Truth and the Ministry of Love are run by different people.
So, here is yours truly with a complaint.

How do you actually get a competent, but civilised, non-arrogant, ordinary, non-insider, non-son-of-a-bitch to write code with?

I've emailed several programmers, small and big, leaders in open source, dealers in closed source, peddlers and meddlers in politics and hacking, friends, small folk with hearts, big folks with egos and without hearts, and even tried speaking to cute animals.

But no one seems to be interested in doing a project with me.
No, this is not your regular sissy complaint.
No, I am not a luser.
If anything, if you are feeling great objection to what you're reading, you're the PEBKAC, not me.
My only fault was I thought flame wars are about principles.
I found out much later they are about arrogant, if peaceful, b_stards quarrelling away like the soldiers of the Army of Anubis.

So, where do you get someone *ordinary* to write an *ordinary* program to make *ordinary* money?
Yeah, they always keep saying that a man is known by the company he keeps. I am blown by the company I've kept. Blown apart, in fact.
(phew! big load off my chest!)

Yeah, so where do you get plain ordinary simple straight programmers, the POJOs that actually get code written and you know, make customers happy and go to the next project, dont try to *ahem* save the world, and Greater Things (TM).

You like to post on the same topics over and over.
Please re-post where decent normal people coordinate over programs.

And where you are not forced to work under highly illustrious mentors who don't give a shit what you think about anything.

Really, when all advertised methods don't work over 3 years, you wonder what the whole thing is about? Truman show or something?

Yeah, I know you have my IP address.

hippocratix on November 20, 2009 12:30 PM

The real money will be made in brain cell offsets.

orange

orange orange

damn

Davide on November 20, 2009 1:53 PM

@John Rasch I wouldn't know jQuery if it fell on my foot (out of a webpage, I suppose), and ant & svn definitely cost me more than $1.50 each in frustration. I do pretty plainly refuse to use them both together on a single module/project.

@SW Because they are social objects, not commercial ones. The moment you start selling, the support goes away.

Andreas Krey on November 20, 2009 2:00 PM

""It is, quite literally, the least you could do."

No, lierally the least I could do is nothing. Which seems about right."

hah... can't stop laughing. xD

Arnis L. on November 21, 2009 10:23 AM

Wow.

I mean, wow.

Perhaps I don't get the joke?

Clearly Jeff is no longer a programmer, but has joined the ranks of internet hucksters. I hope his advertisers read this blog to determine if they're getting their money's worth.

Rick on November 21, 2009 10:50 AM

Ditto to Rick's sentiments.

Jeff, it's time you got a real job.

Anonymous on November 21, 2009 4:25 PM

It's funny that you mention jQuery as a partner against bad code, you obviously haven't seen this line from their UI toolkit:

if(!((l-d < x1 && x1 < r+d && t-d < y1 && y1 < b+d) || (l-d < x1 && x1 < r+d && t-d < y2 && y2 < b+d) || (l-d < x2 && x2 < r+d && t-d < y1 && y1 < b+d) || (l-d < x2 && x2 < r+d && t-d < y2 && y2 < b+d))) {

It's from near the end of http://jquery-ui.googlecode.com/svn/tags/1.7.2/ui/ui.draggable.js

Micheil on November 21, 2009 9:58 PM

Micheil, why do you think they need the money? :)

Berserk on November 22, 2009 2:58 AM

Just wondering. Why are you using a set containing the empty set as logo?

Giel van Schijndel on November 22, 2009 6:56 AM

@Micheil: This snippet seems to be a minified version of the code. I am pretty sure that it wasn't coded like that.

Manu on November 22, 2009 10:53 AM

You know, I really thought this was funny when I read the title. I'm a little disappointed that there was some truth to it. Although I agree in principle about donating to open source projects, why wouldn't I just donate directly to a project I cared about? Or even more useful, offer a cash prize for the programmer that fixes a bug or adds a feature I want? What is being added to the process by adding a layer?

Sorry, but this just doesn't seem like the quality Jeff Atwood I've followed for years.

John on November 22, 2009 2:36 PM

Shouldn't they be selling offsets in packages of powers of two? Why sell 100 offsets when they could be selling 128? I won't pay for 1000, but I might be convinced to buy 1024.

Eric on November 22, 2009 3:00 PM

Are you sure the money goes to open source projects? Or does it go to paying the crack dealer, cos you guys seem to be smoking some serious stuff recently.

Do the offsets work against your new found heinous sin of extra spaces at the end of lines?

Anonymous on November 22, 2009 3:04 PM

>> the money you spend on Bad Code Offsets really does offset bad code!

No it doesn't. Because I'm not a retard and I don't spend my money on "offsets" of any kind.

DMB on November 22, 2009 5:14 PM

Maybe you could donate something to me so I don't write any bad code. Like $ 10000 in a monthly basis would suffice.

Badcoder on November 23, 2009 3:31 AM

It seems that you have become like these rich upper-class women who has no time to do something useful, instead they do some sort of charitys to fill up their time and pretend they do something useful.
Heh, kind of amusing!! You should go back to your code-monkey mindstate!!!

Badcoder on November 23, 2009 3:36 AM

If this stupid system was ever to take hold I'd rather the money is donated to schemes that would better train coders to be developers.

But first, you must be able to define what is 'quality' code. Even if you could, measuring by the line is silly. Some lines of code are more critical than others.

Jackie on November 23, 2009 4:00 AM

Irony?

---source---
Yes, this is partly tongue in cheek, but we aren't just doing it for the lulz.
---/source---

Gimme an R!

Joe on November 23, 2009 5:07 AM

Talking about open source, do you still endorse Paint.NET now that it has officially gone closed source: http://blog.getpaint.net/2009/11/06/a-new-license-for-paintnet-v35/ ?

Fred on November 23, 2009 7:14 AM

This is prohibitely expensive even for my "small" hobby projects dude.

MaxDZ8 on November 23, 2009 9:51 AM

I've seen too many people who are blatantly incompetent at their primary job function (all types, not just programming) and clearly don't care to think that this would have a chance. A vast majority of people who read this blog are not in the group of lazy incompetent surfers, and a vast majority of lazy incompetent surfers couldn't be bothered to read anything as long as this blog.

Foozinator on November 23, 2009 10:36 AM

How many lines of code in SUN Java?

JustKickstart on November 23, 2009 10:43 AM

Reminds me of a April fools website...

Derek

Anonymous on November 23, 2009 1:09 PM

Reminds me of an April Fools Day joke website...

Derek

Derek on November 23, 2009 1:10 PM

Hilarious. Best idea ever to get geeks sponsor open source.

zendar on November 23, 2009 3:48 PM

Lulz, memes are like dead jokes, except funnier because everyone repeats them all the time.

Epic Rage Guy on November 23, 2009 7:05 PM

Thank you for your blog, I always get some helpful insights from it.

geld lenen on November 25, 2009 4:42 AM

Anything to make a buck,...

gunther on November 25, 2009 6:23 AM

s/envision/envisage/
Repeat for all the writing from all the business classes.

And you may want to read the day-care example from Freakonomics (read online free, here: http://www.fictionwise.com/ebooks/b56592/Freakonomics-Revised-and-Expanded-Edition/Steven-D-Levitt/?si=0) before you start letting people pay money for doing something they shouldn't :)

Rob on November 25, 2009 7:49 AM

Your next step in ruining our industry Jeff (IT in case you forgot). I can't wait to your empire collapses.

anonymous on November 25, 2009 9:46 AM

Could be an amusing secret santa gift...:-)

Code Buddy on November 26, 2009 10:01 AM

I'm sorry to say this, but I think codinghorror.com just jumped the shark for me.

It was an interesting read, I wish you luck in your future writing endeavours. Time to move onto other blog-shaped pastures.

Rob on November 26, 2009 9:49 PM

Shame on you Jeff, Shame

Richard on November 27, 2009 10:52 AM

heh again no posts and last five posts were not so fun anymore as few years ago

heh okay I see SO.com takes all the energy. Although I miss quality content.

second on November 27, 2009 1:52 PM

I don't think you know what "for teh lulz" means...

nst on November 27, 2009 2:54 PM

Speak for yourself, Jeff. Not everybody writes bad code. Everybody makes mistakes and sometimes bugs find their way into our software regardless of the quality of the code. To claim that we all write bad code seems more like you justifying bad code you've written by placing the blame on all of us.

Dave on November 27, 2009 8:22 PM

nst> "Everybody makes mistakes and sometimes bugs find their way into our software regardless of the quality of the code."

That's what bad code is; code that contains mistakes and bugs. Do you have a different definition?

Vince on November 29, 2009 9:06 AM

I don't believe in quality of open source, especially not if the site of opensource server developers was hacked multiple times.....

sunfire on November 29, 2009 9:20 AM

the captcha "buy viagra" should be part of your "anti ad" advertising site

sunfire on November 29, 2009 9:24 AM

"That's what bad code is; code that contains mistakes and bugs. Do you have a different definition?"

Bad code is code written without regard for safety, clarity, accuracy or efficacy. This is generally due to incompetence but it can also be the result of carelessness or simply not caring about quality. Even code written by the most competent programmer in the world may show bugs due to unforseeable consequences. Software can be extremely complicated. All test cases cannot be foreseen ahead of time.

If you want to call this "bad code" then that's fine. How do we distinguish between bad code that is just awfully written and bad code that is due to a rare mistake in logic or unforseeable interactions between software elements (including the user)? Are these the same thing? I don't think so. It's the difference between a virtuoso musician playing the wrong note in rare cases and a beginning musician playing the wrong note due to inexperience or incompetence.

Dave on November 29, 2009 9:29 PM

Selling absolution? Didn't the catholic church try that at some point (think back)? It gave me the same lulz.

agit8d on November 29, 2009 10:25 PM

I would be more enthused if the code I'd be offsetting would be public domain. Not GPL. Not BSD. Public domain. Let's help *everyone*.

Kenny on November 30, 2009 7:07 AM

Ah, but who will be your Martin Luther?

FWHagen of orange on November 30, 2009 7:44 AM

This is interesting, what about people who write bad code for other open source projects? I will check it out though.

Helen Neely on November 30, 2009 11:07 AM

It amazes me that there are that many people who read this blog who have absolutely NO sense of humor. Come on people!

Zann Anderson on November 30, 2009 2:58 PM

I think..the main point is missing and you are concentrating on funny part of it.

John on December 1, 2009 2:16 AM

I think you are concentrating on funny part instead of real thing about bad coding

John Rice on December 1, 2009 2:19 AM

Speak for yourself, Jeff. Not everybody writes bad code. Everybody makes mistakes and sometimes bugs find their way into our software regardless of the quality of the code.

no true

Раскрутка сайтов on December 1, 2009 5:31 AM

yes indeed, I liked it a great subject too great a share, thanks
Dans Okulu

Dans Kursu on December 2, 2009 2:56 AM

The frequency and value of your posts are declining.

I once urged coworkers to read this blog. Today, when talking about the fold, I mentioned that Coding Horror recently had an article about the fold. A coworker said that he has not looked at Coding Horror in a while. My response was, "Don't bother. That site has really gone downhill."

I was surprised at how honest that statement felt.

Kevin on December 2, 2009 8:58 AM

No. I don't want to give any money to those organizations.

Mal on December 2, 2009 10:49 AM

Thanks a lot.Good idea...

hikayeler on December 2, 2009 12:55 PM

Actually, I don't think tool is the reason of bad code.

It blongs to coder self.

Mad Charlie on December 2, 2009 10:12 PM

Good informaton!

Anonymous on December 2, 2009 11:24 PM

Could be a mess at all. If you write lots of bad code, you're going to need that extra money down the road to fix or just maintain your own mess, which you might otherwise send to a worthy cause such as bad code offsets.

jammer on December 3, 2009 12:10 AM

If you don't mind me saying that but I don't think people would like to donate any amount for this type of organisation...

Casus Telefon on December 3, 2009 12:18 AM

I tried to run this past my client but they turned it down... :-(

Steve on December 3, 2009 11:43 AM

Same here, I would not donate.

Schnaeppchen on December 3, 2009 3:02 PM

I would not donate for that.

Schnaeppchen on December 3, 2009 3:04 PM

This isn't new. The following is from 1997 or earlier:

"We should sell 'bloat credits', the way the government sells
pollution credits. Everybody's assigned a certain amount of
bloat, and if they go over, they have to purchase bloat credits
from some other group that's been more careful."
-- Bent Hagemark

Andrew Grimm on December 3, 2009 7:28 PM

There's actually a very easy way to avoid writing bad code which I've seen very effectively practised at my workplace. The solution is to write no code at all, and either let other people do all the work (who then also have to do all the fixing) or let the end users scream in anguish.

Not only do you save money on buying bad code offsets, you also save time which you can spend on surfing the web. What more can one ask for?

SL on December 3, 2009 7:34 PM

I can't belive that you could say this ''A coworker said that he has not looked at Coding Horror in a while. My response was, "Don't bother. That site has really gone downhill." ''

verici tespit cihazı on December 4, 2009 2:20 AM

This is another hideous project by Jeff Atwood. Trying to make more money cause he does not want to find a real job. Jeff stop sitting on your a** and find a job and stop begging for money.

Jon on December 7, 2009 6:35 AM

"Yes, this is partly tongue in cheek...," is such a pathetic attempt to disguise how this is a despicable idea.

My interpretation is, "Yes, I realize how obnoxious and worthless this project is and how closely it resembles an internet scam. However, I am not entirely serious. If you are credulous enough to believe in this, then yes, I am serious. If you are offended by this idea, then default back to the tongue in cheek line (psst, it's my safety line)."

Kevin on December 7, 2009 8:33 AM

Im really starting to think Jeff is a f******* scammer with all these little sites he's creating. I love this one:

"Patron Members' financial contributions enable The Alliance to develop and support not-for-profit initiatives like Bad Code Offsets. An annual membership is currently $50.00; as a thank-you for contributing, we will mail you a black T-shirt with our logo."

For f**** sake, a 1 dollar hanes t-shirt is being sold by Jeff Atwood for $50. What a nut case. Then I read about the members involved and even Jon Skeet is in. What gives, you guys go find a damn job and stop begging for money.

Weasles.

Joe on December 7, 2009 7:26 PM

Right next to atwood in the dictionary in big bold letters is the word PONDSCUM

Joe on December 7, 2009 7:29 PM






(no HTML)


Verification (needed to reduce spam):


Content (c) 2009 Jeff Atwood. Logo image used with permission of the author. (c) 1993 Steven C. McConnell. All Rights Reserved.