Notes on the Future of GNOME: Problems and Questions

Ok, now that I’ve already made my point about our great achievements, it’s time to talk about the big questions. I ended up writing too much, sorry :-P I won’t discuss about solutions or practical actions in this post because (obviously, I don’t have all the answers and) I prefer to separately talk about solutions and practical actions in another post. I’ll try to bring the topics that have been looping in my head (for a quite long time already) with regards to our beloved project. They overlap in many ways with the opinion of some people who have already commented on thedecadence“.

One the most important steps on the process of finding a good solution for a problem is to define the problem. People have different expectations and perspectives about GNOME and hence they define the “decadence” and, consequently, the possible solutions, in different ways. First of all, a more fundamental question: do we have a problem? We already have a great desktop environment for the current standards and demands. So, what is “wrong” here? From what I can see, the problem can be defined in terms of three aspects: Audience, Position and Process. All those have something to do with the fact that GNOME is getting “out of syncwith… something. I fully agree with Rodney, Havoc, Mikkel and others here: the whole desktop concept itself is some sort of dead-end (even though we could be innovating much more in this area) and is, in a certain way, getting outdated (considering the new ways people have been using technology nowadays). Because of that, I think it’s quite dangerous to exclusively stick with the “desktop” goal because we may be missing a lot of opportunities (and even get into an actual decadence situation) in the near future if we keep doing the same things in the exact same way. (One might argue that we already have GNOME Mobile and all. However, I’d say that this is not enough because 1) the mobile front has been done in a kind of “marginal” way inside the project 2) “mobile” is just one among many possible paths). So, yes, we do need to open GNOME for a whole new range of possibilities in a consistent way but first we need to create the right environment for innovation.

Anyway, let me talk about each part of this problem. Those might sound a little abstract sometimes but, in my opinion,  they summarize the big questions we need to answer now.

Audience is about who we’re targetting and, consequently, the fundamental definition and goals of GNOME. I’ve just said that we already have a great desktop. However, we can see quite often people complaining about the lack of innovation, the need for new apps and more eye-candy, and so on. Consequently, we have quite often those endless discussions about the future of GNOME and where we should be heading towards: 3D desktop? Online desktop? Corporate desktop? Topaz? The thing is: everyone is right in a way. Why? Because we don’t have a clearly-defined audience (something that Havoc said 3 years ago).

When I look at what we’ve done so far, I would say we got to develop a simple, intuitive, functional desktop environment that works pretty well on the corporate world and good enough for home users. From my perspective, in terms of user experience, we’re somewhere between MS Windows and MacOS: we’re not as boring as MS Windows (that works relatively well as a productivity/corporate type experience) and not as stylish as MacOS (that aims to provide a more nichey media/life experience on computers). Also, we’re not clearly the best of breed on any of those areas: corporate, life, media, or any other experiences (Don’t get me wrong here: I think we do an amazing work in general. I just consider that we don’t provide an extremely appealing experience on any of those areas *yet*). I’m talking about desktop user experiences here but we can’t ignore the big changes in the personal computing field through the countless types of mobile devices, smart appliances, online apps and services, etc, that demand more and more the hability to customize, adapt and extend existing open source/free technologies in order to deliver competitive and exciting products. With that said, some fundamental questions arise:

  1. Is it doable to stick only with development a desktop environment in GNOME?
  2. Which kind of desktop do we aim to develop? A corporate type? A media experience type? Something else? Do we really have to choose?
  3. Are we responding properly to the demand for the creation of custom user experiences (for distros, mobile devices, online services, etc) with a consistent, productive and powerful software platform?

About 1 and 3, yes, we have GNOME Mobile – which aims to provide a standard architecture and platform that can be used by companies to develop GNOME-based mobile devices. But how strongly does GNOME Mobile define GNOME as a whole? There are some good lessons we can take from GNOME Mobile in terms of development process and organization (more on that in the next post). It’s pretty clear that the strongest point of connection between GNOME Mobile and GNOME is our platform. However, GNOME Mobile is not working as integrated as it should inside GNOME because we still define us as a “desktop project”. So, my short answers to those questions are:

  1. No, we should expand the definition and goals of GNOME to embrace the diversity of ways people are (and will be) using technology today (and in the near future).
  2. I don’t think we need to choose. What we need is to clearly define and maybe separate different products around different GNOME audiences.
  3. No, I think we’re not properly organized to provide a powerful platform for different user experiences because, as I said, we still define ourselves as a “desktop project”. In my opinion, the platform should be the core of GNOME and GNOME Mobile should be closer and share more inside the major activities of the project.

