the linux desktop’s change problem

[NB: this could easily have been titled ‘the software industry’s innovation problem’, since the problem applies broadly to all sorts of software development, and what I’m talking about as ‘change’ is often referred to as ‘innovation’, a word that has been twisted almost beyond recognition. I’d like to focus on this little corner of the industry today, so the linux desktop’s change problem it is for now.]

A couple things recently (combined with writing this post the other day) made me think about the difficulties in bringing change to the linux desktop.

  • talking with someone about distributor innovation brought up this post by Vincent. Solid post that I mostly agree with (bottom line: distributor changes done without upstream input are doomed to failure) but the comments raise a challenging and difficult-to-rebut counterpoint: distributor changes done with lots of upstream input have a history of being watered down, shouted down, and hence failing to make revolutionary change. Incremental or additive change, fine; revolutionary change, not so much.
  • discussion of javascript in the desktop reminded me of Pyro. Obviously Pyro wasn’t perfect, but the speed with which it was shouted down, despite the advantages it might have brought (easy web integration, someone else doing optimization and a11y for us, etc.) was very troubling. To paraphrase what a friend said at the time, ‘developing an online desktop in GTK seems like flying a private jet to an environmental rally- it might be justifiable, but it suggests you aren’t really that serious about the benefits of the new system you’re claiming to embrace. If you really think the web is that great, you have to take Pyro seriously.’ What can we learn from the differences in their receptions?
  • discussion in this bug about the Sugar filesystem is fairly typical of what happens when you try to implement radical change- people used to the old system focus intensely on the transition costs (it doesn’t work RIGHT NOW and my old system WORKS RIGHT NOW DAMMIT) and give varying levels of thought (usually little) to the potential upside of the change- maybe tagging and search really have vastly more potential than hierarchies now that our computers have more capabilities than they did in the time of Aristotle. Kudos to the Sugar folks for persisting despite that resistance.

This isn’t to say that resistance to change is always a bad thing. Plenty of people have brought fairly cracked out ideas to the GNOME table that deserve to be shouted down; Sugar would certainly have been helped by better communication about their vision, a strong dash of pragmatism and a better sense of how to pick your battles; and Pyro might have been better received if the presentation at GUADEC hadn’t been frequently described as ‘condescending.’ But there is a theme here- lots of shouting down of new ideas is being done. Sadly, you can even make a fairly good argument that this is the default reaction to new ideas.

For a long time, this problem didn’t matter that much to the linux desktop. There were plenty of problems to solve just to get usable at all, competitors put out shoddy products, innovation by others happened very slowly if it happened at all, and there was no disruptive change in the basic model for delivery of apps. This basic state of affairs lasted for nearly 20 years. But now things have changed- the linux desktop has matured to the point where the answer to ‘what next?’ can at least sometimes be something other than ‘fix bugs’, Apple is doing real user experience innovation, Windows is feeling price and quality competition (say what you will, but XP and Office 2007 are miles better than Windows/Office 98), and the web is simultaneously revolutionizing how people collaborate and how almost all modern end-user software is developed and delivered.

It seems like a critical question for the linux desktop, then, to figure out how to make radical change happen, since our competitors are eating away at our traditional advantages while making radical change themselves. It can’t be just incremental change (gradually improved usability) or additive change (bolt on a11y on top), because competitors are delivering all those things and then some. Freedom helps here, especially in the very, very long term, since end-user modification and individual control are not features that Apple and Microsoft can ever offer, and which web services can offer only with great difficulty. But that is a very long term solution. In the mean time, if you don’t want to just imperfectly clone everything they do and then wait for freedom to work its magic, merely being as easy to use as OS X or as accessible as Windows won’t help- something bigger and more substantive has to change.

