1. 8
    1. 19

      Not disputing anything in the article, but I think there is another important angle to consider:

      Big companies with huge development budgets are also able to afford huge marketing budgets. This means they get a lot of users regardless of the quality of their design. A lot of these users had little experience with software until they started using commercial software (I am talking historically now, I think modern kids grow up with a smartphone in their crib). So even though the software might have been badly designed, people got used to it because it was all they knew. So ‘good design’ is to a large degree defined by big commercial software, not always by actual merit or sensible usability principles. On the other side of that coin, a lot of computer nerds and developers are used to command line interfaces, and these can be quite elegant and powerful. Calling them badly designed is missing the point slightly.

      What it comes down to for me is design that teaches vs. design that hides how things work. Take for example the wifi signal icon on most mobile devices. 3 bars is good, 1 bar is bad, 0 bars means not working at all. Everyone uses it, the industry standard. This actually hides a large number of values like signal to noise ratio, signal power, packet loss rate, ping and bandwidth (actually probably only 1 or 2 of those even have an effect on the icon in most cases). If on the other hand each of these values - to the degree it is measurable - were available to the user, the user might learn a lot about how wireless communication works and be more effective at troubleshooting and optimising their digital experience. I am not suggesting valuable screen space should be taken up always showing these values, but if the user tries to interact with the icon in some way they should be available as a pop-up or tooltip or expanded icon or whatever.

      People often reply that no one would be interested in this, that users ‘just want things to work’. But I am arguing they have been trained to want that on purpose by UI design. Having the extra information available will result in people building up experience gradually, over time. People care a lot during periods where connectivity is an issue and that is when these values matter. Once there is some familiarity the whole language and understanding of networks among the entire population is elevated to a new level and this has consequences across everything.

      Big companies can afford to domesticate their users, to iron out every wrinkle in the UI so people can use it without thinking and contact customer support if something inexplicable happens. They also have a a vested interest in doing this, and making their specific design standards familiar to the users so that others are forced to emulate them. Not only can FOSS developers not afford this, it also goes against the principles of FOSS to even try.

      My call to designers is to try and make a UI that teaches the user how the tech works. I know this is a big ask, but it will be worth it.

      tl:dr Corporations can afford to make their users into cattle, ‘good’ design would be to make your users into better humans.

      1. 2

        What it comes down to for me is design that teaches vs. design that hides how things work. Take for example the wifi signal icon on most mobile devices. 3 bars is good, 1 bar is bad, 0 bars means not working at all. Everyone uses it, the industry standard. This actually hides a large number of values like signal to noise ratio, signal power, packet loss rate, ping and bandwidth (actually probably only 1 or 2 of those even have an effect on the icon in most cases). If on the other hand each of these values - to the degree it is measurable - were available to the user, the user might learn a lot about how wireless communication works and be more effective at troubleshooting and optimising their digital experience. I am not suggesting valuable screen space should be taken up always showing these values, but if the user tries to interact with the icon in some way they should be available as a pop-up or tooltip or expanded icon or whatever.

        On MacOS, if you click on the wifi icon with the option key held down, then you do see a lot of low level information, including most of the information you are asking for. I use the Cinnamon DE on Linux, and there’s no corresponding key binding that I can find. No doubt I can find and install a CLI command that shows the same information, but that would be a lot of effort. So MacOS is better designed, for this specific case.

    2. 17

      I have mixed feelings about this “open source software is badly designed” take…

      First of all, it lumps a lot of software together. Gnome meets basically all of the author’s points and it’s got so much design work going into it (and much of it spilled over via GTK) it’s not even funny. Lots of web-based FOSS tools would also score high on pretty much any design assessment.

      Second, I think these takes underestimate just how many of the volunteers that create this software for their own use actually like their current designs. One of the big points of FOSS is that you have the power to make the software that you want, rather than being forced to accept software that’s good for the shareholders but may or may not be good for the users.

      And third, I think it underestimates just how much power users actually have, and how resilient they can be when putting up with bad UIs. These are the same people who – after getting bit by it a couple of times – manage to successfully navigate all sorts of dark UI patterns that are deliberately bad, rather than (allegedly) poorly designed.

      Poor design is a convenient scapegoat for many FOSS programs’ lack of success. But in almost every case where it was cited, one could find deeper-running causes – like unreliable interop with proprietary tools (not FOSS’ fault but users understandably don’t care that much), or lack of commitment to features. Playing the “bad design” card just avoids confronting these far more manageable demons.

    3. 9

      Funny, the only software I struggle with at work is proprietary. And by struggle I mean, I can’t adapt it to my accessibility needs.

      Not saying the article is wrong, but as they say “design is how it works”, and with open {source, protocols, standards} I’ve had more luck finding something that works for my particular needs.

      What do I do when Outlook isn’t accessible to me? Reporting my problems to MS accomplishes nothing.

    4. 4

      This is a small piece of the OP but it bothers me:

      Nobody has the time and skills to customize and perfect all the software to their desires and benefit from the openness

      This is why the GPL is viral! Because nobody can do it all themselves, it ensures there’s always competition between people who can; you are free to get it from another provider or to take your copy and get someone to edit it for you.

      I think this is not well understood.

    5. 4

      I should add that, from my POV, MacOS is an UX disaster. I don’t understand anything, there’s no logic. And it’s not about me : besides developers, no one I asked can tell the difference between “minimising” and “closing” an application. Which is normal because the behaviour depends of the application.

      I did the experience twice with my parents which never touched a MacOS before : it took a lot of time, lot of training, lot of configuration and fidling (ever tried to boot a new macbook without having an existing iCould account? Good luck!)

      Yet, despites all of this, Apple is seen by everyone as “the best UX”. To the point where everybody try to copy them.

      Oh and should I add that every webservice, every commercial software out there regularly change its UX (“upgrade”) to make sure you can’t learn it once and for all?

      What designer call “good UX” is mostly “Ubiquitous UX with trendy icons that will look outdated in two years” (a bit like fashion)

      You know what is a really good UX?

      Unix command line. Learn it once and you are settled for life. Once you master the basics, you can even learn and improve for your whole life.

      Is it for geeks?

      When Microsoft released DOS, everybody favoured DOS over existing UX. Because they cared about launching their programs, that’s all. Yes, accountants and cashier were using the command line and it was “normal”.

      Design is basically marketing to prevent users to actually learn how to use their system, To make them prisoner of the upgrade cycle.

      1. 3

        And it’s not about me : besides developers, no one I asked can tell the difference between “minimising” and “closing” an application

        Possibly because the question doesn’t apply on macOS. You don’t minimise an application, you minimise a window. Both closing an application and minimising a window are mechanisms that remove it from view and make it possible to restore it later. The more confusing distinction on macOS is closing and hiding an application. This is confusing because a hidden application that supports sudden termination is quite likely to be closed in the background and will be relaunched when you unhide it.

        The behaviour does not depend on the application. Minimising any window puts it in the bottom / right of the dock. Closing an application exits it and lets you relaunch.

        ever tried to boot a new macbook without having an existing iCould account?

        Yup, you click the ‘do not use iCloud’ button in the setup wizard. Last time I tried to guide someone through this, it took about 5 minutes to go from clean install to having them using the system.

        When Microsoft released DOS, everybody favoured DOS over existing UX. Because they cared about launching their programs, that’s all. Yes, accountants and cashier were using the command line and it was “normal”.

        They used it because its command line looked and behaved like CP/M. And most of them struggled. They wrote post-it notes with the handful of commands that they ever needed to enter and, if they didn’t work, asked for help from tech support.

        1. 2

          Years ago, I had a passive-aggressive blog post about how Mac OS’ application windowing model works. It makes much more sense, especially for things like backgrounding (an application can remain open for other user tasks like making a new document, or to do tasks in the background). It was pretty snide, but I can’t help but think about it every time I see comments that fail to understand Mac UI. It’s had its own UI traditions for decade, been consistent about them, and usually fairly well reasoned. They might not be your favourite decisions, and there’s some flaws I certainly don’t like about it, but it’s nothing like the complaints I see. Most of them seem to be “it isn’t like Windows/my pet X11 desktop that’s probably a Windows clone, and therefore sucks”.

        2. 1

          That’s not different from graphical UIs. My grandpa always writes post-it notes about what buttons to press if he wants to do a specific action and calls me if he can’t find them.

          1. 1

            The difference is the discoverability. If you don’t know how to do something in a GUI, you can look in the menus or toolbars. If you don’t know how to do something in the command line, then you might be able to pass --help or /? to the tool, to get some help, but if you don’t know what the tool is then finding it is very hard. The same is true of not knowing which GUI application to use, but generally there are a lot fewer of them and they do more things. Files are automatically associated with an editor application in GUIs, so if you know that you want to do something with a file of type X, you open it and then explore. Finding the command-line tool that can open a specific file type is also difficult.

            1. 1

              The difference is the discoverability. If you don’t know how to do something in a GUI, you can look in the menus or toolbars.

              Many non-technical people seem to be incapable of doing that.

              Files are automatically associated with an editor application in GUIs, so if you know that you want to do something with a file of type X, you open it and then explore. Finding the command-line tool that can open a specific file type is also difficult.

              xdg-open

              1. 2

                I’m still baffled how most folks first reaction isn’t checking out the preferences or config files. Usually there’s a lot of caddies in there to make it a happier experience for you, but often gets neglected and then criticized.

                1. 1

                  goodies*

      2. 2

        Yes, accountants and cashier were using the command line and it was “normal”.

        About 15 years ago, in an intenship, I wrote a program. I didn’t know how to do GUI at the time (not even Qt), so I settled for the command line. It was a simple image processing program: red/infrared image in, NDVI image out, no more complex than this:

        red_infra_to_ndvi <ri.raw >ndvi.raw
        

        Real bare bones, but then you could open the raw images in some GUI program. Now I did many things wrong in that internship, but one feedback that stroke me as odd was that this little program above was “unusable”. Most probably because it required the command line. And this was coming from professors old enough to have been forced to work with DOS at some point.

        Those same professors also wondered why I used LaTeX for my internship report, instead of using “the standard”, that is, good old proprietary Microsoft Word. Surprising coming from academics, but I guess not every field uses LaTeX.

        Anyway, that shows that independently making a better UX than what’s mainstream is almost impossible: any noticeable difference comes with a huge downside: users are surprised (not in a good way), then they must discard old habits and learn the new way —likely frustrating or inefficient at first. To overcome this the advantages of the new UX have to be huge, and demonstrable in a relatively short term. Good luck with that.

        If you’re Microsoft or Google or Apple however, improving the UX is much easier, because whatever you do is automatically mainstream. Just make the change, force it down the throats of your users, let them grumble for a few weeks, and maybe your new UX will turn out to be genuinely better, instead of some meaningless change for the sake of chasing some trend. Maybe. If you’re lucky.

    6. 3

      I think it’s interesting that the author cited Git as an example of a poorly designed open source application because the commercial competitors like Perforce are famously also incredibly hard to learn and use. Maybe worse!

    7. 2

      The idea that git’s CLI is well-designed is a great spit-take, and the first 2/3 of the article is really just about open source philosophy, but I think the later point of the article is dead-on: good design doesn’t happen by sanding down a corner here or there, it’s from thinking about the entire app or workflow holistically. I had a front-row seat to this tragedy in the early days of gnome: if non-designers get a vote equal in weight to designers, no good design can happen. It really requires breaking out of some comfy local maxima.

      1. 3

        I constantly think about this ancient Gruber post - often times when programmers think of design, it’s in terms of “we’ll make file management friendly by designing an X frontend to ls” instead of “let’s make a file manager”.

        As for designers vs non-designers, I wonder if HCI is an inherently authoritarian art form, and usual open source development is going to cause problems for it. I’m going to be a bit of a prick and link my own post (appendix is the relevant part), because it’s an interesting question.

        1. 2

          ‘Designers’ covers a lot of different people and levels of expertise. HCI is closely tied to psychology and leads to a lot of objectively measurable things. Fitts’ Law is a bit more complex on touchscreens (and needs you to reason about parallax, something that the people who designed the on-screen keyboard that I’m currently using on my iPad ignored, leading me to repeatedly make the same typos), but for track pads and mice it gives some quite simple metrics for evaluating a UI. It tells you where to put the things that the user will want to click the most. The vast majority of GUIs (open and proprietary) get this spectacularly wrong. The easiest places to hit on a screen the size of a typical laptop are the corners. Think about what your favourite GUI puts there. Is it the four things that you want to click most often?

          The same is true for things like button order (humans, even in right-to-left reading order countries) perceive back as left and forward as right, so your buttons should respect this. The average human can keep 3-7 concepts in their active attention at a time, so this gives you limits on the complexity of attention that you should present. Humans approximate thinking using neural networks, which learn by repetition, so you should ensure that the same action has the same result as much as possible (e.g. put things in the same place in the UI across contexts, use the same shortcut keys, and so on). Around 10-20% of humans place things in hierarchies for natural organisation, but most have good spatial memory for up to about 20 things and organise other things with overlapping labels.

          Just by paying attention to the rules in the above paragraph, you can design a GUI that’s better than most of what’s available today. And most of that is drawn from papers that I read 10-20 years ago, many of which were decades old then. Some designers (I’ve been privileged to work with some) study this stuff and apply it. A lot more are failed artists. Artists have a natural tendency to want to make things distinctive, which works directly in opposition to good usability.

    8. 2

      s/open source//

    9. 1

      Given that “successful” usually means “way more work and headaches and user-bad-behaviour without any compensation beyond github-number-go-up” why should we assume volunteer projects want to be more successful?