Competition is tough on the contestants, but it gets great results for everyone else. We like competitive markets, competitive technologies, competitive sports, because we feel the end result for consumers or the audience is as good as it possibly could be.

In larger organisations, you get an interesting effect. You get *internal* competition as well as external competition. And that’s healthy too. You get individuals competing for responsibility, and of course you want to make sure that the people who will make the wisest choices carry the responsibilities that demand wisdom, while those who have the most energy carry the responsibilities for which that’s most needed. You get teams competing with each other too – for resources, for attention, for support elsewhere, for moral authority, for publicity. And THAT’s the hardest kind of competition to manage, because it can be destructive to the organisation as a whole.

Even though it’s difficult to manage, internal competition is extremely important, and should not be avoided out of fear. The up side is that you get to keep the best ideas because you allowed them to compete internally. If you try and avoid it, you crowd out new ideas, and end up having to catch up to them. Usually, what goes wrong is that one group gets control of the organisation’s thinking, and takes the view that any ideas which do not come from within that group are a threat, and should be stopped. That’s very dangerous – it’s how great civilisations crash; they fail to embrace new ideas which are not generated at the core.

In Ubuntu, we have a lot of internal competition. Ubuntu and Kubuntu and Xubuntu and Edubuntu and *buntu-at-large have to collaborate and also, to a certain extent, compete. We handle that very well, I think, though occasionally some muppet calls Kubuntu the blue-headed-stepchild etc etc. It’s absolutely clear to everyone, though, that we have a shared interest in delivering ALL these experiences together with as much shared vision and commonality as possible. I consider the competition between these teams healthy and constructive and worth maintaining, even though it requires some fancy footwork and causes occasional strains.

The challenge for Gnome leadership

The sound and fury writ large in blog comments this week is all about how competition is managed.

Gnome is, or should be, bigger than any of the contributing individuals or companies. Gnome leadership should be in a position to harness competition effectively for the good of the project. That does, however, require very firm leadership, and very gutsy decisions. And it requires vigilance against inward thinking. For example, I’ve seen the meme reiterated multiple times that “one should not expect Gnome to embrace ideas which were not generated and hosted purely within Gnome”. That’s chronic inward thinking. Think of all the amazing bits of goodness in the free software stack which were NOT invented in Gnome but are a part of it today. Think how much better it is when goodness is adopted across multiple desktop environments, and how much harder it is to achieve that when something is branded “K” or “G”.

When we articulated our vision for Unity, we were very clear that we wanted to deliver it under the umbrella of Gnome. We picked Gnome-friendly technologies by and large, and where we felt we needed to do something different, that decision required substantial review. We described Unity as “a shell for Gnome” from the beginning, and we have been sincere in that view. We have worked successfully and happily with many, many Gnome projects to integrate Unity API’s into their codebase.

This is because we wanted to be sure that whatever competitive dynamics arose were *internal* to Gnome, and thus contributing to a better result overall in Gnome in the long term.

We’ve failed.

Much of the language, and much of the decision making I’ve observed within Gnome, is based on the idea that Unity is competition WITH Gnome, rather than WITHIN Gnome.

The key example of that is the rejection of Unity’s indicator API’s as external dependencies. That was the opportunity to say “let’s host this competition inside Gnome”. Even now, there’s a lack of clarity as to what was intended by that rejection, with some saying “it was just a reflection of the fact that the API’s were new and not used in any apps”. If that were the case, there would be no need for prior approval as an external dependency; the rejection was clearly an attempt to prevent Gnome applications from engaging around these API’s. It’s substantially failed, as many apps have happily done the work to blend in beautifully in the Unity environment, but there has been a clear attempt to prevent that by those who feel that Unity is a threat to Gnome rather than an opportunity for it.

Dave Neary has to his credit started to ask “what’s really going on here”?

In his blog post, he quoted the rationale given for the rejection of Canonical’s indicator API’s, which I’ll re-quote here and analyze in this light:

it doesn’t integrate with gnome-shell

