« Large Problems in Django, Mostly Solved: Documentation | Django Inspect: A generic introspection API for Django models »
UPDATE: There is a new thread about the roles and implementation of a Design Czar up on the Django Developers mailing list. Please contribute there as well, if you have thoughts and ideas.
There has been a recent discussion on the Django Developers mailing list about the role of designers in the Django community. I think that this is an interesting discussion that can come from this, and I would like to explain my thoughts on the issue.
This discussion came up in the context of redesigning the Django Admin, which everyone knows and loves. The UI is growing a bit out-dated, and there was talk of working to clean it up. This then turned into a discussion about how design proposals and improvements aren't taken as seriously as they should be by the community. I think there are a number of reasons that this happens, and I would like to take a look at them. My purpose here is to start a discussion about how to better integrate designers into the community, because they are a vital part of making our world more beautiful and efficient.
The normal process for changes that go into Django is that a proposal is sent to the mailing list. There is a discussion that happens around them, and then if the code is produced, and it works, it gets committed. For design changes, I don't reply to these messages, because I don't have the skills or knowledge to judge the work. I think that a lot of people on these lists are in the same boat.
When someone sends a proposal to the list, and it doesn't get any replies, that feels like rejection. This happens more than it should, but it isn't anyones job to respond to these messages and say "sorry, I'm not qualified to critique your work". This happens with code proposals too, but I think it may happen more with design. This leads to designers forsaking the mailing list, and this problem perpetuates itself, by not drawing designers into the community.
Part of the problem that seems to have come forward is that there is a feeling that design is "special". That it should be treated somehow differently in the process. As we know from history, even with all good intentions, different is never equal. So I think that we should work to fit design into the current scheme of how things work, instead of trying to adopt new ways of dealing with it.
When I look at the current Core Developers of Django, I don't see many people who are designers. As I said above, that fact that very few of the current core developers are well versed in the design realm, really hurts inclusion of design changes. This creates a lot more friction in the process of getting design changes into the code base.
I don't know if this idea is crazy, but should we have the concept of a "core designer". These would be people that the community trusts and knows have good taste, that would be an obvious person to make these design choices. I think that there is a problem when I have a design change for Django, and I really don't know who to talk to. There is an obvious authority (BDFL) for code changes, but I don't know if Adrian and Jacob are really the correct people to making these judgment calls on design?
I realize that this is open source, and "core designers" would be the same as developers, just people who care about the direction of the projects design. However, I think that having more design oriented people in the community in a more direct fashion would make it more obvious that design changes are welcomed and seriously considered.
I don't know how far we need to go down the path of making this explicit. However, most of the documentation about contributing is explicit about "code". This is another of those lines, where I don't know if it makes sense to be explicit about design, having a "design" section in the contributing documentation, or if the implicit knowledge of core designers will make it obvious that we mean design changes there too.
I don't want to talk about the actual design process, because well, I really don't know how it works. I think that once we integrate designers into the community better, the process for design will naturally fall out better.
I would like to point out that Django has some of the best designers of any open source community out there. I am lucky to work with a number of them on a daily basis, and I really think that they make our community special. So thank you guys for sticking with us.
This is a place where I could see Django leading the way in how to integrate design into the open source development process. Let's make a grand experiment, and see how it works out.
If you have thoughts, please join the discussion on Django Developers, so that the correct people hear your thoughts.
Posted at 1:02 p.m. on February 6, 2010
Comments: 7
Tags: core , designers , django
Django Inspect: A generic introspection API for Django models
4 weeks Ago (Comments: 4)
The role of designers in the Django community
1 month Ago (Comments: 7)
Large Problems in Django, Mostly Solved: Documentation
1 month, 1 week Ago (Comments: 5)
2 months Ago (Comments: 0)
Correct way to handle default model fields.
3 months, 3 weeks Ago (Comments: 8)
I may not have gone where I intended to go, but I think I have ended up where I intended to be.
- Douglas Adams


Comments
1 Jeff Croft says...
Good stuff. I like the idea of a "BDFL for design," and if such a position ever actually came open, I'd nominate Wilson Miner (although I'm not sure he'd accept).
I believe design works best when there us a singular vision, rather than design-by-commitee. Wilson's singular vision for the admin is one of the reasons it's stood the test of time pretty well. But, at the same time, the project is open sour e and I think the floor should be open for anyone to propose such a singular vision. To have a sort of "design BDFL" who can then weigh in on those proposals makes a lot of sense to me.
Posted at 8:08 p.m. on February 6, 2010
2 Henrique Carvalho Alves says...
It's awesome that this discussion is taking place, not many FOSS projects pay attention to this.
I would happily contribute to designing the look & feel of Django, working on the CSS, JS interaction, etc. (my daily job is, essentially, product design and UI/UX. I just happen to use Django for it).
Having said that, I don't think the current Django admin is bad, at all. But, it could use some polishes, like making template inheritance/overrides easier for other apps. I like the work Lincoln Loop (http://lincolnloop.com/) did with the Django admin on their CMSes.
Posted at 9:24 p.m. on February 6, 2010
3 Mir Nazim says...
Great Idea.
Just wanted to point out to Drupal Redesign effort here ( http://groups.drupal.org/drupalorg-redesign-plan-drupal-a...). It started as effort to redesign the drupal.org website but Mark Boulton Design is also helping to improve the general user experience of Drupal based sites, mostly admin side functioanlity and the results have been quite good so far(see http://drupal.org/project/admin module).
I think Django can benefit from a similar, if not exactly same design process. Choosing a design leader, as suggested already, is a fantastic idea. Design by committee is a mess & creates problems 90% of times.
Moreover, if admin interface is going to be are going to be redesigned, then in my opinion first stress should be on improving the UX across the whole admin interface.
Some things I think should be kept in mind: - user experiece first, eye candy second - ability to skin admin interface in CSS only - conventions to follow for creating 3rd party extensions to admin interface
Disclaimer: I am not a designer, please don't kill me if I am not making sense :)
Posted at 10:23 p.m. on February 6, 2010
4 bob says...
There isn't really much design in the Django core. Correct me if I'm wrong, but there isn't any actual code in the Django core. contrib.admin is the only part of the django distribution that even contains template/css/javascript code, correct? Even then, the admin is just 5 or so main templates repeated a bunch of times.
Posted at 3:48 a.m. on February 7, 2010
5 LoovaHoseLamn says...
pleasing answers i like it
Posted at 9:49 a.m. on February 7, 2010
6 Mir Nazim says...
@bob
I guess you missing the point here. It is not about how many templates there are and how simple they are. Its about re-engineering the user experience of Django admin interface.
Posted at 10:36 a.m. on February 7, 2010
7 Cody Soyland says...
@Mir @bob
And even if the admin is where all the design work in Django lives, it's important to note that many of the decisions that happen in core affect designers. Designers account for half of Django's users, but they don't get nearly as much say. Developers (like myself) shouldn't be put in charge with all the decisions that go into engineering the template language, for example, because developers don't use it.
Posted at 2:41 a.m. on February 10, 2010