unbracketed logo and title

How to Significantly Improve The Chances Your Django Feature Request Will Get Accepted

Rather than spending time deconstructing various anecdotes of Django users making feature proposals and failing to gain any traction I thought it might be worthwhile to point out a recent example of success that we can all learn from.

After seeing Simon Willison in action at a couple of DjangoCon conferences it is easy to conclude that he brings an infectious positive attitude. He communicates well, speaks thoughtfully, brings innovative ideas to the table, and is clearly interested in what others have to say. It is a huge win for the community if he is able to commit some attention to the 1.2 cycle as he is planning.

Why Some Features Are a Better Idea

Putting aside the merits of his proposals (I'm in favor of them), the exciting aspect of this process is what we can observe about how a feature actually goes from inception to reality. There are a number of things we can observe here:

  • The features are intending to enhance existing functionality or provide new functionality without changing current behaviors.
  • The features can be useful to most developers regardless of the type of application they are building.
  • Discussion is being solicited for each feature in a centralized, open manner.

Remembering that the large majority of bits that wind up in Django come from generous volunteer time, it is important to stay focused on what will provide the most value to the platform and it's community over the long run. That list will hopefully be dominated by items that lead to improved security and stability. Those are aspects that every application relies on regardless of it's purpose.

Gathering Support

Ignoring the semantics of what defines "must-have" features, Simon gathers and presents a good modicum of background information and lists out the areas where the community needs to weigh in. He's made it easier for even those who aren't familiar with the particulars of what a feature request may be about to be able to get quick high-level grasp of the implications of the proposals. He believes strongly in them and that is why he is willing to champion them with efforts to organize and research all the potential advantages and disadvantages.

Hearing Simon discussing topics surrounding his ideas with others at DjangoCon showed he's thinking about and discussing these for some time. He already has working code and demos to back up his ideas in a few cases. I think this is all illustrative of how much effort actually goes into getting a new feature into trunk and how it takes a bit of leadership to handle the many facets that go into getting all the bits just right.

Take Away

If you'd like to see changes in the framework ask yourself how you'll be handling the following:

  1. Clear, concise explanations of your idea that will convince the core devs on the technical merits and provide the rest of us with what we'd need to know about it. How will most or all Django developers benefit?
  2. Thorough research of the topic: Examples in other frameworks/languages, whitepapers or articles by respected authors, honest assessment of the tradeoffs, etc.
  3. Leading discussions, gathering input, summarizing concepts and ideas, organizing good ideas into a tangible plan
  4. Doing the dirty work. Writing prototypes, demos, examples. Being a major part if not all of the manpower behind the final implementation.
blog comments powered by Disqus