That’s it – right there. Remember, this was a proposal for the indicator API’s to be an *external* dependency for Gnome. That means, Gnome apps can use those API’s *optionally* when they are being run on a platform where they are useful. It has NOTHING to do with the core Gnome vision. External API’s exist precisely BECAUSE it’s useful to encourage people to use Gnome apps on all sorts of platforms, including proprietary ones like Windows and MacOS and Solaris, and they should shine there too.

So the premier reason given for the rejection of these API’s is a reason that, as best we can tell, has never been used against an external dependency proposal before: “it’s different to Gnome”. At the heart of this statement is something deeper: “it’s competition with an idea someone in Gnome wants to pursue”.

What made this single statement heartbreaking for me to see was that it spoke clearly to the end of one of Gnome’s core values: code talks. Here we had API’s which were real, tested code, with patches to many Gnome apps available, that implemented a spec that had been extensively discussed on FreeDesktop.org. This was real code. Yet it was blocked because someone – a Gnome Shell designer – wanted to explore other ideas, ideas which at the time were not working code at all. There’s been a lot of commentary on that decision. Most recently, Aaron Seigo pointed out that this decision was as much a rejection of cross-desktop standards as it was a rejection of Canonical’s code.

Now, I can tell you that I was pretty disgusted with this result.

We had described the work we wanted to do (cleaning up the panel, turning panel icons into menus) to the Gnome Shell designers at the 2008 UX hackfest. McCann denies knowledge today, but it was a clear decision on our part to talk about this work with him at the time, it was reported to me that the conversation had happened, and that we’d received the assurance that such work would be “a valued contribution to the shell”. Clearly, by the time it was delivered, McCann had decided that such assurances were not binding, and that his interest in an alternative panel story trumped both that assurance and the now-extant FreeDesktop.org discussions and spec.

But that’s not the focus of this blog. My focus here is on the management of healthy competition. And external dependencies are the perfect way to do so: they signal that there is a core strategy (in this case whatever Jon McCann wants to do with the panel) and yet there are also other, valid approaches which Gnome apps can embrace. This decision failed to grab that opportunity with both hands. It said “we don’t want this competition WITHIN Gnome”. But the decision cannot remove the competitive force. What that means is that the balance was shifted to competition WITH Gnome.

probably depends on GtkApplication, and would need integration in GTK+ itself

Clearly, both of these positions are flawed. The architecture of the indicator work was designed both for backward compatibility with the systray at the time, and for easy adoption. We have lots of apps using the API’s without either of these points being the case.

we wished there was some constructive discussion around it, pushed by the libappindicator developers; but it didn’t happen

We made the proposal, it was rejected. I can tell you that the people who worked on the proposal consider themselves Gnome people, and they feel they did what was required, and stopped when it was clear they were not going to be accepted. I’ve had people point to this bullet and say “you should have pushed harder”. But proposing an *external* dependency is not the same as trying to convince Shell to adopt something as the mainstream effort. It’s saying “hey, here’s a valid set of API’s apps might want to embrace, let’s let them do so”.

there’s nothing in GNOME needing it

This is a very interesting comment. It’s saying “no Gnome apps have used these API’s”. But the Gnome apps in question were looking to this very process for approval of their desire to use the API’s. You cannot have a process to pre-approve API’s, then decline to do so because “nobody has used the API’s which are not yet approved”. You’re either saying “we just rubber stamp stuff here, go ahead and use whatever you want”, or you’re being asinine.

It’s also saying that Unity is not “in GNOME”. Clearly, a lot of Unity work depends on the adoption of these API’s for a smooth and well-designed panel experience. So once again, we have a statement that Unity is “competition with Gnome” and not “competition within Gnome”.

And finally, it’s predicating this decision on the idea being “in Gnome” is the sole criterion of goodness. There is a cross-desktop specification which defines the appindicator work clearly. The fact that KDE apps Just Work on Unity is thanks to the work done to make this a standard. Gnome devs participated in the process, but appeared not to stick with it. Many or most of the issues they raised were either addressed in the spec or in the implementations of it. They say now that they were not taken seriously, but a reading of the mailing list threads suggests otherwise.

It’s my view that cross-desktop standards are really important. We host both Kubuntu and Ubuntu under our banner, and without such collaboration, that would be virtually impossible. I want Banshee to work as well under Kubuntu as Amarok can under Ubuntu.