The question is how to do this change, given the resistance I’ve already suggested is rampant? I’m afraid I have no magical bullet to resolving this resistance to change, but I have some suggestions:

  1. The first one is a non-suggestion. The solution is not to do innovation in-house and closed off from the public. Do it that way, and you have all the difficulties that stem from being proprietary (lack of resources, lack of feedback, etc.) and you’ll never get any of the benefits of being open (free assistance in maintenance, free integration in other products, etc.), since odds of it being integrated upstream are extremely low (for good reasons). ‘I want the PR value’ is also not a good reason; the positive PR value you get from that sort of thing lasts only one release cycle, while the damage to your community reputation is permanent. Obviously some balances must be struck so that we can get ideas from as many sources (corporate and community) as possible, but too often pleas for balance are really ‘I don’t know how to do innovation any other way, so I’m doing it this way, sorry’ in disguise.
  2. actively encourage incubation of new technologies. Anyone willing to work on changes in a branch should be encouraged with all the resources we have, and with a serious no-stop-energy policy. Constructive, non-bikeshedding feedback only– those running an incubator should feel completely empowered to ban or mute people who aren’t contributing constructively. There is a time for non-constructive feedback, but that time is at the last possible moment. Think of premature stop energy as premature optimization- the costs are almost always higher than the payoffs. To do it right, you have to understand the problem first, and the best way to do that is to encourage someone to do the design and prototyping and write the code.
  3. Move development to git or bzr ASAP. Part of incubation of new ideas is to fork early and often, with tools that lower the barrier to creating and testing changes, and which make it as easy as possible to merge those changes back once it makes sense. (Great to see that Behdad is working on that.)
  4. Make testing changes easy. Greg seems to be pushing hard for this in the Sugar space, which will be terrific for them in the long term. Some of the push for jscript in GNOME seems to be driven by the same concern- quicker cycles of iteration mean more small changes, quickly, which helps development of new ideas.
  5. Encourage a JFDI culture. Part of the problem with bikeshedding is caused by developers who think they are required to talk about things at great length before doing them. A great developer should be transparent, by publishing as much information as they can while they work, but if you’re well trained and well prepared you need not wait to get public feedback on that information before going forward. The best feedback will still be there for you when you’re done- and likely it’ll be even better in reaction to your work. (Note that transparent JFDI implementation after some early internal design thinking is probably a solid feasible halfway point between ‘do it all in-house’ and ‘do it all in the open.’)
  6. Encourage a serious innovation culture. We need to be able to tell the difference between serious innovation (what the web is doing to collaboration and development; changing how users experience games) and ‘innovation’ (ooh! shiny!) It would be great if development as a whole (and linux in particular) started to be consciously aware of the difference- that would go a long way towards resolving the imbalance between the two categories. (We did some of the same sort of thing in creating a GNOME culture around ease of use, so it isn’t impossible, though it has been less conscious of late- which is a definite problem, easily visible in some of the newest UI bits.)
  7. develop sustainable design best practices: the practices used by designers tend to be optimized for small, tight-knit groups, and many designers strongly believe that too many cooks spoil the broth. Learning how to do iterative, long-term, expert-driven-but-not-dominated design that can respect and incorporate community-driven feedback would be huge. As best as I can tell, no one really knows what such a process would look like yet. Figuring that out should be an explicit goal for someone- perhaps Mozilla (now that they’ve purchased Humanized) or perhaps a university program in design.

It would be great if this post started some serious discussions of the problem and solutions; I certainly don’t pretend that I’m an expert in innovation or that I’d have all the answers even if I were such an expert. And at the end of the day, the #1 reason there isn’t much ‘serious’ innovation- anywhere- is that innovation is really damn hard. That I can’t solve either… but some of the other issues should be resolvable as well.

[Ed. later: I removed some childishly snide KDE links, and apologize for the snarky tone therein. I do think that KDE 4’s ‘innovations’ are a prime example of confusing ‘shiny’ with ‘innovative’, but I should have said that flat out rather than doing it the way I did. Note that that may well be a better way of failing to innovate than complaining about- and killing- new ideas before they ever get to the user; either way I think both GNOME and KDE have a real problem here, which is why I said ‘linux desktop’ and not GNOME in the title.]

