As Ubuntu's popularity increases, how can we help to ensure that new users get the best experience possible?
My last (admittedly strongly worded) article appears to have touched quite a nerve out there in the community.
Perhaps some readers jumped the gun when they saw the title and didn’t read the whole article, or perhaps I didn’t make my point clear. Either way, I’ve decided to clarify my perspective a little (if anyone bothers to come back to read it), because I actually do care about Linux.
The first thing I want to clarify is that I’m not saying Ubuntu is a bad operating system, or even a bad Linux distribution. For ease of use for new users it remains one of the best choices available. I’m also not even saying that Karmic is a particularly worse release than any other. I’m also not saying that Windows is good, nor that OS X is perfect. The reason I referred to OS X is because that’s Shuttleworth’s goal for Ubuntu – to surpass it.
I’m a Linux guy. For me, of course Linux is the best operating system ever there was. I want it to be even better.
As I mentioned in my article, Ubuntu has done (and continues to do) a lot of good for Linux. They have made many of the previously hard tasks much simpler. As a result, they have also converted new users like no other distro before them.
What I am saying however is that, in general, a new version of Ubuntu is simply not stable enough at the time of release. I’m not particularly complaining about everything else Ubuntu does, just primarily that the releases are not solid enough. Many people know this, which is self evident by the number of major issues people are having, the bugs in the release notes, and the fact that it’s common practice to not upgrade for a month. This is not a good thing, especially for new users.
This is what the article was about – issues with a new release, primarily the upgrade experience failing or causing issues. Shouldn’t we make Linux the best it possibly can be?
Ubuntu Community Manager, Jono Bacon, recently wrote on his blog in relation to this issue:
“Karmic was a ballsy release: we shipped some adventurous new technology and in the short six-month cycle that we are committed to, we tried to ship the most exciting, feature-full and compelling release that we could.”
Non-LTS versions of Ubuntu are more bleeding edge, we all know that. Even so, they are still meant to be stable releases. It’s a fine line between stability and features, I understand that. It’s a hard thing to judge and get right. Add to all that a strict timeline and commercial pressure and you might get a less than desirable result. Can we have an exciting, feature-full and compelling release that is also highly stable?
At the end of the day, Ubuntu (and Linux in general) gets judged by what is put out there. If a release does have some major bugs, the perception among the community will reflect that.
Jono also said:
“I donâ€™t want to denigrate the experiences of our users who face problems: if something goes wrong, that userâ€™s experience is genuinely marred. Irrespective of whether the fault was in our package, with hardware, with networking, in the upstream version of the software or elsewhere, that user had a bad experience, and we need to come together as a project to help prevent these problems from occurring again.”
Exactly. He’s spot on.
A few days ago, a proposal was put forward to increase community involvement in testing Ubuntu before it’s released. A post on their blog reads:
“We cannot leave quality to good luck. We cannot rely in having millions of users who will find bugs as they use the applications. Our users want to use the software, not to find bugs and report them. FOSS projects in general and Ubuntu in particular need a new way of rethinking testing as a skilled activity and an opportunity to contribute to the project.”
Once again, this is dead right. With Lucid 10.04 being a LTS (Long Term Support) release, naturally it will not be pushing the envelope as much in terms of new features. It will also be much more thoroughly tested with an earlier freeze.
Of course, there will always be bugs. The fact is that Karmic has caused a lot of problems and broken many peoples’ machines. The question remains, is that a good thing? Is it acceptable? I don’t think anyone can honestly believe that it is.
I know that there are a lot of excuses; “It’s free software,” “Canonical is a small company,” “There’s too much hardware out there,” etc. I get that. The bottom line however, is that it’s a reality which we need to deal with and tackle. Relying on these excuses is not going to cut it long term, especially as Ubuntu becomes more and more popular.
As I’ve said many, many times, I’m not so concerned about the technical people out there who come across an issue and workaround or solve it. What does concern me is the average user who has finally taken the plunge from Windows. They need the best experience possible and an upgrade which breaks their machine is the exact opposite of that. End users don’t care that it’s free. End users don’t care about any of the excuses we currently make, they just want things to work.
Sure, over time each release gets better as more bugs are found and fixed, and that’s exactly the point. It takes time after the final version is out. Updating to Karmic today, is much better than it was two weeks ago. Currently however, the update manager prompts users to upgrade right at the time of release before many major problems are resolved, and that’s just a bit too risky.
If Ubuntu is going to throw in lots of extra changes to a release and are expecting things to be dodgy, perhaps they should communicate this more clearly. The oft recommended solution is to only use a LTS release of Ubuntu. These releases are usually more thoroughly tested (which is to say that non-LTS releases are less tested), which is good.
Unfortunately however, LTS releases are not really a great option for the desktop because they end up being so old. For example, current LTS users only have OpenOffice.org 2.4.1 because Ubuntu doesn’t update packages within a release unless there’s a security or bug issue. So LTS might offer a more stable system, but it’s not ideal.
Sure, there’s PPAs and backports and all that, but that’s not a solution to this problem. Firstly, average Joe is not going to know how to set that up (it’s meant to be easy, remember?) and secondly this can introduce more conflicts with less stable software which could mean a worse user experience.
Does Ubuntu even recommend for end users to use LTS releases? Nope. In fact, the webpage defaults to downloading the latest release, not the LTS. Furthermore, the option for LTS (which is hidden) says it’s “ideal for large deployments.” Does that sound like an average Joe home user to you?
Two Simple Suggestions
If a new release of Ubuntu improves dramatically in the first little while following a release, then naturally those updating at this later point in time would have a better experience.
So if we have non-technical users who need a system which is as reliable as possible, they could get a better experience by updating at some later point after a release. Is there a way to achieve that?
Last week on my personal blog (yes, you can leave hate mail there too), I made two simple suggestions which might help overcome (or at least alleviate) these problems.
The first is for the update manager to not prompt the user to upgrade until the stable release has been out for a month (or whatever time frame works. It could even be dynamically flagged when ready).
The problem as I see it, is that the average user gets notified and upgrades straight away. Problems occur and theyâ€™re stuck. Ubuntu (and Linux in general) looks bad.
Simply delaying this a month or two means they are blissfully unaware of the newer version until all the major issues are resolved. They will still continue to receive updates on the previous version. Then when they do upgrade, they should have a much more trouble-free experience. Advanced users would still upgrade straight away, discover problems and get them fixed. This wonâ€™t solve issues with a fresh install, but many bugs seem to come from upgrading an older version.
Secondly, it seems to me that many of the problems faced with a new version of Ubuntu are due to the fact that itâ€™s a time based release. Come hell or high water, itâ€™s released in that scheduled month. The problem with this is that thereâ€™s no room to slip the release, especially when its due date is already at the end of the month.
So my other suggestion is simply to schedule the release for the 1st day of the month. If all is well, release it. If there are major bugs that need fixing, then youâ€™ve got 4 weeks to slip the release and still make that month.
Missing The Point
Ubuntu improves over time once bugs are found and fixed. That’s how free software works. The problem is that the final release is shipped with too many bugs (for whatever reason), which means there are often all sorts of issues, especially with the upgrade process.
Of course it’s hard to find these bugs without a massive user base testing the release. That is supposed to happen with beta and release candidates, but it doesn’t seem to work that way. Most people will upgrade when it’s “stable,” not when it’s officially still in testing.
A month or so after a new release, the upgrade process in Ubuntu is much more smooth. Major bugs have been found and fixed. Known bugs have often also been resolved. How can we make the end user experience better for average Joe? After all, don’t we all want Linux to be the best it can be? Don’t we want user experiences to be as positive as possible?
If we can’t get more testing done before the release, and if bugs are going to be fixed afterwards, then there seems only one simple solution – delay the update option for end users by default.
What I care about is Linux looking good for the average user, that’s the bottom line. For technical users who are happy to fix problems, it doesn’t really matter. I work around the problems I run into with Ubuntu, but I have a lot of friends and colleagues who I have helped put onto Ubuntu whose machines often break every time there’s a new release. This means all the things I say about Linux being stable and not doing “weird things like Windows,” etc, make me out to be a liar and make Linux look bad.
On one hand you want Linux to have lots of new features and push the envelope, but on the other hand it needs to be rock solid. I understand that this is hard to achieve.
It’s hard to be stable when you’re always pushing the envelope, and it’s even harder when you do it on a short time-line. Ubuntu should keep doing what they’re doing but as it becomes more popular some things will need to change. If a stable release is going to have lots of issues (for whatever reason), then delaying the prompt to update seems like a simple and reasonable option (even though I’m not saying it’s the right answer).
We all want Linux to excel, but above all we need new users (especially those less technical) to have a really smooth and seamless user experience. Hopefully the Ubuntu community can achieve that.