What can be done?

This is a critical juncture for the leadership of Gnome. I’ll state plainly that I feel the long tail of good-hearted contributors to Gnome and Gnome applications are being let down by a decision-making process that has let competitive dynamics diminish the scope of Gnome itself. Ideas that are not generated “at the core” have to fight incredibly and unnecessarily hard to get oxygen. Ask the Zeitgeist team. Federico is a hero, but getting room for ideas to be explored should not feel like a frontal assault on a machine gun post.

This is no way to lead a project. This is a recipe for a project that loses great people to environments that are more open to different ways of seeing the world. Elementary. Unity.

Embracing those other ideas and allowing them to compete happily and healthily is the only way to keep the innovation they bring inside your brand. Otherwise, you’re doomed to watching them innovate and then having to “relayout” your own efforts to keep up, badmouthing them in the process.

We started this with a strong, clear statement: Unity is a shell for Gnome. Now Gnome leadership have to decide if they want the fruit of that competition to be an asset to Gnome, or not.

A blessing in disguise

Aaron’s blog post made me think that the right way forward might be to bolster and strengthen the forum for cross-desktop collaboration: FreeDesktop.org.

I have little optimism that the internal code dynamics of Gnome can be fixed – I have seen too many cases where a patch which implements something needed by Unity is dissed, then reimplemented differently, or simply left to rot, to believe that the maintainers in Gnome who have a competitive interest on one side or the other will provide a level playing field for this competition.

However, we have shown a good ability to collaborate around FD.o with KDE and other projects. Perhaps we could strengthen FreeDesktop.org and focus our efforts at collaboration around the definition of standards there. Gnome has failed to take that forum seriously, as evidenced by the frustrations expressed elsewhere. But perhaps if we had both Unity and KDE working well there, Gnome might take a different view. And that would be very good for the free software desktop.

This entry was posted
on Thursday, March 10th, 2011 at 8:56 am and is filed under free software, thoughts.
You can follow any responses to this entry through the
RSS 2.0 feed.
Both comments and pings are currently closed.

189 Responses to “Internal competition is healthy, but depends on strong and mature leadership”

I think having different “shells” really is not a big deal. So long as GNOME apps behave properly across both shells, the platform remains whole; all there are is some different look/feel issues, none of which are unfamiliar to Unix. In times past (and currently among the most technically clued users), people use an incredible variety of window managers, even if they might run some GNOME and/or KDE apps.

What I’m much more concerned about is Canonical’s intention to ditch X11. This will be incredibly harmful to the Unix platform, and IMO any Linux distro that does this without *much* better reasons than what Canonical has provided should be abandoned ASAP. As soon as alternatives to X11 become commonplace (provided this plan is not abandoned), we lose the common platform which has bound most varieties of Unix together for a very long time. We lose network transparency (and the managability that comes with it). We lose window managers. As software developers, we need to decide what we’re targeting for something much more critical than ALSA versus OSS. There’s no point squabbling over fragmentation of non-library parts of GNOME when Canonical is going to make a shot at destroying a much more longstanding, foundational, and important consensus.

I think the main mistake Mark made was to use GNOME in the first place.
GNOME were always a “me too” desktop group who produce an inferior product from a technical and design point of view, it was just a matter of principle, and not technical, to create something that didn’t use QT because QT was closed at the time. I bet they feel a little stupid now QT is open.
GNOME, Canonical – learn to collaborate and stop working in your elitist silos, use fd.o and discuss with everyone when a spec doesn’t quite meet your needs because at the moment, GNOME especially, is behaving just like Microsoft by going off using their own specifications/standards. Perhaps we could rename GNOME to MSGNOME

Canonical has never said the goal of Ayatana is to differentiate Ubuntu from other Linux distributions. The goal is to explore ideas there around the idea of “focus vs awareness”, and the balance between those two goals. That work is relevant to lots of distributions, code flows into lots of distributions, and ideas flow further. That meme, if you made it up, is broken, and if you’re just passing it on, then it’s toxic.

