Balancing Freedom and Functionality: A Design Challenge

I want to share a short story with you folks as the basis for a little challenge I wanted to set. Let me start at the beginning.

A little while back John Lea, a member of the Canonical Design Team filed this bug. The essence of the bug was grounded in one of the check-boxes on one of the pages of the Ubuntu installer:

The third-party software check-box is a useful little feature in which some non-free components can be easily installed at the install time if the user so desires so. The check-box is designed to solve the problem where things don’t work because there is no Open Source solution available.

The bug was proposing that the check-box be ticked by default with the goal of ensuring that the user does not get a broken experience. When I first learned of the bug report this struck me that it had some legal and policy ramifications. In my mind this is not as simple as just changing a default – my take was that if the check-box was ticked by default it would be a definitive change in policy for the Ubuntu project – it would include non-free components by default (even if a user could un-check it to not have this components installed).

I felt my responsibility in this case was to ensure that due process and transparent published governance was used to respond to the bug. As such I asked the Ubuntu Technical Board to provide comment and input. They had their public meeting (meeting log) and voted unanimously of 5-0 against the proposal in the bug report.

So that is the end of that, right?

Well, not really. I don’t want us to dismiss the rationale and ethos behind John’s original proposal in the bug report. John wants to solve the valuable and important problem of users installing Ubuntu and things not working, largely because a closed-source tool was not installed to bring that support in the absence of an Open Source solution. As we move to take Ubuntu to the masses we are going to face various cases in which we can’t offer an Open Source solution or the required quality in that Open Source solution for a given use case. Examples of this include Flash support, MP3 playback, some graphics drivers etc.

While a broken experience will not help us get over the chasm, I am also of the view that we should not sacrifice our values and philosophy; freedom is not a chore that restrains us from delivering a great user experience but a feature that we need to celebrate and encourage.

Thus we face the classic tale of Freedom vs. Functionality in the Open Source community. How do we deliver a great user experience, but one that maintains our commitment to freedom, particularly in those cases where no free solution exists?

I feel uncomfortable saying we need to significantly compromise on either side of the line. We should never compromise in delivering a wonderful user experience that just works, but we should also never compromise in delivering a Free Software Operating System. What’s more, I feel like we haven’t uncovered all of the options available in striking this balance in the installer.

It strikes me that our goal here is for the installer to understand what capabilities can be delivered on the user’s system with Free Software, but to inform the user of their options regarding non-free additions that may offer a better experience. Then the user gets to decide. If they are unwilling to use non-free software, they understand that some things may not work. If they are happy to use non-free elements, they can get that experience without jumping through hoops. All the while this would ensure that we are free by default but non-free functionality would only be a click away if the user chooses so. This way we empower the user.

It is with this that I wanted to present a challenge to our growing design community. I think this topic is a valuable one for us to discuss at our next Ubuntu Developer Summit but thought it could be useful to open the discussion in the community now in preparation for the event. How do you feel we could best solve this? Anyone want to propose some mock-ups or put together a spec?

@AlexH: I agree. I think that the idea is already there; the paragraph needs only to be modified or expanded upon, explaining to the installer that such add-ons are not free, and may hinder the end-user experience if not installed.

Perhaps adding a second page after this one outlining the difference between free and non-free and their respective types of addons (Flash vs Gnash)

I agree with this proposal. The main problem with the current installer, I guess, is that it’s quite easy for a user to miss the checkbox. Also, the description is a bit short and may be hard to understand for non-computer people.

Adding an additional screen, with the two options will leave more room to explain the alternatives better. The default option should still be the open source only option, but if this particular choice has its own dedicated screen in the installer, it’ll be harder for the user to miss it and to make an uninformed choice.

On top of that, why not come up with something similar to the proprietary drivers alert that comes on the first boot? There would be an icon and a notification telling the user that some additional, non-free software is available if they wish.

I strongly comply with Lionel in that there must be another screen within the installer to show this options to the user. Not only the user will not miss this importante detail, but also it will let him/her choose exactly what they want like many checkboxes for, be it Flash player, DVD playback, codecs, propietary drivers… I think this would really help the new user understand what they’re about to do and in the case of the advanced user, more chance of what they want.

I think that even if the user leaves the tick box unticked and click’s ‘Forward’, the installer should open a dialog box telling the user that you have not opted to install Flash and MP3 playback and would you like to enable it now. This way, you are avoiding any suits against Canonical whilst still providing functionality that Ubuntu users expact out of the box.

I think part of the problem is that when we know there’s a functionality gap between Free and nonFree stuff, we tend to ship nothing by default, making both of them seem like equal alternatives.

