Three Point Zero

A wedding and honeymoon have kept me away from this conversation so far. My apologies if I’m beating a dead horse here, but I’ve got to weigh in.

Three point zero without compelling new features is suicide.

If we release a 2.x Gnome as 3.0, we will get close to zero positive press coverage. Forum dwellers will declare Gnome a dead-end, even those that normally defend our small evolutionary releases. Users won’t bother trying it, if they stick with Gnome at all. Potential new developers will become disillusioned with what they perceive to be a boring project. Sulfur will rain from tke sky. Demons will possess our household pets. Disco will make a comeback. Tragedy of tragedies.

If I were some sort of release manager, I would solicit ideas and set a plan. This requires leadership. Somebody has to be willing to say “the buck stops here”. And the community has to be willing to listen to that somebody. Here’s a rough outline of how to set this into motion:

Brainstorming:
Ask the community for ideas. We’re not looking for solid plans here. We want people to toss about all those crazy ideas they’ve had brewing in their heads. Don’t worry about feasibility at this stage. Just write what you’re thinking. Maybe include some ASCII-art mockups.

While we’re at it, get those incredible designers of ours to GIMP together some mockups of how future Gnome should look. Use your imagination. Stir things up. Go wild.

Discussion:
We all come back down to Earth and start discussing these ideas. The whole community is involved in this. We discuss what we like and what we dislike. We talk about feasibility. Developers start talking about plans for how to implement the ideas we like. Yes, we’ll get some bike-shedding. That’s inevitable in a community as big and diverse as ours. But since we have a heroic somebody (or somebodies) to make real decisions, it’s OK. Let people get their thoughts in.

Evaluation:
The release managers make decisions on the ideas. Put everything into one of three categories: Yes, Maybe, and No. The Yes projects are those we write our schedule around. The Maybe projects would be nice, but we’re not going to wait for them. Collect concrete plans from maintainers and developers about how they’re going to do the things they do. Get time estimates. Set a schedule based on those time estimates. Make a decision. This is the part where the community needs to suck it up and recognize that, without somebody making decisions, we won’t get anywhere.

Hacking:
We all make branches and hack away. If you’ve got big things to do for 3.0, leave trunk for continued 2.x development, make a gnome-3-0 branch, and go wild. Hey, this is the part we do best. Enjoy the thrill of hacking on exciting new features. Feel young again.

Brainstorming needs to last at least a month.  Discussion should last another two or three months after that.  And the hacking phase needs at least a year.  If we time it right, we could have a little over a year and take advantage of two Summers of Code.  When we set the schedule, we should set a firm cutoff for new features, but set a slushy 3.0 release timeframe.  Once we’ve hit the freeze, we can re-evaluate things to see how long it will take to get a solid 3.0.  The last thing we want is a 3.0 that’s not really ready.  After all the alphas and betas, make a “developer preview” release that’s almost a 3.0.  Then give everybody a bit more time to polish, document, and translate.

Then, of course, there’s the question of what kind of ideas we’re looking for.  The question is not “Can we technically do this in 2.x?”  The question should be “Does this kick enough ass to justify calling it 3.0?”  Here are some examples:

Platform Enhancements:
Things that offer our developers cool new ways to develop applications.  Havoc talked before about basing GTK+ on a scene-graph system.  Even if that could be done in 2.x, it’s so wicked cool that it deserves the point-oh buzz.  How about an embedded scripting framework?  Or a powerful declarative interface language?  Combine those last two and you could have a really awesome rapid development framework.

Cool New Features:
We’re looking for features that provide a real and obvious enhancement to the user experience.  One possibility I’ve heard lately is a blingy unified desklet/applet system.  If I sat and thought long enough, I’m sure I could come up with others.  Fortunately, the community will gladly provide ideas if you ask them.  We’re a creative bunch.

 Pervasive Ideas:
There’s no shortage of new paradigm ideas in our community.  How about web services integration?  For any given application, it’s just some neat new feature.  But if we do it to 90% of our applications, it’s serious buzz material.  Then you have various projects that are working on people-oriented interfaces.  Lots of buzz, but it needs drive to push it throughout the desktop.  Semantic desktop.  Task-oriented interfaces.  Natural language interfaces.  Whatever.  Have a grand vision?  Sell us on it.

We have some extremely talented hackers in our communities.  We have some incredible designers.  We have the world’s best translation teams.  And we have a lively community of users and enthusiasts with some really great ideas.  What we need is direction, and direction requires leadership.

