LWN.net Logo

Paul: Closed Design or No Design? Something is better than nothing

Celeste Lyn Paul discusses doing user interface design and the tradeoffs between being completely open to all commenters or moving to a more closed-off design discussion. Her post was prompted by a recent decision to turn the Ubuntu Ayatana design project into an "invite-only" discussion. "In a move to try and get more done, Ayatana has decided to try something different and once again close parts of Ubuntu design. The risk of reducing community feedback is that the chance where someone not vested in the design could catch serious design flaws is reduced. However, the benefit of getting more stuff done in a sane and organized matter could out-weigh this risk, especially if Ayatana learns from past mistakes and incorporate good iterative design practices, keep the community informed, and involve upstream vendors in their process as needed."
(Log in to post comments)

Paul: Closed Design or No Design? Something is better than nothing

Posted Oct 20, 2009 3:27 UTC (Tue) by jmm82 (guest, #59425) [Link]

This lkml seems to have the problem solved. Anyone can comment, but most people are too scared to say anything because they will probably get flamed.;)

This seems contrary to a quote describing what the word Ubuntu(not the distro) means on wikipedia[1],

"One of the sayings in our country is Ubuntu - the essence of being human. Ubuntu speaks particularly about the fact that you can't exist as a human being in isolation. It speaks about our interconnectedness. You can't be human all by yourself, and when you have this quality - Ubuntu - you are known for your generosity.

We think of ourselves far too frequently as just individuals, separated from one another, whereas you are connected and what you do affects the whole world. When you do well, it spreads out; it is for the whole of humanity."

I do not know if I agree or disagree, but I will say I am surprised to hear this.

[1]http://en.wikipedia.org/wiki/Ubuntu_(philosophy)

Paul: Closed Design or No Design? Something is better than nothing

