Introduction
I've been silently digesting all the GNOME 3.0 thoughts for a while now. Then, yesterday, I installed KDE 4.1 and all of a sudden things kinda crystallised in my mind. I'm a marketing person, so I tend to think in terms of users; and user needs and wants.
In what follows, I will assume that in any GNOME 3.0 release the GNOME 2.x values (Powerful, Simple) will be incorporated. I would like to see GNOME's next major release add to that list and I've got a tag-line all ready:
GNOME 3.0: Helpful. In what follows I will try to explain what this means and why I think it's a good idea.
What do you mean, "Helpful"?
I mean that GNOME (the development platform and the bunch of officially blessed applications that comprise a release set) is a set of enabling technologies that enable developers and users to
get stuff done using computers without putting
barriers in the way. In other words, user experience.
What, then, are the barriers that get in the way of getting stuff done? What would produce a
qualitatively different release of GNOME, one that makes using it
feel different?
Uninterrupted workflow
Has it worked?
Why, why, why does it take the simplest of applications (a text editor or a terminal) more than a second to start up? At least there's a little animation to tell me that my request is being considered, but why is it taking so long? Should I be worried? And if the animation happens for requests (commands) that take a long time, why doesn't it happen for all of them? Many times I've clicked on the update manager icon in the panel twice (with a delay of a second or two between clicks) because nothing seems to be happening. And then, of course, I get two instances of the application running (eventually).
This behaviour interrupts work-flow and train-of-thought. Application startup time is a seemingly small issue, but consider how it would
feel to use a computer when there was more-or-less instant reaction to user input. It would become a qualitatively different experience.
With the work on GNOME-Mobile underway, can we get that work for re-jigging GNOME to work well on resource-constrained machines back into "mainstream" GNOME? Please? That would be really helpful.
Has it crashed?
Why, oh why, do applications fail to repaint the screen or respond to user input (mouse clicks, for example) while they are waiting on disk or network I/O? Has the application crashed (and do I need to kill it?) or is it actually working "normally"? Do I have do interrupt what I'm doing to attend to it, or shall I just wait?
It has crashed! Why?
OK, so a GNOME application has crashed. What do I do now? Start it again and hope it doesn't crash again? And if I got an error message, does it actually give me (a non-programmer) a clue about what to do in order to prevent it crashing again? If it's a problem that others have faced and solved, can I get their solutions quickly and easily? (Reverse Bugzilla?)
Helpful summary
So, priorities for GNOME 3.0 from the user-experience point of view. In summary we need to increase
responsiveness:
- Reduce application startup time
- Eliminate blocking UI on I/O
- Automatic bug reporting
- Automatic bug solution/work-around suggestion
That would be helpful.
Mutual Help
All the above is about developers helping users. But how can users help developers? By writing documentation, of course! But it be "user" we mean "non-programmer", how easy is it for a user to "contribute" to the community rather than just taking?
User-contributed Documentation
It seems to be a truism that programmers hate to write documentation. Well, maybe not hate: probably they've just got better (more interesting) things to do. So let's harness the type of goodwill that gets people posting to user-to-user help forums and writing Wikipedia articles. But let's not start another "social networking" web site. Let's put the good stuff into the documentation that comes with the software.
Currently in order to do that a user must learn a markup language, and hence a write-compile-test cycle of working. Probably a (D)RVCS system too. Can't we create a tool that would make it easy for a user to submit an edit to existing documentation (including tool tips) or create an entirely new chunk of documentation? People would actually use it.
Then we'd need an editorial layer. The maintainer(s) and their trusted lieutenants need to do that. But "trusted lieutenants" need not be other coders. They could be simply particularly clueful users. But they'd need easy-to-use tools.
That would be very helpful.
Summary
I've written about things that bug me when I'm using my computers: things that get in my way, make me focus on the software rather than what I'm trying to do. Addressing these issues is not trivial, but it would produce a quantum leap in user experience compared to
any other GUI that I've ever used (including various versions of Windows and OS/2).
Why should you care? GNOME will never, ever, gain significant market share if it's at least as good as the alternatives, with the additional benefit of being Free. Only if it's obviously, immediately, better than the alternatives will it grow, What is "better"? Well, "not so annoying" would be a good start.
I've written about helpfulness from the user's point of view. Perhaps someone who knows could write about it from the developers (ISVs?) point of view?