10 thoughts on “Three Point Zero”

  1. As I’m only loosely following gnome, one big selling point for gnome 3.0 for me personally would be “a better auto” replacement. When I want to start hacking on a project, I don’t want to have to fight with the autotools, ideally I’d only have to svn co the right project and then start hacking right away.

    Don’t get me wrong, autotools might solve the problem, but I’m frequently bitten by them being very hard to use and thus mostly wrong, so often enough I find myself not contributing to a project because the initial barrier is too high.

    Yes, of course such a change can be done without a major version change, but it’s easier then because it becomes a migration point for projects that want to be part of 3.0.

    I agree with you though, gnome needs leadership, decisions like this apparently cannot be made in a huge group.

  2. “Somebody has to be willing to say “the buck stops here”.”

    You misspelled it. Correctly:

    “Stormy has to be willing to say “the buck stops here”.”

    Isn’t this why we have her? 🙂

    Hackers tend either to hack away endlessly, “just this one last feature please” or worse, say something like “no, this is a no-go beacuse it’s the creation of your employer/the devil/Microsoft”.

    Our new boss seems to be not this type at all, is not on the previous list of possible evildoers and has a legitimate power, thus perfect to put an end to such pitiful quarrels and make the necessary decisions, as Johannes said.

  3. I completely agree with you. As I stated before I think we really need to skip on 2.x release before 3.0 to have enough time to get some of the bigger things done. Of course we branch and do things like that but making a 2.x is a huge amount of work for all the core hackers and this won’t give them the time to work on the “Next big thing”.

    Let’s start the brainstorming somewhere!

  4. I’m not sure that’s really Stormy’s job. Her job is to handle the business side of things. It’s up to us to handle the technical side. And yes, I consider release management to be a technical job. She doesn’t dictate the direction of Gnome. She helps us get Gnome in places where it needs to be.

    It should be the release team’s job. That’s why we have them. The problem is that the release team, historically, is a non-decisive body. Their job has always been to try to capture community consensus. They’re poll counters. (RT members, please, I’m not trying to be insulting to you personally. It’s just the way we’ve always run things.)

  5. I would like to submit ideas for a gnome 3.0, but I do not know where to do it.
    So I write some ideas here:
    – auto-save: the documents should automatically be saved. (To create a new document, we ask for the document name)
    – trace of all actions: all my actions should be traced (talk to XX, delete this file…). A “undo” is proposed for all possible actions. The user is also never scared to do something wrong.
    The tracing a all actions could be used to generate macros.
    – document sorted by history: when I want to open a document, I have a historical view of all my documents. I can found the presentation I work on 2 days ago for example. The desktop could be this historical view.
    – tag documents: I can tag documents to find them quicker the next time.
    – no window: all applications are full-screen. One application per virtual desktop. There is always a free virtual desktop (dynamically added).

  6. “the buck stops here”: – there you said it ;-P

    Anyways, Gnome 3.0 is starting to look like a lost battle to me. We need a strong leader (or a few strong leaders) that can unite the community. In my pow the Gnome community is deeply fragmented.

    Time is running and the create energies are seeking other outlets.

  7. I agree with Johannes Berg. I think one of the most important things is that we have nice integrated development environment, which is part of Gnome and is just as easy to use like GEdit for example. I start it up create a new project and off I go, I can start writing code. I know that there are a couple very powerful tool for hacking on code, but the thing is that if I download some tar.gz file or I check out an SVN repo for a project I cant just open the project file in a development environment and start looking where can I help or enhance the code or something. The autotools (and possibly other such tools) are not friendly enough. I would like to have a dev tool that is so easy to use that I can learn coding using it. Currently I have to learn first how the different build tools and such work and then learn to how integrate the project into some other editor/ide.
    You all lost me half the way. I’m not trying to be a troll, but that’s just how things are. I seriously want to be involved in some project or start my own, but the initial barrier is way too high. Something like the MonoDevelop IDE does (having a project file to open and start hacking) is seriously needed for the other languages too. Anjuta is trying to get here with C but it has a long way to go, and its development seems slow.

    I would like to have a killer IDE for Vala with integrated Glade, from which I can do anything related to coding without major (possibly any) configuration first.

    Having an easily usable dev system would propel Gnome development very much ahead and fast, believe me.

    And for this to start rolling a leader is needed.

  8. I have nice ideas, I think, for GNOME 3.0. However if you’re not a developer, your voice is not really heard. Devs are already very busy for maintaining GNOME 2.xx, will they have the time to think about some farfelous ideas for GNOME 3 ?

    I have a lot of complaints too about major GNOME aps :
    Nautilus usability sucks (sorry for dev, but the tab stuff is not what I call a nice innovation), it slows too : showing /usr/bin or a folder with lot of picture is hell slow.

    GNOME Office is in a galaxy far far away from KOffice (I know this is not a « official part » of GNOME but it should be), we should really inspire from them.
    In regard to the Gimp, Krita is more appealing too.

    Evolution, well, Evolution is a bit bloated, Evolution may be a nice apps for power users if you need to connect to Exchange, but for desktop user, I think GNOME should ship a more simple mail client, with separate Calendar/Address Book apps (see Pimlico suite by OH guys).

    Communication/ Collaborative : I wanna be able to send file opened in gedit just using File>Send to… and then it launch my mail client with the attachment. Or use some kind of Telepathy backend for collaborative editing on various apps : some kind of “Contact” menu, that permits to invite someone in your empathy contacts list to work on the current document.

    Customization is a problem too. I won’t troll like Linus, but hell, why can’t I move toolbars, or add/remove buttons ? Let’s talk about metacity : no vertical/horizontal window reorganizing ?

    GNOME in general lacks of homogeneity, communication between apps, it’s more like a collection of soft, rather than a Desktop Environment. Restricting languages used in GNOME Desktop might be a good idea too, for example, we could focus on setting up a C/C++/Vala development environment to appeal new devs, and limit apps’ plugins to one scripting language (Python/Ruby/ECMAscript/whatever).

    What about setting up a GNOME 3.0 brainstorm where users could send their ideas ?

    (ps: yeah I know, lot of critics, but please don’t say « Just send your patches », I’m not a dev, and I won’t learn how to make good code in one month, and I’m already busy with translations)

  9. > We need a strong leader (or a few strong leaders) that can unite the community. In my pow the Gnome community is deeply fragmented

    I couldn’t agree more. Moreover GNOME seems disconnected from his userbase. Very few feedback.

Comments are closed.

Creative Commons Attribution 3.0 United States
This work by Shaun McCance is licensed under a Creative Commons Attribution 3.0 United States.