Posted Oct 20, 2009 5:05 UTC (Tue) by proski (subscriber, #104) [Link]

I hope the new design will be available as early as in Misanthropic Mule.

Paul: Closed Design or No Design? Something is better than nothing

Posted Oct 20, 2009 8:26 UTC (Tue) by michaeljt (subscriber, #39183) [Link]

Maybe it is a matter of striking the balance, and handling it in a sensitive and diplomatic way. Like a core team who take all the actual decisions, and who communicate closely with each other but are open about their communication (not necessarily doing all communication in public, but letting people know what they are discussing, and answering questions directly and honestly) and keep public mailing lists that they are active on. The diplomacy bit is what Canonical seem to be having the most trouble with here...

In fact, this is just the cathedral and the bazaar thing again. These are really two extremes of the FOSS development model though, and in practice the best approach is usually a mixed model somewhere in-between which learns from takes the best bits from the "purer" approaches.

Paul: Closed Design or No Design? Something is better than nothing

Posted Oct 20, 2009 8:55 UTC (Tue) by Janne (guest, #40891) [Link]

The main problem that free software has when it comes to user interaction and design is that way too often it's the coders who decide what is good UI and what is not. They are the gatekeepers, even though they have zero clue how to design a good UI.

Granted, this problem has been getting less serious over time, but it's still there. Reading the various planets I still come across posts by developers where they tell "I wrote an app to do X, and here's what it looks like". Developers should focus on writing the best code possible and leave UI-design to others. And that means that we need to get rid of the "he who codes, decides"-mentality. Those who code might not be the best possible people to make decisions regardin UI's. Sure, they are the best possible people when it comes to code, but since when does knowledge of code mean that you are expert in human interaction and UI's?

Sure, there are plenty of "lone coders" who do not have the benefit of having UI-designers to talk with. But big projects like KDE and GNOME do not have that problem. At least they should not have that problem...

Paul: Closed Design or No Design? Something is better than nothing

Posted Oct 20, 2009 9:27 UTC (Tue) by alankila (subscriber, #47141) [Link]

I'm wondering if a formal UI abstraction layer would be a useful way to faciliate separating developers from application's UI.

One way to do it would be to take something like, say, GWT, and extend it for local usage. Provide means to generate GTK+ client instead of HTML/JavaScript client, and some way to talk to local daemons (and start them), and so on.

The details are of course complicated, but splitting UI from backend across a process abstraction may gradually make more and more sense, especially now that the devices users use diverge in capability, yet network connectivity is quite ubiquitous.

Paul: Closed Design or No Design? Something is better than nothing

Posted Oct 20, 2009 12:27 UTC (Tue) by rahulsundaram (subscriber, #21946) [Link]

Doesn't Glade already do that for GTK? I know interaction designers in Red Hat often just sketch in paper directly or do a mockup in Inkscape but mockups in Glade are fairly easy as well.

On the subject of doing interaction design in the open, it can be done as Fedora Design team has shown. It just requires a bit more negotiation and transparency in the decision making process.

Paul: Closed Design or No Design? Something is better than nothing

Posted Oct 20, 2009 18:54 UTC (Tue) by flewellyn (subscriber, #5047) [Link]

>I'm wondering if a formal UI abstraction layer would be a useful way to faciliate separating developers from application's UI.

wxWidgets has the XRC format, which is an XML description for the UI. The program loads and parses it at runtime to create the GUI.

Perhaps this might be a model?

Paul: Closed Design or No Design? Something is better than nothing

Posted Oct 21, 2009 6:40 UTC (Wed) by alankila (subscriber, #47141) [Link]

As a note, neither glade or xrc can probably come even close to what GWT can do. GWT contains a Java-to-JavaScript compiler so you can write client-side code in Java and have it automatically transform to executable JavaScript. This means that the UI can really be programmed in GWT, and the backend stuff can truly avoid having anything to do with the UI apart from responding to the requests the frontend makes.

Paul: Closed Design or No Design? Something is better than nothing

Posted Oct 20, 2009 12:50 UTC (Tue) by epa (subscriber, #39769) [Link]

Developers should focus on writing the best code possible and leave UI-design to others.
Unfortunately that division doesn't really make sense. In an end-user application the user interface is usually the hardest part (or indeed, the whole app) and takes the most code. There is no Platonic division between the 'real' code and some user interface layer on top.

Paul: Closed Design or No Design? Something is better than nothing

Posted Oct 20, 2009 15:21 UTC (Tue) by Janne (guest, #40891) [Link]

"Unfortunately that division doesn't really make sense."

Of course it makes sense. Even if/when the UI takes large amounts of code, it still does not mean that the coders should be the ones who decide on the UI. Rather, the designers design the UI, and the coders code it.

Of course we might then have the complaint that coders have to do things that they do not agree with (the ideal UI for coders would be very different from the idea UI for everyone else...), and they might refuse to do it. But in that case we are stuck with apps with crappy UI's (like many free-software apps unfortunately are. Just compare them to Mac-apps for example), and that means that no-one would want to use those apps (apart from coders). By coders, for coders indeed.

Like I said, coders should stick to coding (unless the coder is also really talented at UI-design as well. Now I know that most coders probably think that they know how to design a good UI, but reality is something different), and UI should be designed by people who actually know how to design an UI. And that would mean that the coders code the UI the designers come up with.

Software meant for end-users (and by that I mean regular people) is a shortcoming for free software. Free software works beautifully for those "back-office" things, where the user does not directly interact with the software, and the people who do interact with it, are admins (people with similar backgrounds and skillsets as the coders have). To that group of people the UI might not be all that important. But normal users? In many ways the UI is the app, and coders suck at creating UI's. But the coders are the gatekeepers who decide what goes in to the apps and what doesn't, so we have apps with crappy UI's.

But luckily things have been getting better. Slowly but surely.

Paul: Closed Design or No Design? Something is better than nothing

Posted Oct 20, 2009 16:08 UTC (Tue) by nye (guest, #51576) [Link]

There are indeed many delevopers who are exceedingly bad at designing good UI, but there is also a lot of software with a UI which is actually extremely good, if you really are the target audience. Inevitably, the target audience will at some point not include interface designers.

As an example, I present Blender. Particularly in 2.5 (which is currently in development), Blender's UI is really excellent, but it has a reputation as an impossibly difficult program. This is because it is aimed at making serious users as fast and efficient as possible, and not at letting some random spod use it for five minutes and be an expert. Sure it would be nice if both were possible at once, but in reality it just isn't.

This isn't intended to argue against your point, just to point out that sometimes ease-of-use without learning is not the sole criterion when designing a good interface, though it frequently appears to be the sole criterion for people evaluating others' interfaces.

Paul: Closed Design or No Design? Something is better than nothing

Posted Oct 20, 2009 16:35 UTC (Tue) by epa (subscriber, #39769) [Link]

I didn't mean that the programmers should be the ones to design the UI (although that can make sense in limited cases); rather I was arguing against the idea that "Developers should focus on writing the best code possible" and not concern themselves with UI issues. On the contrary, when writing even the most low-level part of an application's code you need to keep in mind the user interface; it can't be something that programmers ignore and then leave to be glued on top by user interface 'designers'. Even if they don't have the final say, programmers need to keep user interaction in mind throughout their work.

Paul: Closed Design or No Design? Something is better than nothing

Posted Oct 23, 2009 18:06 UTC (Fri) by gerv (subscriber, #3376) [Link]

Quite right. The UI tends to reflect, whether you like it or not, the underlying program model. Which means that model has to be designed with the UI in mind. You can polish and add shiny bits, but the interaction model, badness of which usually leads to bad UI no matter how good the designer, is very dependent on the program model.

Gerv

Paul: Closed Design or No Design? Something is better than nothing

Posted Oct 22, 2009 9:08 UTC (Thu) by jschrod (subscriber, #1646) [Link]

Well, but it ain't so easy. One can not simply separate them, they influence each other.

I'm now in management, but I worked both as software developer and have a design background (coming originally from the typography and typesetting side and enlarging that into dynamic designs), have thus worked for many years in HCI projects.

My experience in all projects that gone well is: Good UIs needs lots of changes in the underlying software architecture, UI quality is not something that can be crafted upon. And mind you, I don't mean just some code additions, I mean changes in the *architecture*. The demands for user-centered workflows (as evangelized first by Tog on Interface), interactive feedback about running operations, abstractions needed in the control and view, etc., are usually not compatible with typical backend designs of software architects.

And there is also the other way round: Many times my engineers had to tell my designers that one of their great ideas is not implementable with the available resources (either hardware or person power). Well, bad luck, so they had to change the design.

IMNSHO, good practical designs are compromises, reached by group work of designers, architects, and programmers, to make the best of available possibilities and resources. Any other approach leads to inferior applications.

Paul: Closed Design or No Design? Something is better than nothing

Posted Oct 20, 2009 14:46 UTC (Tue) by dkite (guest, #4577) [Link]

It isn't quite that simple. Good interface requires good tools. Non coders
can only comment.

That being said, something like akonadi encapsulates the data handling, and
allows the developer with some interface ideas to do that without worrying
about the backend stuff.

When you build a house, getting it framed with windows, doors and roof seems
a major accomplishment. But you are only a 1/3rd of the way. Same with
software.

I guess the point is not some structure or other, but simply resources. If it
takes a dozen guys 3 years to put together a backend, it will take a dozen
guys 6 years to make it really useful for users. And probably a different
dozen guys with coding skills and an intuitive knack for what works.

Free software is still at the stage where a few developers with a good idea
have to spend the majority of their resources building backend stuff. No
surprise that the front end stuff gets shorted.

Derek

Paul: Closed Design or No Design? Something is better than nothing

Posted Oct 21, 2009 7:01 UTC (Wed) by Janne (guest, #40891) [Link]

"It isn't quite that simple. Good interface requires good tools. Non coders
can only comment."

And that is the problem. UI-designers might not be coders. It's way too easy to brush off UI-design by saying "if you want to change something, do it yourself!". That means that coders have a definite advantage over non-coders. Which means that coders handle things that should not be handled by coders, such as UI-design.

Like I said, coders are the gatekeepers. And for years that showed in the UI's. Honestly, they were a mess. The apps might have had lots of nifty features and the like, but the bad UI made them next to unusable. On the Mac-side apps might not be as powerful (I'm generalizing here), but the UI's are so nice and easy to use that the user is actually more productive, even if he has less bells and whistles to work with. Not to mention the enjoyment one gets from using the apps.

This might go against the ideals of free software, but UI-designers (and other experts ot various fields) should have a say in the design of the apps. Nowadays it's way too often that the coders are the kings, and others can just make suggestions to them. Coders can listen to their suggestions or they can brush them aside. UI-designers should be able to say to the coders "no, that is not how this app is going to work, change it".

That could work in projects like KDE and GNOME where the design of the apps could be a collaborative effort. If someone wants to have his app as part of the desktop, it would have to be designed with UI-experts. Ideally that would mean starting from the beginning, as opposed to showing the finished work to them, and asking what's wrong with it. If some coder does not want to give designers that power, they would not be part of the desktop.

Paul: Closed Design or No Design? Something is better than nothing

Posted Oct 21, 2009 14:21 UTC (Wed) by dkite (guest, #4577) [Link]

I think you don't understand the problem.

UI is not nice layout. Or pretty pictures. Take for example a file manager.

I dislike the UI on most GUI file managers. Too slow, The benefits a gui
could bring are too cumbersome and slow.

Solution! Get some UI expert in early. Not at all. How about rewrite the
graphics engine, make sure it works on all graphic cards on the market. And
while you are at it, rewrite a file system for speed and other neat thing you
want.

Take the PIM stuff from KDE3. I want in my app to have a list of contacts.
From exchange, google, local storage, and openexchange. As a developer with
limited resources, the backend consumes them all. So developers, good ones
with good ideas have to spend time building a backend so that it is even
possible to write a nice frontend.

And from there, ideas can start to happen. But again, to make something work
really well, intuitive, where your workflows just feel quick and easy, is
enormous work. Iteration, detailed coding of each interaction, etc.

All a UI expert can do is make up a list of stuff for the developers to do.

UI is hard, good UI rubs against the limits of the machine, and takes
enormous developer resources. That is the problem with free software UI. Not
some idea that the wrong people were consulted.

Derek

Paul: Closed Design or No Design? Something is better than nothing

Posted Oct 20, 2009 15:50 UTC (Tue) by johnflux (subscriber, #58833) [Link]

> Sure, there are plenty of "lone coders" who do not have the benefit of having UI-designers to talk with. But big projects like KDE and GNOME do not have that problem. At least they should not have that problem...

Of course we (KDE developer here) have that problem. We have about 3 UI-designers for the whole project.

I'm the maintainer of the task manager equivalent (System Activity, aka ksysguard), and over the years I have _never_ had a UI design bug report, or a request from a UI designer to fix something. And I doubt that it's because my work is perfect.

I have put my project up on openusability.org and got no response (presumably they are overloaded) and the 3 or so people in the KDE team already have their plates full.

Paul: Closed Design or No Design? Something is better than nothing

Posted Oct 20, 2009 16:26 UTC (Tue) by kragil (subscriber, #34373) [Link]

Hmm, how about contacting design schools directly and have their students find and file bugs. With KDE for OSX/Win and LiveCDs that should be easy.

Paul: Closed Design or No Design? Something is better than nothing

Posted Oct 20, 2009 21:02 UTC (Tue) by djcapelis (subscriber, #53964) [Link]

Only the apps are really being ported to OSX and Windows, the entire DE is a different matter. A lot of the essential UI issues are in the DE and any UI work even on the apps should probably be done in the context of the entire DE so that you don't get vastly disparate interfaces with no consistency.

LiveCDs might work, but beginning users and students may not be the best source of feedback. It'd be a place to start but you still need a good expert to go through and sort the good ideas from the bad. Good ideas aren't necessarily obvious.

Paul: Closed Design or No Design? Something is better than nothing

Posted Oct 22, 2009 4:54 UTC (Thu) by daniels (subscriber, #16193) [Link]

If you've got a way to get skilled designers more involved in open source development, I'm all ears.

Paul: Closed Design or No Design? Something is better than nothing

Posted Oct 22, 2009 5:00 UTC (Thu) by daniels (subscriber, #16193) [Link]

(Note that being a designer isn't a free pass. I've seen UIs designed by coders with good design sense that were much, much, much, much better than UIs designed by designers with no clue whatsoever. A lot of the latter, quite a few of the former.)

Paul: Closed Design or No Design? Something is better than nothing

Posted Oct 20, 2009 17:46 UTC (Tue) by gmaxwell (subscriber, #30048) [Link]

Somehow I don't see how this can work out with packages maintained by other people…

"Yo. upstream. We have now finished our masterwork! The new design of your application is now complete. We heard users like to email so we put an email client in their email client so people can cascade while they carbon copy"

"Er. Your changes don't fit well with our architectural plans, they disable features that many users count on (including ourselves), and if users wanted to top-post while they trolled they could have just started two copies. While we appreciate the effort, we can't accept this."

"They can't start two copies! Starting multiple copies of one app is confusing, so our supermagicsystembus just maximizes the single running copy should someone attempt to start another copy. It's better that way!"

"..."

"You have to accept the patch! We've shipped this to millions of people!"

"Surely you have the man power to maintain that fork on your own into perpetuity?"

"…um… you're going to take the patch… right?"

design software as APIs/libraries

Posted Oct 20, 2009 19:15 UTC (Tue) by pflugstad (subscriber, #224) [Link]

We've actually moved to setting our software up so that the guts of any service/application presents an API (a library), then we layer both a command line interface and a GUI on top of that. The implementers typically do command line interface first, and this ends up being good for the GUI, as we get a lot less application logic in the GUI and less GUI logic in the application. The GUI ends up being simpler and faster. It also makes it easier to script and create automated tests for. Later we can go back and skin on a real GUI if we need to. Occasionally the GUI will need/want something we didn't think of, but it's usually quite easy to add in after the fact once you have the API and CLI front end.

Granted, this can't be done for everything, but for a lot of functionality, it makes a lot of sense and we end up with more useful (and reusable) chunks of software.

design software as APIs/libraries

Posted Oct 20, 2009 19:47 UTC (Tue) by sebas (subscriber, #51660) [Link]

This is done in KDE to a large extent, pretty much everything that's non-
easy to use, even for a moron like me.

It doesn't mean that we all of a sudden have an army of people available
to design the best UI ever. Design-driven development (or maybe at least
collaboration between UI designers and coders) is still a necessity, and a
process that we're adopting. You can see this in the shifted focus in KDE
4 already (that's where it differs a lot from KDE 3). In order to create
perfectly usable applications (which is somewhat in the eye of the
beholder), we need to balance this out even more. As a developer being
open and trusting the designers (for example Celeste) is very important,
but I also realize that "a bunch of geeks" (overstating) isn't the most
rewarding team to work with for many designers.

This is a longer process, and KDE is definitely moving in a good direction
here, but it takes its time (especially with a codebase as large as
KDE's).

design software as APIs/libraries

Posted Oct 20, 2009 20:15 UTC (Tue) by nix (subscriber, #2304) [Link]

Strongly seconded.

Another thing that's useful is to subdivide non-UI components that
maintain a lot of state (especially in databases, which are notoriously
hard to snapshot) and do calculations on it into separate components that
maintain the state and that do the calculations, and a layer to shuffle
data between the two. Then you can get reproducible testcases by replacing
the state-maintenance portions either with something emitting static test
data, or with something emitting suitably-random data, for fuzz tests.

design software as APIs/libraries

Posted Oct 20, 2009 20:44 UTC (Tue) by pflugstad (subscriber, #224) [Link]

Yup - we do this kind of thing extensively. All of our components communicate with messages over common "buses", sometimes behind an API, sometimes not. So it's trivial to hook a recorder to a bus for later playback, or swap out the "real" thing for a "simulator", and so on.

Copyright © 2009, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds