I've always cared a lot about user experience because I find that no matter how great a single piece or a collection of software is, it is the user experience that shapes your impression of that software. That said, I was cleaning up my (very, very messy) desktop and came across an old backup of a Fedora installation. There was a file on my desktop from July 2008 that I had completely forgotten about... I had collected my thoughts at the time on how Linux-based distributions could be improved to make the user experience better. It's really neat to see how many of these have been implemented in only 3 short years:
my apologies for the messy read, I tend to write my notes in Wiki format and I don't feel like copy/pasteing
<li>'s all over the place ;)
* The Linux installation+boot process
* Installers must try to recognize an existing Linux installation's boot
configuration and add theirs to it, not overwrite the previous one.
* Be able to partition (read: resize) other filesystems intelligently and
* Provide installation profiles. Stop fighting over what packages or
configurations to use and realize that a server, an enterprise and the
typical user all have different sets of expectations and needs.
* GRUB should have an extendable plug-in system where distributions could
plug-in modules to have it suggest which partitions to boot from (ie
* Graphical bootup: X in initramfs. Ubuntu does this already, it's an excellent
idea and gives the user a better overall experience.
* Standardizing the Desktop
* User accounts
* Unix names are confusing to users. Have the system map metanames to Unix
names so that people can login with e.g. "firewing" or "Stewart Adam"
* Allow the administrator to create user groups and define their privileges.
User accounts belong to one or more groups which defines what they can do.
* User control is easy and at the same time they can be given needed
privileges (software updates, mounting drives, etc) without having to
know the root password.
* Unified package management. Create a standard for both package managers and
packaging. This enables large, cross-distro compatible repositories that
benefit the users.
* User experience
* Prompt the user for backups once a week. Include a don't show me again
* Why can't we configure tapping on a per-user basis again? Right, xorg.conf.
* Need to accept and handle user feedback. Although Linux is used by a lot of
developers, most of the users are non-developers users. It would make
sense to prioritize what they have to say.
* If a device is present but isn't supported, provide a signal so that the
desktop environment can present a dialog explaining the problem and showing
the user what they can do to help.
* More specifically, reporting the device IDs and collecting common log
* Create "FooKits" for helping monitor and solve common problems. Power usage,
kernel oopses, SELinux, etc.
* Reload parts of the kernel without rebooting (just improve kmem)
* Don't leave users out in the cold. They shouldn't have to do a day of
research to get the OS installed or to perform simple tasks. Provide
tooltips and help buttons inside programs.
* Dumbing down doesn't solve much. The best type of documentation is easy
to understand but contains technical information at the same time.
* Interfaces need to be somewhat standardized and resemble each other in
nature. They overall goal is that programs should be intuitive -
Documentation should accompany a program, but the interface should be
intuitive enough that users shouldn't have to read it to get started.
* Something nice for the help menu layout:
- Check for Updates (this would use the standardized package manager)
- Report a bug
- Help translate this program
- About this program
* Synchronize user information (ie, UID/GIDs) between various distributions.
* There needs to be an easy communication channel between developers/
packagers and users so that they are encouraged to help out. Testing and
providing feedback and bug reporting and bug sorting/solving is not hard but
goes a long way in helping the developers troubleshoot problems.