The Audience issues presented above have a tight connection with the relationship between GNOME and distributors. That takes me to the Position issues.

Position is about where we place GNOME in the innovation ecosystem. So far, the relationship between GNOME and distributors is so that we release our official modules (organized inside the desktop, platform, admin, devtools and bindings suites) and distributors adapt and package those modules to integrate in their systems. Normally, they also add a bunch of modules that were (fully or partially) developed with GNOME platform but are not officially part of GNOME suites. Then, when everything is integrated and stable, distributors release their products with GNOME. This model has two interesting aspects.

The first one is: GNOME is invisible to users. From end-users perspective, they are using Ubuntu, Fedora, openSUSE, Foresight, Debian, Gentoo, (add-your-favorite-distro-here) on their personal computers, not GNOME. (Note that I’m not talking about geeky users but about real end-users who don’t know much about technology). This is (and will be) even stronger on consumer products using GNOME platform such as internet tablets, cell phones, PDAs, etc. To verify that, just pretend you’re just an end-user and have a look at the websites of most of desktop distros: they talk about desktop but rarely mention GNOME. (Note that I’m not making any judgements about this here. I’m trying to just bring the fact to the table).

The second aspect is that distributors redefine the user experience. Most of distributors change in some way the default GNOME desktop to fit and integrate nicely with their products. openSUSE has a completely different panel layout and use gnome-main-menu. Most of distros use Firefox instead of Epiphany. Latest releases of the major desktop distros ship with Compiz by default instead of Metacity. Also, they integrate desktop modules that are not directly provided by GNOME: Pidgin for instant messaging, Rhythmbox or Banshee for music management, F-Spot or GThumb for photo management,  Beagle or Tracker for desktop search, and the long list continues.

So, based on those aspects, what can we say? First: even with our current development process where we release suites of official modules to distributors, it’s not clear inside GNOME whether we are “user experience definers” or “component providers for custom user experiences”. Currently, we’re defining most of the desktop user experience through our official modules. However, because of the way we define our final product (the suites of official modules) there are certain areas where we simply don’t reach an agreement (more on that later). Why haven’t we ever chosen a “official” music player? Why no photo management app in the desktop? Gimmie or gnome-main-menu or just keep the menu bar? Why is there so much discussion around the inclusion of Empathy? The fact is, for some reason, there are certain topics around the user experience that we just prefer to not decide about. This makes us stay in a unclear position: we kind of define the experience – but only on certain topics (this has a lot to do with the lack of a defined audience and our development process). That brings me the following questions:

  1. Should GNOME be a “user experience definer” or “component provider”? Do we need to choose?
  2. Does the GNOME decisions about the official modules really matter? If so, at what level?

My answers to those questions are:

  1. We should be component providers – but in a special way. In my opinion, we should platformize the user experience in a way that our modules can be easily reused in different contexts or products. In practice, this means: providing highly configurable and pluggable core components; well-defined services D-Bus APIs so that we easily replace compliant implementations with same interface; refreshed toolkit which embeds sexy UI elements and interactions; and more. In order to properly be component providers, we would need to provide a super-powerful platform though. Yes, that would be a big challenge (more on that in the next post).
  2. Yes, our module decisions matter. But they only *really* matter if they are related either to platform or to the “core” desktop components (panel, session, nautilus, keyring, settings daemon, capplets, etc).

So, in reality, the ecosystem around GNOME is demanding a lot of flexibility in the platform and desktop – specially from stakeholders producing mobile devices and other custom user experiences based on GNOME. We need to clarify our position and goals inside this ecosystem so that we can embrace all the great possibilities we have inside our community. We should redefine GNOME as a platform for intuitive and exciting user experience with several reference products for different audiences around it. In order to redefine the project, we need to rethink the way we do things. Let’s talk about the Process problem.