Nouveau and Gnash may not be ideal, but frankly, but instead of assuming they won’t be enough for users, we should enable everything we can, and just inform the users that nonFree software is available that may function better, if these aren’t good enough for that person.

I mean, where’s the checkbox to automatically install gnash and nouveau 3d acceleration right from the installer? I don’t see it. –and that’s a problem.

I tend to agree with Wade, Mostly. I believe, if Ubuntu is to gain market share it just needs to work and as such this bug is a specific incident of why bug 1 isn’t resolved.

If we take philosophy out of the argument for a second, then it seems clear that the users who care whether they are non-free, patent questionable etc are the ones that are most able and informed to uncheck a checkbox. And the ones that aren’t aware of the difference are our new users, who need YouTube just to work out of the box, lets make it work and then lets educate them later.

From a user design point of view I think that is pretty clear, make the defaults work out of the box and make specific choices just that.

BUT we all love open source because the philosophy and principles are important to us, this is the paradox.

Compromise is needed here. It seems to me that this compromise presents an opportunity to provide education. This tiny checkbox and a line or two of explanation hidden away is one of the principles of open source.

As a compromise i would be looking to highlight the choice. A one screen box with a clear description of the choice, on one side keeping with our principles and the other “YouTube works”

Make the choice clear, educate, and make it easy for YouTube to work.

Plain English if at all possible, if help is required in this. I would happily volunteer.

There isn’t a paradox here, really. The fact that Ubuntu can’t do “everything out of the box” is neither here nor there; there will always be something else Ubuntu cannot do. It’s a question of where do you draw the line: do you have strong principles, or do you attempt to fudge them trying to please everyone?

Saying “You must ship Flash by default otherwise the user experience suffers” is a claim not backed up by iPhone/iPad sales figures. Good design and good user experience is about much more than which particular set of websites work.

And people should also not forget that most computer comes with lot of stuff not installed out of the box. No itunes on regular pc, so iphone requires post installation. No firefox or chrome, no office suit ( or some dumbed down version like Microsoft works ), etc, etc.
Yet, no one complain of this as loudly, so there must be something.

The problem is that if new users go to Adobe’s site they will not be easily able to install flash (last time I checked they would have to randomly choose between .deb, .rpm and .tar.gz or figure out whether they are running debian) and if they do succeed it will not be installed from the repositories and hence will not be automatically updated.

I think the question here should be whether one should install non-free software such as Flash but how to make sure this choice is available to even non-technical end users (this does not appear to come into the Stallman’s definition of freedom; the freedom to compromise certain freedoms appears a prerequisite of freedom). Hence I believe there is a strong case for ticking this box by default as if a user is to choose to make a large compromise as to how well their computer will function as expected, it should be a concious one.

iPhone offers a YouTube App that uses h264, so iPhone users can use YouTube out of the box but Ubuntu users can’t. And its not only about Flash, what about hardware drivers? some devices will not work without proprietary drivers, offer both options and everybody will be happy, I like the idea of a complete page with check boxes and enough explanation.

Honestly I’ve always been a bit confused as to what that checkbox installs. I install the gstreamer bad/ugly plugins (which to my knowledge are not proprietary for the most part, just patent-encumbered) and other things on a lot of my boxes, but that checkbox seems to imply something else?

Freedom and functionality are not opposites to be balanced against each other, anything that presents this issue as a balancing act is a bit problematic for me. What you get from Ubuntu is a Free Software operating system with fully open code. After installing that platform if you want to put some proprietary software on top of it you are free to do that, but it is not part of Ubuntu. In terms of buttons or checkboxes to make shiny stuff happen, I would suggest separating the stuff that is Free software that may be encumbered by dubious legal claims in some jurisdictions from the stuff that is proprietary software.

maybe some kind of first run wizard after installing Ubuntu could ask you if you want to download and install a selection of stuff including closed things, so offer a selection of awesomeness like Blender and Gimp and Inkscape and Audacity and Skype and Flash and Google Chrome etc.

I like the proposal, it would be great to have a definitive, select-one process during the install, AND have a mechanism to switch between them if the user chooses. It’s also needs to be way more visible, and even explain the primary differences (in a way that the user cares about — usability-wise).

Despite my own reservations about free vs open source vs proprietary software, Linux has always been about the user’s choice, not encouraging (or worse, forcing) one philosophy over another for them. Only then can we promote actual freedom.

Mmmh, what if I want mp3 and dvd, but no proprietary drivers? One should be able to chose exactly whant s/he wants and artificial dependencies shouldn’t be created.

