Attention Internet Explorer users: This site won't look like ass if you use a better browser. My site, my rules.

“Show-stoppers”

Lately a large number of questions posted to django-users have included phrases like “this is a show-stopper” or “this is critical”. I think it’s worth my time to point out that this is a lousy method of getting developers to do what you want. It’s the online equivalent of threatening to take your ball and go home, and is about as effective.

I understand the impulse perfectly: there’s the fear that we won’t take you seriously if you don’t tell us just how important this is.

Again, though, it doesn’t work that way.

Remember: there are over two thousand people on django-users, and I imagine that’s only a fraction of the people actually using Django in the real world. Every single one of those users them has incredibly important, show-stopping, money-losing, business-ending bugs that they need fixed yesterday.

Unfortunately, Django is an all-volunteer project. There’s a good number of dedicated smart people who constantly work on patches, and a smaller group of people with commit access, but all of them have full-time jobs, other hobbies, families, and such. So we all do what any developer has to do: we prioritize, often badly.

It isn’t a matter of only fixing the important problems — they’re all important, otherwise people wouldn’t be reporting them! Every time I read a bug report, I automatically infer its importance. Telling me that something is “critical” or “a show-stopper” is simply redundant and repetitive, and thus it gets annoying after a while.

So how should I report bugs and request features?

Luckily, there’s some great writing out there on the Internets about how to effectively ask questions and report bugs.

I’ve linked some of it below, but really it all comes down to one simple rule: just be straightforward, and don’t try to manipulate us. Tell us what you want, maybe something about why you want it, and above all just be polite.

So, here’s that further reading I promised:

  • Django’s own documentation has a guide to contributing to Django which includes sections how how to report bugs, submit patches, and on how the community operates. It’s pretty much required reading if you want to help with Django in any way.

  • The classic in this space is How to Ask Questions The Smart Way, but it’s actually rather condescending and arrogant so I’m not going to link to it.

    Instead, check out Mike Ash’s Getting Answers — the same message, but in a much better medium (as it were).

  • Brent Simmons, the developer behind NetNewsWire, wrote at length about this topic. A bit of it is NNW-specific, but the vast majority really applies to any interaction with developers.

Comments

Joe

July 20th, 2006

1:12 p.m.

Hi Jacob,

Since I was one who said it (the multi-column keys issue) "could be a show stopper" I'd like to point out it wasn't intended as a threat of any kind. I have just joined django-users so I apologize for any perceived break in its etiquette.

The trouble is that I had started looking at Django over a month ago and I could swear that I saw a comment by you or Adrian (or Simon?) that something was being done in the area of multi-keys. Yesterday, as I returned to djangoproject.com after working on other things, all I could find was the FAQ answer, which matter-of-factly says: this is the way things are and it's because admin requires it. I'm paraphrasing of course but the FAQ answer doesn't offer a hint of what may be happening under the covers or what may be under consideration for the future. I searched django-users and only found two posts, one an inquiry and another that either quoted the FAQ answer or was the basis for it. The lack of response to my first post also added to my frustration by the time I made the "show stopper" comment.

I was visiting your blog to see if I could find that mysterious comment that I seem to have imagined. If you could set me straight, either here or at django-users, I'd really appreciate it.

Jacob

July 20th, 2006

1:52 p.m.

Hey, Joe --

No apology is necessary; this certainly wasn't targetted at you, or at anybody else. I'd just noticed an uptick in these types of comments, and I wanted to quash it before someone (probably me) got mad and did something stupid :)

As for the composite primary key thing: yes, I may very well have said that we're working on it. At some point there was someone who said he'd work on a patch, but it never materialized.

I reopened ticket 373 (http://code.djangoproject.com/ticket/373) as a place for people who want to work on this issue to congragate. I'd love to see someone come up with a patch. Said patch should be *much* easier now that M-R has hit trunk...

Deryck Hodge

July 20th, 2006

9:59 p.m.

Hi, Jacob.

And why is it that the most dramatic emails are the longest? If people really want help and attention, you'd think they would get to the point quickly.

anonymous coward

July 21st, 2006

11:12 a.m.

i would "bump" my tickets all of the time if i knew it would help. it would be nice if trac had a voting system so that peeople could vote for on a ticket. or if there was an official developers day -- which i'm not sure would even matter... because people are putting out the patches, it's the devs that aren't merging them. so, maybe django needs to take on more devs, just dedicated to handling tickets.

Michael Radziej

July 24th, 2006

10:47 a.m.

Jacob wrote:
> At some point there was someone who said
> he'd work on a patch, but it never materialized.

I was the one who said to work on the patch for composite keys. Well ... the reaction I got was along the lines "don't try it, it's a waste of time", and I think Adrian made a statement this just isn't needed.

That's when I decided just to hack around the restrictions for my special case, but the result is simply not fit for distribution.

And, by the way, I have half a dozends patches waiting to be applied for months. Sadly, his doesn't create a strong urge to contribute.

Joe

July 24th, 2006

12:22 p.m.

You missed the episode where the antagonist says "Look, I'll buy your product if you'd only do XYZ feature...".

Okay, so maybe that's more common to shareware development...

Jeremy Walker

July 27th, 2006

10:48 p.m.

Michael wrote "I have half a dozends patches waiting to be applied for months", and similarly my "pet bug" (http://code.djangoproject.com/ticket/1760) has had a working patch attached for a couple months now. By any chance are you and the rest of the awesome people at the core of Django working on a way to resolve this apparent commit bottleneck?

Also, one thing I found lacking on the "Contributing to Django" page was a way to contribute to Django's documentation. It seems like further documentation for Django would be helpful, and with my background/skillset I imagine this is where I could most usefully contribute, but I don't have any idea what's needed/where to begin.

Your 2¢

Comment