Process is about how we do things. As I said in my last post, the same process that brings so many benefits is the one that’s making GNOME stall somehow. Why? Because our current process is organized around the fact that we’re in deep maintenance mode. Actually, in a way, we’ve been in maintainance mode since the 2.0 release. The main problem with this mode is that all decisions in GNOME are done based the tacit assumption that we should never break anything (as if the maintenance mode is a given). This brings a very good feeling that everything is stable and predictable most the time. And that’s very true actually. However, having stability (in sense of “no big changes so everything works, cool”) for a too long period is boooooring and brings all the problems of Audience and Position (because with technology, everything gets outdated very quickly). Let me talk about some aspects of this maintenance mode in GNOME

The first one is that we don’t have a “big picture” to base our decisions on 2.x. Yes, we are basically “adding or replacing stuff” in the same good old stack for quite some time already. The problem here is: the big picture of 2.x is kind of “done”, “given”. We’re basically in passive mode, just waiting for contributors to decide to propose and include random modules in one of our suites. Some people may argue that we’re constantly improving the platform and desktop by revamping certain components every now and then and that shows we’re moving the project forward. In my opinion, this is not entirely true. Yes, we’ve been doing some nice improvements in 2.x but the requirement to never break anything (associated with the Audience and Position problems) almost completely blocks innovation inside GNOME and very often moves the cool innovation work to distributors side (because they can break and change anything as they want anyway). And, unfortunately, many times we end up not being able to accept distros’ innovation work because we can’t break anything. Note that I’m not saying that stability is bad. My point here is that we should have official long-term break points in GNOME. That would be an enforcement for the community to rethink the big picture from time to time (and not wait for some magic “vision” to change the direction of the project).

The second aspect is the decision making problem. In our current organization of the development process, no one has the official role of deciding about the general direction of the project. Some people say we have a problem of leadership in GNOME. This is partially true. We have the core contributors who are the ones who define the project’s direction in practice. So, we have leaders. However, this leadership is quite fragmented and doesn’t have any official position in our development process. Therefore, the real problem is in the process: the release team is responsible for maintaining the correctness and coherence of the development but not for defining the content. There’s no one in charge of getting the big picture and proposing a development agenda. We need to accept the fact that we need domain/suite maintainers who are responsible for proposing and having the last word about the content and roadmap for certain domains/suites. The recent Roadmap process was a nice achievement on spreading the word (inside and outside our community) about what we’re doing. Not enough to drive the project to a new direction because we’re in maintainance mode after all.

Lastly, the maintenance mode involves a specific definition of our suites and hence the way we deal with third-party applications. The current definition of our suites is too closed and not so flexible. There’s a large amount of apps being developed based on our platform that are simply ignored by us. Of course, there’s is a lot of crappy stuff our there but, on the other hand, there’s a good number of high-quality GNOME-based horizontal and vertical apps (photo managers, media managers, recipes managers, book collection managers, stock managers, web widgets, sexy panel replacements, etc) that we don’t keep close to us in any way. Because of that, we miss the opportunity to get more contributors and all the potential sinergy that those apps could bring to GNOME and our distributors. We need to provide a more clear and interesting place for high-quality third-party apps in GNOME. Those apps are an important part of our innovation ecosystem.

So, from my perspective, considering those three aspects of the problem (Audience, Position and Process), a good solution for it should involve:

  1. Expading the definition and goals of GNOME in order to embrace the diversity around us;
  2. Defining clear audiences for our products;
  3. Redefining the position of GNOME inside our ecosystem so that we bring innovation inside through a powerful platform;
  4. Rethinking the development process so that we can: a) have an efficient decision-making chain b) “think from scratch” and break things from time to time c) bring third-party development closer to us.

Also, it’s pretty clear to me (and I know other people agree with me) that GNOME 3.0 should not be just “a next generation desktop” but a new way of defining, organizing and developing GNOME. I’m pretty confident that if we do it properly, innovation will naturally take place. Yes, I know that there are big challenges involved here in terms of resources and community consensus. But those are part of any big change. One of the goals of this post is also to try to propose a (kind of) well-defined set of topics for this “decadence” discussion.

