Microsoft had major security issues for the best part of a decade and they were not caused by a rogue programmer or some bad ideas, they were caused by a culture of ignoring security. Every line of code you write, feature you add and default you set has security considerations. If you don’t consider them before you do it you end up with the mess that was the Summer of Worms, when a good percentage of all XP machines were hit. It took Microsoft years of both recoding and (most importantly) developer education and a serious change in practices to put security firmly at the forefront and with the importance it deserves and even now there are still issues caused by this dark period.
Now lets look at ‘Project Ayatana’, Ubuntu’s answer to the fact that Linux usability sucks. The thing about usability is it is like security, in that every line of code you write, feature you add and default you set has usability considerations. Although the project has obviously identified the issue (usability sucks on Linux) it has failed to appreciate that it is the culture of ignoring usability that needs to be addressed, not the usability itself. Failing to address this will still give you usability issues and trying to fix them after the fact is stupid. Again, Microsoft tried to fix security with a bunch of addons as an afterthought and it just didn’t work.
The issue is that the Linux developers simply don’t respect usability. They don’t value it as something necessary to development. Fundamentally usability is treated as ‘making it work for the dumb users’ and it shows.
Launchpad Sucks
Take Ayatana’s home, Launchpad, for example. To ‘get involved’ you must have an account with Launchpad. Ok I thought, I’ll sign up, so I went to the site, put in my email address and tried to register. Except you must open the confirmation link with the same browser you signed up for – if you open it with, say, your Blackberry it won’t work. They obviously value security by implementing such an (albeit pointless) step but if they valued usability they would have thought about this use case before. Large amounts of modern sites often don’t require a confirmation email or use OpenID to make life easier – but not Launchpad. So after trying to remember the webmail login and clicking the link from the same browser you are faced with this:
Password must be at least 8 characters long, and must contain at least one number and an upper case letter.
One number and one upper case letter. None of the standard passwords I use have an uppercase letter. Sure they are alphanumeric strings and contain all sorts of dodgy ASCII but no uppercase. I am forced to invent a complicated password which I have written on a post-it note. Security enforced again (badly) at the expense of usability.
Once you are in you are faced with a page that looks like this (right).
There is no way to get from this page to the rest of the site – no links, nothing. It appears like you need to change your password again to get in. You need to directly put ‘launchpad.net’ into the browser address bar to actually get to the site, which doesn’t actually log you in, instead placing a ‘log in / register’ link at the top right. You then get taken to a page with a button saying ‘log in’, and clicking it logs you in – no details required (right)
. I have no idea at all why this step is required – you are logged in by virtue of it having verified your details – what is this pointless step? And why didn’t I get taken straight to Launchpad.net after signing up?
After all this work you can finally ‘get involved’ so to speak so I hopped on over to ‘https://launchpad.net/~ayatana’ to see what was going on and found that the premier discussion forum for usability on Ubuntu was a mailing list. A mailing list. I hate mailing lists. While in the last 40 years the rest of the world has moved on to other forms of dynamic web-based collaboration they are still using the good old staple of IT communication from the 70′s. Want to read over what’s been discussed? Prepare to look though the horribly presented archive which makes reviewing topics almost impossible. Want to comment on anything? You have to do that through email. It works, sure, but does it work well? No. Is it intuitive? No. Is it a pleasure to use? No. Does it encourage contributors? No, it probably sends them running screaming.
Missing The Point?
While I am not going to dismiss Ayatana as quite as laughable a failure as the Gnome Usability mailing list, which is a whole special sort of failure, it is still fundamentally missing the point:
If you want usability to improve, educate the people making the mistakes and convince them of the value of it. Trying to fix their mistakes retroactively will be an order of magnitude more effort and will almost certainly not give good results.
Usability is still seen as something for ‘dumb users’. Most developers sit in their ivory CLI based Bash/Emacs/GCC castle and make things usable for the little people when if they truly valued usability they would start by placing focus on the tools they personally use. The current system of the walled garden of usability where users and developers might as well be using a different OS says that the developers do not feel they need usability. Even simple tools are developed as a CLI version and then ported to the GUI, commonly with just a wrapper around the CLI version. You in the end have a choice between the arcane CLI version or the usually underpowered, overly simplistic and buggy GUI version.
Even now that terrible, terrible article ‘Linux isn’t Windows‘ gets bandied around and treated as fact on a regular basis when, in reality, if usability was valued in such communities the poster would be rightly ridiculed.
Ultimately if usability was a concern, and not just something for other people, Launchpad would have been the first thing to be fixed not probably the last. Actually it would have been made properly in the first place. As with security it only takes one mistake to compromise a system with usability it only takes one mistake to destroy the user experience. Wilfully making the mistakes on the rationale ‘we’ll fix it all later’ is simply not workable.
Furthermore
Such as ‘easy’ has been co-opted to mean ‘quick to do once you have learned how to do it, irrespective of learning curve’ by the FOSS community, the terms usable and usability are quite often redefined to support the status quo. Take the following link for example: Usability Comparison: Five PC Operating Systems Compared.
The basic premise is ‘lets reduce usability down to how many clicks an operation takes’. Guess what, Windows 7 falls as a far last with this fantastic quote:
I honestly did not expect Windows 7 to fall behind so badly. I could probably fine grain the tests further, but then I would begin to react more on the impressions that I get from the OS rather than the simple ease of use, or lack of hoops to jump through.
That’s what happens when someone who knows nothing about usability but who likes Linux takes a scientific approach to it. I mean, ‘simple ease of use’ indeed. The best bit is this, though:
Kubuntu follows the normal mantra, right-click on desktop to change your background. Thing is, the item you need to click on is “Desktop Activity Settings.” Once you have that figured out (to my shame I had to Google, because for the life of me I could not find where to change my background simply because of the cryptic naming) you can select a background as per normal.
That’s right, he actually had to use Google to find out how to change wallpaper on Kubuntu. It really is that unintuitive. However Kubuntu was not penalised for the added time (And got 4 points to Windows 0) as it fell outside the remit of the test and as such beat Windows. It could be argued that if you just made the whole screen as a 1280×800 grid of single pixels you could assign a function to each one (just over 1 million functions) to a pixel and have the most ‘usable’ system in the world. All you’d need is a look up table and a ruler!
So, on the incredibly unlikely event that someone from Canonical reads this, actually cares and is in the position to do something, start a project on educating developers (and users) on what usability is and why it is important as I don’t see anything else working. Considering the bulk of the developers don’t even know what it is you’ve got a large job ahead!