I do strongly support the distinction between non-free software and patent-encumbered software, though. Here in Europe we can overlook patent problems (at least for the moment), but non-free software is to be avoided.

I think that it just needs better working. Mention that it installs Flash, explain that it is necessary for Youtube and other rich-media based websites on the Internet (this can be changed maybe two releases after this – sorry htm5, gnash and lightspark, you aren’t dominating yet or anywhere near).

I am a free software proponent and evangelist when the opportunity presents itself. However, the average computer user (read the Ubuntu target audience) does not care at all about free software. They want an intuitive OS where everything works (and works optimally) meaning (at least at this point in time) proprietary graphics card drivers, Adobe Flash, Sun (Oracle) Java, dvdcss, all multimedia codecs, all necessary hardware drivers (especially wireless) preinstalled (or at the very least installed in conjunction with the OS installation. Without all of this and with an insistence on free software only, we present a second rate user experience when compared to the proprietary operating system choices. Frankly, we are in denial by voting 5-0 to not have that box checked as a default choice (and by not adding similar boxes.) IANAL but it seems to me that the liability is the same whether it is checked or not by default since it is present. FWIW, it is my 2 cents, respectfully.

Check box has several problems:
1. to computer geeks it does not tell what packages will be installed – is it ubuntu-restricted-extras or something else
2. to non-geek it is confusing it talks about license – and it may give an impression that this is illegal, why the hack would it then be disabled by default
3. to non-geek it does not tell what closed-source is and if it is displayed why should non-geek care about source code, he/she is unable to change it, so no need to care (Just like do you care what kind of software is run on washing machine? No, you just want to wash the clothes.)
4. it is confusing you have “Ubuntu…” and then checkbox with additional description – this is not the best design, because people will skip reading “Ubuntu…”, because it gets impression this is some kind of description for “Download updates while installing” – I skip reading this message at first, just thought it is some kind of junk for describing what is “downloading update…”.
5. to non-geeks you have to describe what this software is all about and this description is not “mp3, flash etc” it is YouTube, listening to the music, watching movies etc. Don’t see any point of describing policy about source to non-geek they DON’T CARE about source, because they will not change the source

What I think it should be done is make the text describing more non-geek friendly and then in brackets display the package you are installing, so non-geek and geeks can benefit.

There are also third party users (besides geeks and non-geeks) like grandma, grandpa etc. They DO NOT INSTALL software, grandchild does. And if grandchild does not install the software grandma will not use YouTube again, because grandma does not know the system password, because she is logged into Ubuntu without password. So we have to make sure that grandchild will spot this check-box like something important. Like the check-box is designed right now it is very very likely it will be missed by MOST of the users. You know grandchild will think: “They know what I need and so they know what should be set as default and they think I should not change default.”

But I think there should not be a separate window for this option. Why? Because non-geeks does not care and do not know anything about it and there is REALLY not need to have deep understanding about it. So if you think it is important for them, then make it default.

I would write a text something like: “If you would like to listen to the MP3 music, watching movies on YouTube (some additional text here) then you should check this box to install additional software that is not permitted to be checked/installed by default because of legal reasons.”

By selecting the following option, you stifle innovation, destroy the hopes of thousands of hard-working software developers and their families, and enslave the world to the whims of big-company executives.
[ ] Install Flash and MP3 Support?

I think that the post does not address a very important aspect of “OS installation”. It is usually NOT DONE by the user. Most users buy their PC\laptop\notebook with a preinstalled OS, or have some friend\technical savvy person to install a new\additional OS to your machine.
Say we would like to approach this situation legally, morally, or whatever else you need this to conform to – the person checking\unchecking this particular checkbox is usually not the user.

My suggestion:
You can leave this checkbox on by default. The first time a user logs in to the system he gets a welcome screen which explains that non-free software is installed\not-installed on this computer (with pros and cons) and maybe put a checkbox on this pop-up screen enabling the user to do\undo the choice made by the installer.

If you care about software freedom, you shouldn’t be using Ubuntu – end of story.

Ubuntu should concentrate on its strengths: easy installation, easy operation, inviting community. All areas that having the proprietary/non-free stuff enabled by default would probably benefit from. Having the proprietary and non-free options enabled by default, really won’t change much.

Ubuntu (like most GNU/Linux distros, due to kernel blobs) is non-free already, just ask RMS 😉 People who are concerned with free software issues will most likely use Debian (who divide their repos into free and non-free, and as of Squeeze have removed the binary blobs) or the currently Ubuntu based gNewSense (which is switching to being based off Debian in their next release).

If you use Ubuntu and think you are using “free” software – you’re only fooling yourself. Ubuntu is a wonderful example of the difference between free software and opensource software.

The “balancing” is already very one sided – why not drop the principles altogether? In the name of a better user experience.

I don’t know that it’s ever going to be a simple solution. Yes the patents will expire for MP3, but there’s still MPEG4 patents, and someone along the line will create hardware that they think proprietary drivers are the ‘right’ thing to do.

The question might hinge upon having a look at what the user already has. If they are a brand new computer user, you don’t have much to go on. However if they are converting an old Windows computer to a Linux computer, one of the things that you might want to do is offer to move existing documents and user directories to the new user’s documents (and related) folders. Along the way you should discover whether there are documents or media that the user will need restricted codex or handlers for. At that point present the user with a dialog notifying them that Ubuntu does not come by default with handlers for these files, but that by checking ‘this box’ (and giving them the box to check) the user is requesting that Ubuntu install the files needed to make use of that content.

A similar check to could be made for public shares on the LAN checking media folders for MP3 content.

In all cases present the default (support is not installed) option as the default, with the opportunity for the user to change that before continuing.

Finally a hook into Landscape for people who have multiple computers about the house or business. If the network does have a Landscape management server with local preferences to actually include support for restricted content, honor those preferences. If the Landscape server does not grant support by default, and as the installer encounters such content, a request to install support should be presented to the site admin rather than through the installer. An informational message should be presented to the user that such a request is being made, but that by default it is not being included. Then the local admin can approve and install support individually or across the environment as the local policies allow.

There is no problem doing MP3 playback with free software. The issue is the patent-encumbered nature of the software which hinders its distribution. Please don’t conflate patent & copyright issues 🙂

In terms of functionality which we just don’t have in free software, Skype comes to mind (although we can do telephony, we can’t do Skype), as does Flash as you mention (although Gnash is pretty darn good). And audio & video codecs are, as always, problematic, both because of patent issues and the lack of availability of free software implementations.

Aside from that, the main issues on the free desktop are hardware related, still… graphics cards, sound cards, USB devices, and although things are getting better, adding non-free software to the stack will only paper over those cracks for a little while.

Taken from a new user perceptive I really don’t care about philosophical viewpoints, legal niceties, I just want it to work, doing the kind of things that most non-technical user’s want. I want to play Mp3’s and watch youtube and have my graphics/audio/wireless card work at the most efficient that it can. I care not one jot if it happens to be propriety I may not even know what that means.
Why do people feel that have to stuff their Free Software philosophy down my throat just because I use linux and make or influence choices on my behalf based on their creed of free is best. Yes I know without that philosophy linux might not exist but it does exist now. You all say you all want a wider audience for linux but keep trying to make your world view and mine the same is not going to work once you are outside of the cosy little niche that is Linux today.

Having asked around, every single linux user I have personal contact with, has download and installed flash and mp3 support regardless if they are free software advocates or not. So if that’s the case it probably means that there are not alternatives that work sensibly.
My personal view is to take the opposite approach to all this and put on the best software regardless and for those users that have a philosophical problem with that, give a link to a remove non-free software button, which they probably would not need anyway as they could probably do it from the command line.

I think the main problem is Flash because for MP3, Divx etc, Ubuntu already asks for instalation when the user wants to play on of these formats.

For Flash we have Gnash and Lightspark, which is joining efford to Gnash. Could Canonical put an efford on Gnash/Lightspark? Could you, Jono, create an community efford to make Gnash/Lightspark better?

This would be great as Adobe Flash Player for Linux is a crap that sucks all the CPU for it.

There’s a huge difference between MP3 support and installing Flash by default, and it’s disappointing to be that you’ve glossed over it.

With MP3 support, the software is free, but in some countries with to a broken legal system, users are prohibited from sharing it openly. With Flash, the hostile distribution terms come straight from its creator.

you can put a radio button not defaulting to any option (“Only free” or “Include non-free”) with enough explanation so the user have to decide (not to be missed like the check box).
I, and most of the users IMO, use proprietary software (no body stopped watching YouTube (before webm) in order not to use flash-plugin, and Gnash is buggy), so I think Ubuntu should ship all important proprietary software by default, this is one of the important reasons of the success of Linux Mint, and they should be on the installation media to make them usable on offline computers too, not only codecs, proprietary drivers are important too.

I forgot to mention my Broadcom wlan BCM4312 not working out-of-the-box because B43 open source drivers can’t handle them well, so I use the proprietary broadcom-wl, and this prevents me from giving stock Ubuntu (or Kubuntu which I prefer) to new users.