33 thoughts on “the linux desktop’s change problem”

  1. [Ed.: With Aaron’s permission, I’ve removed this post, as he wrote it quite literally while I was writing the edits mentioned above. Again, apologies to the KDE community for my snide, unnecessary comment; I look forward to some fruitful discussion of whether and how KDE4 is innovative, and (if so), how KDE got there; (if not) how we can share ideas on getting out of our share rut.]

  2. I think the part about shouting down new ideas in general is pretty much spot on. Its a community survival mechanism because well we ‘know’ we are surviving… and someone’s new idea could make us not survive (its risk we aren’t able to gauge and humans are really poor at gauging risk.) So you end up with changes occurring when someone is able to ‘fork’ off a new community of people who are either willing to take the percieved risk.. or are going to join this group because they don’t want to be left behind. After this new community settles in.. it may evolve but I don’t think it really fundamentally changes again within human timescales.

    So basically to really innovate you have to find the right people, the right time, and the right thing.. and that group will head off into some new wilderness… maybe not to be heard of again or maybe to set up some new idea that changes the world. The problem is that rarely does anyone know that the various ‘rights’ are coming together at that moment.

    I think at a certain point.. GNOME/KDE/etc will have reached their limits and the big change will come from some group who build off the DNA of the old stuff but find some new niche or idea to take off.. and we will not know it until its been told it was going to be a complete failure for a couple of years.

  3. Yes.. that is what I mean by using the DNA of previous stuff. Linux started off via Minix’s DNA for at least reference.. In the end though, I don’t think the big problem is the technology but the psychology/sociology .

    You have to get people to look at a problem differently, be able to stand up to ‘oh don’t do that you will fail’ emails, and people who are willing to follow off on some fool’s errand into the wilderness.

    Most of the ‘new’ innovations are things that were around on drawing boards from the 1960’s.. they just have found the right developer(s) to pick them up (or in most cases think they invented it and then discover it was talked about and dismissed in 1972) and run with it. It might be that the technology is ready (or that the technology has been ready for a while).. but the psychology of thinking and DOING different and a culture which forms around it (sort of like a perl growing around the irritant of the larger body).

  4. Is there any group within the linux desktop that is dedicated to copying Apple’s usability innovations?

    That is opposed to copying the superficial appearance of Mac OS X (e.g. compiz-style gloss divorced from actual thought about usability).

    I don’t think Mac OS X is the be-all and end-all of desktop usability but understanding their innovations, and then copying them while avoiding the comprises they’re locked into by their history seems like a good next step. It seems like it would fit neatly between ‘fixing obvious bugs’ and ‘inventing the future’ in the free desktop timeline.

    I keep seeing people proposing mockups or producing code for stuff like Font choosers for example, and they’ve not even looked at what Mac OS X does. That seems almost criminal to me and ideally you’d have looked at and analysed the Windows, Gnome, KDE and Mac OS X ways plus third party solutions to any problems before starting on your own.

    On the other hand I’ve seen a few disjointed approaches in this direction AWN (Apple’s Dock) and Gnome Do (Blacktree’s Quicksilver).

  5. Great post. The “market” for GNOME is 1% Unix hackers and 99% people who have never used Unix (and many of those have never used a computer, see Sugar). I think an ideal GNOME culture would end up looking more like Mac or Windows culture than Unix culture (but as a Mac user I would say that). Maybe it would be easier to take some of the 99% and convert them to developers than to convince Unix hackers to either switch culture (very hard) or build software for people of a different culture (near-impossible).

    Maybe you’re not stating point 5 strongly enough. From my observations, JFDI is the only approach that works. (Or as Giles Bowkett poetically said, “Never Complain. Only Ever Code.”) If you talk before coding people will shout it down, and then if you code it anyway they’ll say “we already discussed this extensively and decided it was a bad idea; let’s not revisit it again”. And then the idea is poisoned and we have to wait 10 years for the radiation to dissipate before we can do it again (see KGI and kernel modesetting). Unless Fedora or Ubuntu railroads the feature through against the objections of the whiners, who then say “you know, having working wireless isn’t so bad once they forced it on me”. :-)

    IMO online desktop != Web desktop. Usability-optimized (i.e. non-HTML) apps talking to services sounds like a perfectly legitimate path to the online desktop, and it doesn’t involve a Web browser.

  6. Luis,

    Let me just say this. We can talk on tangents all we want, but lets be clear and lets be frank. Everyone wants Gnome to have a bigger share of the market, but what is Gnome doing about in terms of the end user? I’m a Gnome user myself and that’s it. I’m not a developer and I don’t contribute (although I would like to). What is Gnome doing to get us INVOLVED! Lets say I want to request a feature or have an idea to make Gnome better, but simply don’t have the skills to do it. Where can I go to? needs some serious work in creating a better atmosphere for collaboration and getting users involved even if it’s to have users discussing with users. the current work is great, but it seems like much of the other section of the site is taking a wile to implement and the inconsistencies look ugly. I think it looks bad when users want to discuss about gnome and has no official forum that I can see. I think they have an unofficial forum on another site, but there should be one on I think user’s can do a lot more than developers give credit for (creating templates for office for example if the website had a repository users could upload to), but if you ever want to reach 10% you HAVE TO get users involved in direct marketing, forums, website maintenance, etc. Ubuntu has done a great job with classroom, learning seasons, mentoring, etc., but I’ve never seen Gnome on their front page saying we’re have a season this week in irc about how to get involved in Gnome where everyone can talk to REAL people. And that is my point…I think real change can occur when you connect the right people together. In any case, I think it would be great to have several mentors mentor 3-5 users that want to get involved in Gnome for lets say 3 months and from there publish the results and see what’s missing. Have users sign up on … worse case you’ll get a lot of feedback and possible more gnome contributors, but the key is connecting real people.


    PS I hope that didn’t sound like rant. :-P

  7. heh, should have used spells check.. i meant sessions, not seasons… i should read my posts more before i click submit… i typed it fast.. sorry :)

  8. […] First Class Support for Interactivity in Commodity Operating Systems. Apple: I can haz? Luis Villa: The Linux desktop’s change problem. Ars Technica: Microsoft repeals Windows Media strategy tax, supports ISO-standard MPEG-4, H.264, […]

  9. […] I was trying to innovate on the Linux Desktop today, while hacking on the workspace-switching code for GNOME Shell. I’d written some nice javascript code to make workspaces slide on and off the screen as you added/removed them: […]

  10. […] a comment December 6th, 2008 wmfTime:09:10 am Villa: The Linux desktop’s change problem.comments: Leave a comment December 6th, 2008 wmfTime:09:10 […]

  11. “I think both GNOME and KDE have a real problem here, which is why I said ‘linux desktop’ and not GNOME in the title.”

    Neither GNOME nor KDE are ‘The Linux Desktop’ either, they’re desktops for Unix and Unix-like systems, which happens to include Linux.

  12. I think Linux UI innovation is a little premature when Linux desktops lack basic features like predictable input focus, smooth UI response times, and non-fugly fonts.

    GNOME could do worse than to simply implement the time-tested Mac OS 9 HIG. Another straightforward approach would be to simply clone the design choices of Mac OS X and/or Windows. Where Mac OS X and Windows agree, follow the de facto standard. Where they disagree, choose the better approach without the boat anchor of backwards compatibility that both Mac OS X and Windows face.

    (Full disclosure: I’m an Apple fanboi but admit Mac OS X is far from perfect or even “intuitive”.)

  13. Ditto the previous commentor:
    “IMO online desktop != Web desktop. Usability-optimized (i.e. non-HTML) apps talking to services sounds like a perfectly legitimate path to the online desktop, and it doesn’t involve a Web browser.”

    Maybe the issue is that the “Webtop” isn’t innovation and it just isn’t what people want. desktop-in-a-browser will send me straight back to Windows (I’ve been using a UNIX/LINUX desktop since WfWg). It is just a pointless idea. If I wanted web apps I’d just use Google, there is no space in that arena for Open Source. What on earth is the joint of local-web-apps? It is a nifty trick to paint your desktop in a web browser, but that is all it is.

    If the issue is to just have easier to code apps, using something like XAML, than that is completely cool. And make applications service providers to front-ends. But that is entirely different then what it always seems like these “innovators” are talking about. And with Moonlight and D-Bus can’t we do that today? Yea some people will see XAML/.NET as Microsoft evil but it works TODAY.

    I’m a full time desktop user, but I also do some development of apps in GNOME/Gtk#. And I’m pretty discouraged. The GNOME/Gtk universe is hardly a mature development environment: the documentation is lousy, the available widgets and widget libraries are paltry, and information on things like printing or using d-bus is nearly non-existent. Now I’m, and others, are being told that Gtk is essentially dead, the Gtk developers are going to break API, and the future is….. something-else.

    IMO, the GNOME desktop doesn’t need philosophical debate or much “innovation” at all; it needs a lot of grunt-work done to clean up the rough edges and the documentation. Why aren’t there more plugins for Evolution (best Open Source mail/calendar/address-book client)? Why isn’t there an OO shell like Powershell where I can communicate with all my apps? etc… There is allot of great stuff here, can’t the future be built on that? If the answer is no then I believe it will take so long to get to “the future” that there will be nobody there who will care.

  14. I don’t have the answer, just asking the question — after decades of development of user interfaces in many areas, let’s say email clients, is really the best what we can get GMail?

  15. […] Luis Villa’s Blog / the linux desktop’s change problem this focuses more on approach than specific recommendations in direction, but i'm in agreement with nearly all of it. and as for the question of direction, everyone knows where i think GNOME should go: online, with all possible speed. (tags: gnome process linux innovation feedback energy design criticism change luisvilla) […]

  16. […] Re: app-admin/eselect needs YOUR help [In reply to] On Mon, Dec 8, 2008 at 6:44 PM, Ciaran McCreesh <ciaran.mccreesh[at]> wrote: > On Mon, 8 Dec 2008 08:37:42 -0800 > Donnie Berkholz <dberkholz[at]> wrote: >> Open and public debate about the right way to do things does take >> longer, and it’s something you certainly participate in quite >> frequently so I’m surprised to hear you badmouth it when it comes to >> your own ideas. > > Open and public debate requires two or more well informed parties who > are seeking to reach the best solution regardless of who proposed it, > and a deciding body who are prepared to go for the best solution even > if it isn’t universally popular. This sometimes happens with Gentoo, > but unfortunately all too often it’s one of these instead: > > * A good proposal gets a few incorrect objections from people who > don’t understand it and aren’t prepared to put in the effort to > become well informed. The Council then uses these objections as an > excuse to sit on the proposal and do nothing for months, because > making a decision is harder than maintaining the status quo. > > * A good proposal gets a whole load of silly, trivial and nonsensical > objections from sockpuppeting trolls who don’t like the people who > came up with the proposal (or sometimes from sockpuppeting trolls who > suspect that the person who came up with the proposal once spoke to > the cousin of a cleaner who once worked for the nephew of someone who > said that the proposal looked sensible…). The Council do not > dismiss these objections because they don’t want to risk upsetting > anyone. > > * A good proposal comes along. Its proof of concept implementation is > done using a project that is considered by some to risk upsetting the > status quo. A bunch of people who are involved in the proposal get > fired. > > * A proposal gets implemented without the debate. It’s either a lousy > proposal that we’re then stuck with, or a decent proposal that has a > few flaws that could have been addressed. > > This is the kind of ‘open and public debate’ one would expect from a > failing government trying to cling to power for a few more years or a > middle-management-heavy corporation on its last legs. It’s fine if you > want to repaint the bikeshed a slightly nicer shade of magenta, but > it’s a real nuisance for anything serious. > > None of the people involved in the decision to fork eselect rather than > work on it for Gentoo are anything except entirely in favour of open and > public debate. It’s just that they don’t exactly have a positive > experience of that happening within Gentoo… > > — > Ciaran McCreesh > Reminds me so much of […]

  17. I think the biggest mistake done by innovators is not being pragmatic. If you change the way the desktop works you WILL bring inconsistency. It is simply impossible for all applications to adapt to your new model, either because of lack of manpower or because of lack of liking of your new “innovation.”

    The problem with any revolutionary change on the desktop is that it inevitably leads to totally inconsistent user experience and most likely many MANY new breakages. I remember when we had discussion about application menu titles. Now the “File” is a crapy name for a menu that includes “Quit.” But if you change it to some other menu (I remember a “foot” menu was suggested) meant that you would close each app on the system differently. There are many apps which say still use Motif even though Motif should have been dead 10 years ago. There are many useful apps (xfig) that are heavily used that used xaw, even though xaw should have been dead before it was created. Hence, your new model must integrate nicely with such apps. Otherwise you’re making the users life harder, not easier.

    The argument that “But in 10 years all apps will use this new model” is bogus, because in 10 years, this model will be considered old and there will be a new innovation that breaks old habits.

    I would disagree that linux desktop works at all satisfactorily. There are millions of little issues that should be solved before we tackle big changes that will bring yet more breakage. Now that I’m mostly a user, rather than a developer on GNOME, I see a lot more breakage. And I don’t have time to describe and work on it and try to find how to fix/improve it. That’s because I need to use GNOME, not work on it.

    So I would say incremental improvement is FAR superior. I would be much happier if GNOME/Linux just worked, were consistent, even if they would look “so 90’s” and would not look so flashy like vista or macos. I tried using vista on my wife’s new computer and it does the “web desktop innovation” by making sure that every window looks like a differently designed webpage. It is no longer easy to see what you can click, and what does what. Everything has different interface, except for old legacy apps which are the only consistent thing.

    Another “innovation” I would disagree with is the desktop trying to be “too smart.” Windows does this to the max. They rename things with some supposedly easy to understand term, but never explain what is going on. Hence, you mostly don’t know what the system is doing because it thinks you are too stupid to tell it what to do. Most users are not going to use the system in the way it was designed to be used. If you design an interface with a certain workflow in mind, chances are, no a single user is actually following that workflow.

    Anyway too much ranting … gotta go write a final for my class … (I’m procrastinating now that no students are in my office hours) …

  18. […] Villa has put up a thoughtful post on the difficulties of innovating on the Linux desktop. “Discussion in this bug about the Sugar […]

  19. How about using workflow-oriented GUIs for desktop apps – “wizards” for common things – where everything is step-wise – so that even zombies cant get confused while doing daily work in process of switching to Linux, whether GNOME and KDE?

  20. […] Pull your company’s pants down ( 2 points by peter123 9 hours ago | 1 comment82.The Linux desktop’s innovation problem ( 2 points by IsaacSchlueter 9 hours ago | discuss83.The stupidest things I’ve done in […]

  21. […] I was trying to innovate on the Linux Desktop today, while hacking on the workspace-switching code for GNOME Shell. I’d written some nice javascript code to make workspaces slide on and off the screen as you added/removed them: […]

Comments are closed.