There’s lot of work to do, yes. But our focus has to be on solving the question “why should end-users and the ecosystem care about Linux?”. If we can do that, then lots of the problems you’re describing will solve themselves. We’ve seen most major manufacturers move to open source once they have a big enough market for their drivers, for example, because it’s simply the only way to make things work everywhere that Linux wants to be. But getting a big enough wave of adoption – THAT’s the challenge, and that’s where we’ve focused all our efforts.

You’re right, the markets of Canonical and Red Hat are different, with little cross-over. But the Red Hat *desktop* team, which is not specifically tied to Red Hat’s markets, would naturally feel differently.

[…] Mark says: I have little optimism that the internal code dynamics of Gnome can be fixed – I have seen too many cases where a patch which implements something needed by Unity is dissed, then reimplemented differently, or simply left to rot… […]

@Mark: Boet, I’m from SA like you are, so you’d tend to normally get my sympathies more than people from GNOME would but honestly, from where I’m standing, you’re on pretty shaky ground. Some points:

1. You talk about wanting to improve things for the end user. I’m not too sure which end users you’re talking about, because fights like this generally only make things worse for those who, you know, just want a free, easy to use OS with lots of apps. Linux apps are still generally behind in both functionality and usability compared to Windows and Mac apps. You should be working here to improve this, not making drama about Desktop UXs.
2. From my point of view as a mostly Mac OSX and sometimes iOS user it’s looking like you’ve traded the Linux desktop Windows catch-up story for a Mac OSX/iOS catch up story. Good luck with that because while Ubuntu definitely looks better than any other distro, it’s still miniscule in the real world. Tell me how many people have left Windows and Mac OSX for Ubuntu? NO, I didn’t think that many did either.
3. Again, personally, U10.10 will be my last Ubuntu desktop for the foreseeable future. I had the mobile version of 10.04 and 10.10 on my netbook and I must say that the constant UX changes every release finally got irritating enough that I decided that I’ll go with something that I know works. In other words, your constant push for new and better is alienating some people. I don’t know how many, but enough to start pushing the more flexible distro, Mint closer to where Ubuntu is, closely followed by OpenSuSE and Fedora.
4. Linux does not and will not supplant Windows or Mac OSX in enterprises, neither currently or for the foreseeable future. Canonical is STILL not generating any profit and the drama behind the Unity and Wayland decisions will not help your cause.
5. Taking a step back from the Must-release-new-crap every six months schedule would allow you to take more time to work better with those people you’re having difficulty working with. The end result would benefit us all, not just you.
6. You’re not Steve Jobs, and you really don’t want to be. Keep that in mind. Also keep in mind that he has a lot of excellent, working software on his platform. You don’t and until you do, all your desktop efforts will come to naught compared to the commercial software world.

I’m not pro Unity nor Gnome-Shell. I’d like to see ideas develop and innovate in products, I don’t care who implements what, just let each one it’s freedom of choice, users and developers. If you’re aren’t able to collaborate then make it on your own. Life is too short for wasting time in destructive matters.

humble user says “Hope that Apple won’t sue Canonical for imitating Overlay Scrollbars.” Oh my God, I just congratulated Mark in his previous post about the scroll bar thingy. Well Mark, 0 marks for that and 100 for copying the idea once again. btw have u applied for his post at apple?

[…] least July 2010, Mark has made a number of claims about the User Experience Hackfest. They are all roughly of this form: We had described the work we wanted to do (cleaning up the panel, turning panel icons into menus) […]

These are commercial wars. The people who are fighting are having some Money (consulting opportunity) at stake. They are trying to shame Canonical because they are jealous of its success.

All these guys have commercial company to back them up and these wars are not going to stop!

Linux desktop community has a history on these flame wars. They are so used to sham Microsoft. Did it help Linux desktop?

Canonical brought some light to Linux Desktop by bringing us Ubuntu. Later Canonical learnt that Gnome is not the best for end users. Canonical should have chosen KDE. They didn’t, because Mark Shuttleworth was a long time Gnome developer. Mark, you made a wrong decision by making Ubuntu default Gnome in the first place. Had you associated with KDE, we would have got a great linux desktop which Apple and Microsoft could not even dream.