I know that dealing with all questions brought here involves a huge amount of work. However, if we manage to respond in practice at least to a good part of those, I would be extremely happy. :-) Therefore, it’s quite important that we take the opportunity brought by this discussion to draw some concrete proposals for GNOME 3.0. In my opinion, the Release Team has an important role on the coordination of the discussions about the needed process changes and the GNOME Foundation Board should support the community by sponsoring hackfests, bringing advisory board members to actively participate on this discussion, and much more. Coincidentaly, I’m part of both (yay!) and I’ll do my best (together with my fellow release team and board members and the community in general) to make this happen. Honestly, I don’t know yet when I’m gonna write the next post about possible solutions and practical actions because, just like my evil twin, I’m still “still working with some great people on expressing our opinion in a understandable way”. I’m sure GUADEC will be a great opportunity to boost this discussion.

If you read all this, you’re my hero! Thanks! :-)

GNOME Foundation Annual Report 2007 released!

cover.pngbackcover1.png

In 2006, Dave Neary and others started this new tradition by producing the first GNOME Foundation annual report which has got very positive response from community. So, we decided to follow the new tradition by preparing the GNOME Foundation annual report 2007!

I’ve been slowly working on it for a few months with invaluable contributions from several people. The report is now available (1860 KB, PDF) in GNOME Foundation’s website.

We’ll soon send nice hard copies of the report to the Advisory Board members and existing GNOME event boxes. Our plan is to also print a bunch of extra copies to be used for promoting GNOME on events around the world. Feel free to request some copies for your local GNOME event.

This year, we chose Lulu.com as the printing service in order to allow us to easily print more copies on demand and to make it possible to anyone to order personal hard copies by just paying for the printing (the price goes 100% to Lulu.com, no revenues to GNOME Foundation). You can buy a hard copy of this report directly from Lulu.com here.

Many thanks to:

  • the writers: Federico Mena-Quintero, Sayamindu Dasgupta, Vincent Untz and Behdad Esfahbod;
  • the photographers: Frederic Crozat, Michael Dominic, Vincent Untz, Kushal Das, Juan Carlos Inostroza and Garrett LeSage;
  • the designer: Andreas Nilsson;
  • the text reviewers: Paul Cutler and Stephanie Watson;
  • the adviser: Dave Neary.

I hope you enjoy it!

Update 1: In the first paragraph, when I wrote “Last year”, I actually meant “In 2006”. I fixed this to add clarity. :-)

Update 2: The price for printing the report at Lulu.com doesn’t include any revenue to the GNOME Foundation! That’s the price of the printing service which goes 100% to Lulu.com! Yes, it’s relatively expensive.

FOSDEM

It’s been more than 2 weeks since FOSDEM and I haven’t written anything about it…

As I said before, this was my first FOSDEM. I have to say that it is a really nice FLOSS conference. It’s different than any other conference I’ve ever attended before because it’s very focused on communities and development.

I arrived on Friday morning with some other Nokians (Tommi, Marius, Daniel, Johan, Lassi and Zeeshan). It was pretty nice to arrive early because we had the whole day for some sightseeing in Brussels. Found Vincent walking randomly in the city and we had this nice chat about collaboration, communities, GNOME, Nokia,  roadmap, etc. The beer event in the evening was fun but too packed.

I prefered to stay most of the time in the GNOME booth and because of that I didn’t see many talks. This was a nice way to meet a lot of new people and hang out with some old GNOME fellows. The OLPC’s XO brought a lot of curious people to our booth. We sold quite many t-shirts and distributed a lot of promotion materials. I saw Ken’s talk about GNOME Developer Kit and Emmanuele‘s talk about Clutter talk. Both quite interesting. It’s very nice to see OH guys trying to bring the case of Clutter as an animation framework for desktop applications. We need to explore this more. It seems that Havoc has some interesting ideas on this regard (to be discussed during the GTK+ Hackfest this week). Unfortunately, I missed Alp’s WebKit talk. Vincent and I had this quick chat with Cornelius Schumacher (from KDE e.V.) about possible paths for collaboration between GNOME and KDE.

Thanks everyone who made my first FOSDEM a really nice experience! I took some pictures, all of them are in this album.

People menu: online desktop and instant messaging in GNOME

Just after GUADEC, I made some general comments about this whole “online desktop” idea that was nicely presented by Havoc and Bryan in Birmingham. My main argument is that we should not have a separate “online desktop mode” but try to turn our desktop into a web-aware environment.

Now that Empathy has been proposed for GNOME 2.22, I think it’s time to start thinking about interesting ways of integrating the instant messaging stuff and online desktop stack in the desktop (note that there’s no garantee that Empathy and online desktop will be accepted as official modules but, as a strong supported, I still think it makes sense to bring those ideas at this moment). In my opinion, we should take advantage of the fact that Empathy is a framework-ish aproach for instant messaging (not simply a standalone application) to bring a seamless integration of its features in the desktop environment.

So, I had this idea (that should be more detailed and discussed) of a possible (and feasible) way of integrating Empathy and online desktop stuff in the desktop: a People menu in main menu bar.

People menu

People menu mockup

Some general comments:

  • The People menu should be optional and only activated if online desktop and/or Empathy are available. There will be many users who still want to use their favorite messenger and don’t want to use this online desktop thing anyway
  • The “About me” would run the “About me” capplet which would need to have some additional features for setting up messenger accounts and defining your web presence on several online services (online desktop integration)
  • The “Contacts” menu item could run an application like Soylent with easy access to your messenger and Evolution contacts to start different communication ways (e-mail, chat, video call, etc)
  • The “Messenger” menu item would connect you to your configured messenger services and show an icon the notification area
  • The “Home page” would open the browser in your GNOME online desktop home page
  • The “Web activities” would start the now called Mugshot client which notifies you about the web activities of your friends
  • The “Web board” would activate the Bigboard sidepanel with lots of cool web stuff (I think Web board is a more appropriate name from the user point of view)
  • The “Recent talks” is obvious :-)

This is just an initial/rough idea with the aim of setting some kind of direction on how we could integrate instant messaging and online desktop in GNOME. There are still many things to discuss and decide.

Comments?

GNOME Brasil News

GNOME Brasil Website

GNOME Brasil, the brazilian GNOME users and developers group, now has a brand new and sexy collaborative website. It’s hosted on SoftwareLivre.org‘s TWiki server which bring us closer to the wider free software brazilian community.

Big thanks to:

  • Vicente for bringing this idea, producing part of the initial content and coordinating most of the process
  • Vinicius for the great design work
  • Aurium for the CSS and TWiki black magic
  • Olav and Terceiro for setting up the domains and servers in GNOME and SoftwareLivre.Org respectively

And that’s not all! The 4th edition of our Fórum GNOME, the main GNOME event in Brazil, will take place in Aracaju/SE inside the 2nd Northeastern Free Software Conference from September 28th to 30th. Our website will be officialy released there! Special thanks to Izabel for organizing  Fórum GNOME this year! Unfortunately, I won’t be able to attend the Fórum this year… I’m sure it will be a nice conference!

For all brazilian GNOMErs out there: go to Aracaju, have fun, and spread the word about our beloved desktop!

Post GUADEC notes (aka GNOME in revolution mode)

This GUADEC brought a lot of momentum to GNOME: fresh new ideas and nice discussions and plans about our future platform and desktop. For the first time in the last 2 years, I have the strong feeling that GNOME is about to switch to a “revolutions mode”. This means that several small and big revolutionary things will start to bubble inside the project from now on. I’m really excited about it! (Obviously, I’m not saying that nothing interesting happened before this GUADEC. It’s just that now I see more cohesion around some goals inside community.)

The Online Desktop

The Online Desktop is something that, if done right, can bring a big and positive impact on the GNOME user experience. What I like about this idea:

  • It takes advantage of the whole world of cool web services out there
  • It makes the GNOME Desktop much more fun (I remember Vincent commented about it 2 years ago… He is totally right!)
  • Consequently, it brings GNOME much closer to the user who uses the computer to strengthen his/her social and emotional ties