I hope this is the first step towards Kubuntu becoming the primary flavor of Ubuntu. It’s been obvious to me for a long time that KDE is future-oriented, while GNOME is half stuck-in-the-past and half trying-to-reinvent-the-wheel. KDE is making real progress, while GNOME is half stagnant and half self-absorbed and deluded.

This is my perception of the whole–I’m sure there are good folks in GNOME, but it seems like the inmates are running the asylum. Hopefully the good guys will abandon ship before the cookie crumbles, while the rest of them keep shooting themselves in the feet. I’m sure KDE would be glad to have some more good programmers.

Wow, lots of noise here. I just feel like popping up with a “me too” re: GNOME Shell looking like it would actually have some major benefits to my workflow [in the legal industry]. My experience as a GNOME user for about 5+ years makes me suspect it’s a mess underneath, but if it’s “good enough”…

Unity, in turn, looks good for grandma. Which the world also needs. [But I’m not grandma, so prerogatives and all that.] Unfortunately it does get you tagged for chasing Apple, because Apple at least has a product, while environments geared toward supporting a “workflow” beyond a bunch of terminal windows are a bit thin on the ground right now [those are So ’90s!].

Any chance we can stop pretending the UI (“UX?”) is the OS and just accept that one distro of kernel and display server can support many choices of desktop environment? I get that K/X/Edu/… provide a final layer of spackle to resolve conflicts come release days, but how about we work on cutting it down rather than forking it out?

UI should be more of a Browser Ballot situation than some sort of mark you must wear for life. Even if everything is doomed to have to deal with what it can scrape up over DBus / what can be agreed upon through the likes of FreeDesktop.org. Now that it’s *not* expensive in hardware terms to keep all of GNOME, GTK, KDE, Qt, and Java, and Flash, and Android, and … [and a couple VMs while you’re at it] resident at once … well, if people flopped around more, maybe they’d be more inspired to fill the gaps in each.

Eh, one other undignified “waah” while I’m posting anonymously (though this might identify me!) – my personal preference for GNOME has little to do with the underpinnings and a lot to do with GTK/GNOMEy apps making relatively good use of language while KDE jumped straight into the “hieroglyphic” iconic strafe-for-tooltips approach.

That’s been changing a bit lately – some of the most useful GNOME apps I’m using just now have no “Icons and Text” or “Text-Only” modes for their toolbars – but it might still be worth pointing out.

[Of course Unity gets by without trying to provide the direct-access-to-‘data’-objects sugar that GNOME Shell is experimenting with, so there’s less call for text if each app has a ‘branding’. I suspect some FOSS devs would rather spend more time writing unique code and less time developing unique brandings, though, especially as the namespace gets used up and we startr appendingr “r” tor everythingr forr ther 2009r modelr yearr.]

Tangentially: When is any annoying-notification-popup system going to give us something we can click on to scroll and filter the log of Notifications, anyway? And to ‘mute’ through one location rather than having to find where each app hides its options?

Just tried Unity for the first time tonight. Looks great, feels slick, even though I think like many Linux users, I may not leave my compiz cube + Docky for it. I would recommend it for a new Linux user though. Mark, you’re the man, go with it. I’m just grateful for what you’ve done for the Linux community; I don’t see where people get off attacking your work or that of the Canonical team. What happened to congratulating you all on your dedication and self-sacrifice? Even if I don’t use Unity myself (who knows, maybe I’ll warm up to it – it does have a cozy feeling to it after all), I heartily support the move and the intentions of the Ubuntu team. I think the Ayatana concept is great, the right track for sure.

I don’t think I would be using Linux if it weren’t for Ubuntu and, of course, Canonical. But then I don’t think Linux would be at all what it is today without Ubuntu. Back in the day, I tried lots of different distros, none really worked for me out of the box until Ubuntu came along. I’m obviously not alone. Having made the switch from Windows for good sometime around Dapper, I can’t bear to use even Windows 7 anymore. Not a single Ubuntu release (not even Edgy) made me regret the move. Your team made my life better; or at least, allowed Linux to make my life better. Isn’t that what’s important? You all deserve pats on the back for what you’ve done to make Linux truly useable in a way that gnome alone never could have. Now you go the next step towards making people’s lives easier and all us nerds can do is complain? I can’t see room for anything but applause – I guess some people just like to complain.