I don’t think we should work on an “online mode” (with a special UI) for GNOME Desktop though. IMO, the way to go is to turn GNOME into a “web-aware” desktop environment. some examples:

  • If you’re viewing some photos or watching a video, it should be easy and seamless to upload them to your favorite photo/video sharing web service
  • It should be natural to keep track of what your friends are doing on web (what Mugshot does)
  • When you import some photos from your camera, it should be possible to upload them straight away to the web

Bringing web-awareness to GNOME involves creating a basic platform (mostly a set of D-Bus services and GTK+ widgets) that could be shared by any desktop component who wants to be web-aware. This way those bits can be used on GNOME Mobile as well.

We should not limit ourselves on the data sharing on web services because, in essence, what we want (as users) is to share media with other people. We should consider having an integrated communication framework as part of the Online Desktop effort. Some examples:

  • If you’re viewing some photos or watching a video, it should be easy and seamless to share them with one or two friends (via messenger, e-mail, local network share, etc). If your friends are online you can simply start chatting with them after you shared something with them. Something like Web Swarm (in Mugshot) does for links but for any shared media
  • There should be some central place to start communicating with someone. it doesn’t matter if it’s via e-mail, messenger or whatever else
  • It should be easy to make collaborative work on the same content (documents and media). OLPC is doing a great job on this subject

We already have a lot of code available for covering some of those use cases. Some of them: Conduit for easy syncing with web services, Empathy and Mission Control for a Telepathy-based integrated communication in the desktop, Mugshot (server and client) stack for web services activities tracking, Soylent for “people browsing”, and so on. There will be this big effort to add the “online” bits to applications and other desktop components.

“Bling!” on GNOME

There were some nice talks about adding more “Bling!” to GNOME. It was nice to see things like Clutter, Lowfat, GTK+ 3.0 (oops, 4.0!) discussions, compositing, etc. There two things I’d like comment on:

  • We have this challenge of making GNOME sexier. Ok, cool! But let’s keep this in mind though: we should not make GNOME unusable on a computer without 3D acceleration. At the same time that we want to impress the user with cool effects (which should improve the usability btw), we need keep in mind that there are lots of people using low-power/old computers with GNOME on social projects out there (Brazil has many of those).
  • In order to bring “Bling!” to GNOME in a consistent way, those bits should be in the platform level with components that could be easily reused among applications. Also, we would need to have clear guidelines in HIG. Otherwise we’ll end up in a “Bling!” hell!

GNOME Platform

It was nice to see that important changes are about to come in our platform. Most of them I’ve already commented before: GVFS, GTK+ 3.0, New applet API, GSettings, Mallard and others. Next year will be really nice for GNOME Platform!

People

That’s GNOME: a bunch of extremely talented and generous people working on the common goal of creating free, easy-to-use, and innovative technologies to everyone!

The Drooling Macaque Band @ GUADEC 2007

Great news! The Drooling Macaque Band will make a concert at GUADEC2007 in Birmingham. This is because the conference agenda fits perfectly on ours because it starts in 15th July, just after our concert with Jamiroquai, and goes until 21st of July, just before our concert with U2 and Radiohead. This means that we’re available for the whole conference time and we will make GUADEC 2007 rock even more because…

1. We rock!
2. We play “Wish You Were Here” and “Come Together”
3. We rock!
4. We organize jam sessions which makes everyone have fun
5. We rock!
6. Ah… we rock!

(Hmm, we could make a song out of this…)

Of course we’re a very organized band and have setup a wiki page for GUADEC2007 stuff. If you don’t believe we rock, have a look at some pictures and a video of our previous GUADEC concert at Vilanova (Spain).

It seems the concert will take place on Tuesday night during a cool conference party. If you’re interested in being part of the world famous GNOME band, add your name in the wiki page and be aware that we’ll probably do a rehearsal some day before the concert. Of course, the idea is to give space for a jam after the concert, so if you play some instrument, feel free to add your name there too.

Seriously, this is going to be fun.