Sometimes what leader think is not what community can accept. I feel the best way is to make a direct discussion with the Ubuntu and Kubuntu users about their experience with GNOME or KDE. I believe some will give harsh critic. But all of us just wanted the best for Ubuntu or Kubuntu. When you do a poll of suggestion then we will know what is the best for development. The most important matter is to get a true fact and go towards it. Or else Ubuntu will go into disaster which is a sad sight to be seen and a victory for money making company.

Well, competition is very good. I have been testing Ubuntu 11.04 beta for a couple of days. There’s lot’s of good stuff to right about, like the improvements in the software centre and even the global menu looks nice, but…. well but. Here are some critical remarks from an ubuntu supporter.

Switching between applications with the Ubuntu-Dock is a nuisance. The dock disappears and does not reappear when you hover with the mouse in the area of the dock. You have to click the ubuntu-icon twice. I found out by coincidence that it appears when using the window (urg) key. But most people want to use their mouse and there is no convenient way for a mouse user.

Adding new apps to the dock doesn’t work as expected by dragging and dropping. Unfortunately, neither gnome-do nor kupfer work with unity. But this may have been done on purpose. It took a while to find out and this time was wasted and frustrating.

The application menu looks slick but coming from gnome I find it difficult to find the apps. I am used to using gnome-do for a quick search. After some frustrations I figured out that urg-a (application search) and urg (file search) does the job.

There are quite a lot of things we users have to adapt to and learn. I don’t have a final opinion yet, but the process of adapting can be frustrating. A quick and easy tutorial for noobs would be much appreciated.

Well, it took me three days to find out that you have to move the mouse beyond the ubuntu symbol way into the corner of the screen in order to display the side dock. These small changes can make a whole lot of difference in terms of user experience.

1. I find looking for applications and files easier using the gnome 2.x drop down menus. This is faster – for me – if I am looking for an application.

2. Several applications like gnome do, docky don’t work with unity. These two applications can actually be replaced. But I use a clipboard manager and the force-quit application in the old gnome 2.x panel. The unity panel doesn’t feature these applications and doesn’t appear to be customizable. I couldn’t find replacements for these applications. Force-quitting an application is something I need to do occasionally. I frequently Copy texts between different applications, which is not possible by default using unity. I couldn’t find a replacement for my clip-board manager parcellite. That was the tipping point for me against unity.

Global menu: It has the same drawbacks as the apple implementation. It is not always clear which application occupies the global menu. Therefore, the global menu should start with the icon of the active application. Quit and minimize should pop up when you press the icon. Pressing the icon has already been learned when using the ubuntu dock. Next to the icon the application menu should appear. Hiding the menus under a name just adds to the initial confusion. A non-maximized application should never occupy the global menu. That’s non-intuitive and has no advantages. The only reason for the global menu is a better use of screen space when the application is maximized. Otherwise it is a prime source of confusion, which should be minimized.

Ubuntu dock:

1. The dock should appear when you hover over the ubuntu icon. This is a good solution because no conflicts with controls of particular applications may occur. This would be a real advantage over standard docks.

2. The standard configuration shouldn’t have plural workspaces and the workspace switcher. Plural workspaces are a geek feature. My dad never got the hang of it, therefore I got rid of them on his computer. Geeks should have an easy way of customizing the behaviour of the ubuntu dock.

3. The dock should not hide intelligently but stay on top all of the time in the standard configuration. This is just confusing for first time users or casual users. I like it, but I know it’s a source of confusion for lots of noobs. The geeks can easily configure the dock according to their needs.

This is my last point: Both the ubuntu dock and the top panel should be easily customizable for non-pro but advanced users. I don’t like the detour to the compiz settings manager. I like docky and the old gnome 2.x panel a lot in this respect.

A few words of praise: The search for applications and files has been implemented very well. It makes a lot of sense to use the whole screen space in order to display the most frequently and installed applications. It also looks really good. I like the way the keyboard short cuts are displayed in the ubuntu dock. The keyboard controls are very well thought out. Kudos to ubuntu!