Máirín Duffy 🙋 is a user on mastodon.social. You can follow them or interact with them if you have an account anywhere in the fediverse. If you don't, you can sign up here.
Máirín Duffy 🙋 @mairin

Feedback greatly appreciated :) I'm proposing a talk about UX design in open source at a UX conference. I'm a bit intimidated bc I don't normally do UX conferences. What do you think:

"Open source technology is now mainstream. Technologies large and small that impact people all over the world are powered by open source platforms, libraries, and backends. There’s an urgent problem, though: open source has become synonymous with shockingly poor user experience (UX)." ... => cont

· Web · 12 · 17

"In this talk, we'll discuss the imperative need for UX in making software freedom ubiquitous and accessible to all. We’ll talk about how open source’s UX challenges enabled the proliferation of echo-chambered, disjointed, and incompatible social media platforms. You’ll learn about the forces in open source development have lead to its UX challenges, tips for making design work in an open source context," ... => con't

"and how to deal with the culture shock of working in an open source project that may not have much design experience! Let's help people solve problems without becoming a product themselves, using open source."

Any/all feedback / wordsmithing / tomato-throwing greatly appreciated :)

@mairin Your text does have me wondering how you get from application UX to social media echo chambers. They don't seem to be readily related without a few intermediary hops. Would make me curious to attend your talk just to understand that.

This reads like the talk will be a meta-discussion about the subject of getting UX folks into opensource, rather than a talk about specific UX issues and how those specific issues my be resolved. If that's the thrust of your talk, I think you've nailed it.

@monsterjavaguns @mairin I agree with this feedback; I'm confused if the talk is about "UX in open-source in general" or "UX in open-source social media". If you haven't already planned this: it would be good to show some "good opensource UX" examples to 'soften the blow' ;)

@meejah @monsterjavaguns
it's definitely not social media specific. maybe i should drop that reference. it's more about the 'user as product' biz model and silo-ing of apps / compatibility!

@mairin (Just to be clear: I do agree with your central idea that in general opensource UX is .. bad). I personally would love to know how to get "UX people" excited about working on open-source projects!

I need a talk description that is separate from the abstract I already posted a draft of, tell me if this is too cheesy:

"Open source has become ubiquitous with bad UX; in this talk we'll talk how this happened and why reversing this trend matters for everyone, particularly those concerned about ubiquity of the user-as-product business model. Once you're fired up to see this problem solved, we'll talk
about some approches to UX specific to the open source development context, " => cont

"as well as how to get over the cultural barrier between design
culture and open source development culture. Take heart: the foundation and drive behind open source means it has a greater potential to
deliver a great UX than profit-motivated, user-as-product solutions."

Nice!! not cheesy.


@mairin I like this abstract! (Not cheezy).

@mairin just maybe check the repeated words and phrases, also is ubiquitous the right word?

@MightyPork @mairin perhaps "synonymous" rather than "ubiquitous"?

My main question: will this talk be uploaded to the net and where/when can I find it?? Sounds awesome 😃

@mairin This looks good. I feel like that we've already made great headway in reversing perception that open source has bad UX. But I may be in a bubble. :D

@sri I think the GNOME project is a nice little bubble of Doing It Right that unfortunately not a lot of projects have kept up with :(

@mairin Yes, and probably a good anecodate to use if you're going to a UX conference. I'm trying to do something similar with open source marketing and community management. In general, that's kind of non-existent for general pure open source/free software projects (eg no company behind it)

@sri @mairin would love to see what you're working on, Sri!

@harriskenny @mairin I'm working on a talk for SCaLE, although that is more about working with upstream, and the other one is a subject matter that I've been musing about since I'm considered GNOME's unofficial community manager

@mairin This description feels very clear. I have a much greater understanding of where your talk is going now.

I'm trying to figure out what are the best parts of this description that could be used to clarify your general abstract.

@mairin I like it! I think I'd drop the "Take heart!" section because it's implied in the talk that you have solutions.

@jonbell maybe instead:

"The foundation and drive behind open source means it has a greater potential to deliver a great
UX than profit-motivated, user-as-product solutions, making it a compelling area of software for designers to be involved in."


@federicomena i have a *rough* recorded version from a practice run - i gave a version as a keynote at Ohio Linux Fest, but apparently their video recording didn't work. I gave it better then. Anyway happy to PM you a link to the rough one, I really need to re-record for general consumption.

@mairin @h from the POV of someone employed in tech but who wasn't *that* bad at art when in high school (1980s)

1. teenagers in my country had (have?) at age 14 to select "options" of subjects when in high school. this splits them into "arts/science" groups.

2.this again at ages 16-18 (a-levels) and at University. I dropped out because I wanted to do cool things with multimedia but it wasn't recognised as "serious idea" in 1992 and not possible to transfer between arts/science courses ++

@h @mairin

3. so this split should be dealt with/stopped from *high school* onwards (this does appear to be happening thanks to RPi/Arduino etc)

4. old gender divisions have returned too for teens/YA- where "art is for girls", "tech is for boys" (there was better attitudes in my Catholic junior school in late 1970s, where genders were allowed and *encouraged* to do art together and I saw the same on the "kids hour" of German Catholic TV recently (I watch it to improve my German 😆) ++

@mairin @h

5. a lot of FOSS tech is based on command line apps.

GUIs seem to get "bolted on afterwards", and when end users manage to get to the support communities (often on difficult to use things like git*) stuff like UI/UX changes is "batted away" as "cosmetic" and marked "WONTFIX" etc and/or devs say "code it yourself or pay someone to do it" *because* there's noone looking at customer complaints or dwindling sales figures like in Redmond, Cupertino and other "bad" corporates (end)

@vfrmedia People are trained to specialise and forced to make hard choices at all stages of their development.
This doesn't necessarily lead to development of a person's fullest potential. It leads to development of a capitalist state's fullest potential.
It didn't use to be this way in countries like France (and countries that copied their education system), but most of the world today is making integral educaion a thing for the rich only.



exactly and this change (for teenagers) happened fairly recently, around 1987 by my memory. I had mental health probs in late 80s from pressure of parents to do well in exams and really missed being able to do art, music etc, before that time I never had any trouble with highschool, lots of friends across all groups, no bullying etc, was still seen as one of "cool/rebel" kids and that was in spite of having "odd/niche" techie hobbies (I did do some high tech pranks/mischief 😉 )


i suspect its symptomatic of the record inequality that started to grow in the 1970s.... specialization and tdst scores to have better shot at livelihood since middle and lower class portion of pie ever shrinking

@mairin Did you try to quantify/categorize problem? There might be a false dichotomy based on hearsay and out focus on some few platforms originated from Silicon Valley obsessed with (I hate the ambiguity of the use of the word "experience" here, but that's another story). I work a lot also with enterprise software and compared to this almost any random project really shines. So, if, say 40% is free software, 55% is enterprise, what is left? How do we measure what matters?

its a good question. im not sure how to quantify. i spent some time getting data on social media posts about open source and UX but thats a self selecting population. I sort of rely on folks to be familiar with the bad UX connotation bc i only have so long for the talk and that could be a whole other one. I think the reasons enterprise UX sucks are diff than the reasons FLOSS is known for bad UX tho

@mairin I don't want to influence your talk in any way, I only want to make sure we do not measure quality of free software just by looking at most visible examples of desktop environments (still trying to catch up with Windows 95?;) or office software. I think free software fails badly mostly when trying to mimic some user interface fashion du jour. Those failures are highly visible but I don't think they matter much in the end. Cool endeavour, hope to be able to attend or listen to your talk!

(and I agree, btw, actually the only usable enterprise sw im aware of is FLOSS :-) )

@mairin Here's what I read (into it):

The "user-as-product business model" uses open source as a backend, and then builds shiny, proprietary, picture frames that entice (and trap) users up front. End users *do care* about being the product if asked, but they have to be able to use the tool 1st.

In part, I'm sensing you're wanting to:

1) create open source UX collaboration

...so there can be...

2) better end-user options


3) less user-as-product

leading to

4) a better world

@mairin Are you proposing to include some stuff on not only how it might get fixed, but how we convince everyone that it's fixed once it is? That seems important to me ("open source is crap at UX" has the status of a meme which can't be argued against these days, in my experience, and it makes me sad) but it might be outside the scope of what you plan to talk about? I mean, Fedora and Ubuntu have had design teams for ages, but I can't convince anyone this is even the case...

with this audience... im not sure. ive never felt comfortable in broader, non FLOSS UX community. The venn diagram between the well knowns there and open source community is... not very intersectional. but maybe i overestimate the importance placed on celebrity.

@mairin that's fair. This is a cool thing you're doing; brave to go into that audience. I hope it goes well.

well we'll see if it gets accepted :-)

@mairin this is *SO NEEDED*! Thank you for doing this.

@mairin I did some edits on the text:


(Note: I do this for the Michigan!/usr/group website so I have some experience punching things up and making them coherent. Hopefully the edits help make this better.

Will this talk be recorded? Seems like an interesting talk. Looking forward to hearing it!

i am giving them the ok to record so we'll see how that goes. ill do a screencast to make it more widely available if needed.

@rysiek I noticed there's a big gap between the "the user is a coder and obviously understands the inner workings" approach and the "the user is an idiot and can't handle more than one button". The user=idiot approach made me quit Windows and I never regretted it. I think most open-source stuff takes user=expert approach as an opposition. However, I want to believe there's something in in the middle that is a good UX for both experts and beginners.If you know how to do it, please tell me

@Wolf480pl @mairin for me that's the difference between GNOME and KDE. In GNOME I always felt like I am being treated like an idiot who can't handle more than 2 options; in KDE it's options galore (which is daunting to many newbie users).

I always thought the right approach is "show the basic options but have the advanced ones available one-two clicks away". Like a checkbox "show advanced options". This seemed to strike the balance in my experience.

@rysiek @Wolf480pl yep, the fancy UX designer term for that is "progressive disclosure" :)

@mairin @rysiek what is the UX designer term for helping the user learn the underlaying (data/domain/component) model in a smooth way?
In many situations knowing the underlaying model (eg. knowing that git stores history in a graph of commits) really empowers the users, but at the same time, it's difficult to explain the whole model in a short time, so you probably want the user to learn it gradually.

@rysiek @Wolf480pl we call the ways we make the user's mental model harmonize with the underlying model of the software 'affordances' - eg slideserve.com/fola/mental-mod

@mairin @rysiek
I've seen the words "simple and elegant" in the presentation, and it reminded me of this post, which may be relevant:

@mairin @Wolf480pl I am defs sending this thread towards people working on some user-facing software on our end. Thanks a bunch!

@mairin @rysiek Looked through it, and noticed it suggests that making the manifest model close to the implementation model is bad, and suggests making it close to user's conceptual model instead. But what if
a) the user has no conceptual model yet
b) the user's conceptual model is wrong and will lead to mistakes/errors
c) due to the specifics of the particular program, the user will need to know the implementation model sooner or later?

yeh, generally its not advised to make user mental model == system model. they need to be in harmony though. the boundary of where the mental model breaks when applied to the system you hope only fails to encompass the most remote / edge cases. where they are 1:1 is where the user is the developer. there is always a tradeoff between accurate represenation of the system + inscrutable UI vs intuitive simple mental model + weak functionality too narrowly scoped

a) is a challenge for highly abstracted systems like say networked storage. you have to map out tasks user will want to do, most frequently, greatest number of users, optimize for those common cases and find creative analogies / representations

@rysiek @Wolf480pl a) (cont)
sometimes tho the bar is much lower, simple consistency can make a big diff

b) this means developer chose wrong model for users. not users fault. equally if not more error prone is requiring too steep a learning curve to be productive - people are busy and dont have time to learn everything.

@rysiek @Wolf480pl
b) (cont) solution is to find a better model.... usability testing identifies flaws in current model. design thinking helps generate ideas for new models. prototype testing helps determine which new model idea is best.

@mairin @rysiek what I'm concerned about is that the designer may be tempted to introduce an oversimplified model that works well for the 10% of cases/functionalities that happen 90% of time, but when a sligtly unusual case happens, the model will fail spectacularly and the user will feel like standing in front of a wall.

thats antithetical to how designers work tho. designers are trained to fpcus on the 90% of users, the 90% of frequent tasks. focusing on 10% of users, 10% edge tasks is a pretty awful designer.

where i see designers and developers clash sometimes is that developers tend to focus on the edge cases because they need full coverage. designers take the opposite approach, and focus on the most common cases. visual hierarchy comes into play here. the most common functions should have the best real estate. edge functions should be more remote / inconspicuous

@mairin @rysiek
IMO developers focus on turning as many edge cases into not-an-edge-case-anymore as possible.

hard to do when supporting third party hw vendors is a thing :-) i still believe designing for enterprise networked storage is the most complex UX case ever.

@mairin @Wolf480pl I... don't even want to start thinking about imagining the complexities involved.

c) prolly a tired analogy but rings true - ive been driving since i was a teenager and i have the faintest clue about how car runs beyond push clutch to switch gear, push gas to go, brake to stop, turn wheel in direction to go. and i drive stick more advanced than most americans ;-)

@mairin @rysiek
yes, but notice that I say "there exists a program that will require the user to learn (something vert close to) the implementation model", not "every program will require user to [...]". It just happens that driving a car doesn't require knowing how it works internally, but that's just one example. There might be others in which case it's the opposite.

there are instances where you need a closer understanding of how a car works to drive it. they are edge cases tho. eg disaster scenario, no gas, need to conserve gas - what things use the least amt of gas for the return? how long will that battery last if you use radio vs dome light vs head lights

@mairin @rysiek are you trying to say that everything is like car driving?

no, rather everything has edge cases :-) and you cant address them all

for example, git? ive had high school interns pick up git using sparkleshare, mental model => dropbox. yes, falls apart if conflicts arise but thats kind of rare the way sparkleshare works.

@rysiek @Wolf480pl
that being said if git was a car, im certainly driving but definitely running reds and crashing occasionally 😂

@mairin @Wolf480pl I don't think anyone apart from Linus the Allmighty uses git without crashing hard all the time.

Oblig. XKCD. mastodon.social/media/_bxzG87V

/source: xkcd.com/1597/

@Wolf480pl @mairin I can neither confirm nor deny I have at least 3 instances of "old fscked git local copies I will fix one day, but work has moved to a clean clone in the meantime 2 years ago already".

@rysiek @mairin git was the first VCS I've learned in my life. I find it beautiful. I always use the graph mental model. I don't remember ever corrupting a repo. Certainly not durign last 3 years.

@Wolf480pl @mairin I stand corrected, so there's Linus the Allmighty, and Wolf the Gitmaster. :)

And the rest of us, mere mortals.

@rysiek @mairin there's more. Everyone my age or younger who uses git a lot is a Gitmaster. Everyone who started using git as a teenager and doesn't remember SVN.

@Wolf480pl @rysiek @mairin so, what was the largest project you worked on and the largest team?

Did you start when git was still a pile of shell, perl scripts & c plumbing?

How do you handle binary files?

@mulander @Wolf480pl @mairin oh boy, I spy with my little eye a pivot in the discussion.

I'll be fine outside of the git debate though.

@mulander @mairin

I guess this one was the largest

I started using git around 2012, so I guess it wasn't a pile of shell then anymore.

Binary files? I never touch those.

Ok, you're right, I've seen nothing.

Still... how do you manage to corrupt a git checkout? Like... how is that even possible?

@Wolf480pl @mairin I had the local repository get corrupt on a power failure mid commit on a couple of occasions to a point of no return - for one example.

I had people doing a force push between repositories clobbering commits.

People doing crazy rebasing on changes that were already shared etc. Plenty of ways to f-up a git repository. Granted all can be attributed to user error but they usual thing people point me at is 'do a fresh checkout' - as no one ever thinks fixing it is sane....

@Wolf480pl @mairin the corruption from the power outage led to corrupt or missing objects - as in .git/objects - oh please tell me how do you fix those without using a fresh clone? :)

@pony @mulander @mairin sure. You're travelling, 10 minutes left on battery... I can still finish that commit... git commit\n and the screen goes dark, as you hear the HDD spinning down

@Wolf480pl @mulander @mairin Hear HDD spinning down? Guys, you're like from 20 years ago :D

(More seriously, I guess stuff happens, I had UFS corrupt itself when there was the last big outage in Prague and it was not amazing, but with a laptop, hm, not really.)

@pony @Wolf480pl @mairin a git corrupt repository can happen with FS corruption, it can also be caused by bugy 1st or third party clients (like an IDE mishandling the format), transfering the repository around without doing checks (like just manually cp'ing it over the network without the git command) or even a fricking bit flip.

In general, this happens - and the usual response is do a fresh clone or the whole repository is hosted.

@mulander @Wolf480pl @mairin I make enough own fuckups in my repositories that I don't need any other source of irreversible corruption :D

@mairin @mulander @Wolf480pl I think I code mostly on a train because I can't concentrate anywhere else, but I don't experience power outages there?

here in backwards america, we typically dont have power outlets on commuter trains (in boston at least.)
@mulander @Wolf480pl

@mairin @mulander @Wolf480pl I see, I commute standing in a packed bus and don't spend more than 10 minutes on a single one without transfer, so I have "coding on a train" associated with a comfy seat on a longer distance something, usually with an outlet.

@mairin @pony @mulander @Wolf480pl

Reliable power and comms is safety critical to a train (whether or not these resources are shared with the passengers, although thats common now on modern European trains).

in UK a whole days uninterrupted good quality power isn't *always* guaranteed. a UPS will keep your kit online, but you have to hope the batteries in the telecom street cabinet (for VDSL) are good and/or your *ISP* has backup power. Cable providers often do not!

@vfrmedia @mairin @mulander @Wolf480pl I rarely have a power outage, however, with my shitty laptops, it's not exactly rare it'll shut down itself (very suddenly) because it's overheating :)

(No idea about how this is elsewhere, but power outlets on the train aren't 100% reliable, they don't run out of the batteries, so there are cut offs when the locomotive doesn't provide power (neutral sections in the overhead wire, etc.))

@pony @mairin @mulander @Wolf480pl I've not been on a train for a while but newer ones have power sockets (at least in 1st class).

Older ones did too, except they were not officially for use by the public. A few years back someone did use one to charge his phone, and then argued with the guard and some other train staff when told to stop, might have used some strong language as he ended up being "greeted" at London by British Transport Police and was cautioned/fined!

@vfrmedia They are now putting them into all new and refurbished trains because it doesn't cost very much and competing buses/planes now usually have them too.

Older cars only had single socket on the toilet (for electric razors) and I know people who could spend the entire trip there... These however ran from batteries because those cars didn't have power connections (only HV heating). So it was unfeasible there'd be more of them for the passenger electronics.

@vfrmedia This is a very nice example of a power source of an older railway car.


(It's easy to mistake for a damper on a newer cars.)

Modern cars have boxes with an electronic to step down the heating HV power to be usable for on board stuff.

(Of course, these are all UIC cars, have no idea how the similar UK stuff looks like.)

@vfrmedia Also, it's super funny to imagine that even in the late 60's, it was easier to connect a DC motor to a generator with a shaft in order to get the low AC for the auxiliary on-board systems, because the high power part of the entire electric train was essentially just a big variable resistor used as a voltage divider for the 3 kV DC from the overhead.

@pony I'd have to ask my friend who volunteers with the preserved railway to double check but I think old British Rail locos did have a similar motor-generator system and DMUs had an alternator driven from the engine for lights and some other stuff. Was as strong as 1000V/1500V single phase on some trains but normal 400V 3 phase industrial power was used on others (that can of course be split into 3 x 230V phases))

@vfrmedia Also depends on the heating. When they switched from the hot steam (obviously something easy to come by on a steam train) to the electric heating.

But then, my knowledge doesn't transfer to the UK railways, that's a different world from the continent.

@pony they did the same here, I think thats why 1000V was initially used for the heating. By the end of 1980s BREL and "continental" railways were using many of the same components.

Only the trains looked different on the outside. and I think today now we all get our trains from the same manufacturers

@vfrmedia There are several "standards" for heating, ranging from 1000V AC to 3000V DC, used quite... randomly. Modern cars and locos can deal with most stuff if you ask for it. It's really just "tick the correct boxes on your order form" nowadays. They'll put you what you need there.

For the UK, you however also need to tick a box for a specific loading gauge, so you have to make up your mind, it's either the UK or the continent, but probably not both.

@mulander @mairin I didn't expect that one. I've never seen it happen, but it would be interesting to see how this could be prevented.

ive met a lot of gitmasters who know less than i do

i used to use svn and the release folks handled a lot of the aspects git pushes on users. i love being able to commit locally, but it also forces me to do tasks that were done for me before.

@mairin @Wolf480pl to be honest git always felt like a "back-end" kinda thing, missing an actual front end. As if somebody decided to expose functionality from a library by just exposing every single internal function.

@mairin @rysiek
I was about to bring git as an example.
IMO it's harmful to learn git the way you've described.
Once you understand that git is a graph of commits, it's so much easier and less stressful to use most of its functions.

@rysiek @mairin
in general:
if manifest model != implementation model, then either there are aspects where manifest model doesn't say anything (here be dragons), or there are aspects where manifest model says something contradictory to the implementation model.
If latter is true, i.e. manifest model provides false impressions, IMO it's harmful.
If any of the above happens too early (because some slightly-unusual case was deemed edge-case) it's annoying.

yep! thats why you want to make sure the scope of the manifest model isnappropriate given users tasks / needs. its hard!

@mairin @rysiek but IMO you should also make it fail in a nice way, i.e. it's better for the user to think "and then dunno what happens" instead of "and then $X will happen" where $X is the opposite of what will actually happen

so its harmful in your opinion. And yet, ive been using it for years, dont have a graph based mental model, and i do just fine.

@mairin @rysiek @Wolf480pl I've taught a bunch of people Git (almost all "tech" people) over the years and I've seen this go both ways: for some, understanding Git's model helps a lot and for some, it just confuses things.

c) (cont) maybe a more relevant analogy - when i draw in inkscape i have a vague notion about how bezier vs spiro vs bspline work... but i dont know the math..beginning inkscape users understand shapes - circle, square, star... over time learn about vector paths... software learning curve unfolds fairly naturally

@Wolf480pl @mairin @rysiek personally, the answer is "the user is a developer" but if you KISS/document enough, non-devs can learn it and be empowered to do more dev-like stuff later. That's the goal, anyway...

@dvddpl @mairin @rysiek IMO while designing stuff with the "user is a dev" assumption is not always correct, a better and more important one is "the developer is also a user". You should design your software in a way that you will enjoy using it, too. Doing the "I will hate it but that's what users want" is IMO the worst.

@Wolf480pl yeah. That makes sense. Although I feel like there are very few users whose views align with mine lol. Well, that's why I don't dev for a living anymore.

@dvddpl @Wolf480pl @mairin @rysiek The biggest issue is people get used to different things. Some have driven a bicycle, other a motorcycle and yet even other started with a tractor. Now you want these to drive a car. So everyone ends up with a win95 UX with the clutch behind their seat.

You definitely do not have to be an expert to use Linux. Both my parents can fare pretty well. They launch their program, browse the web e.t.c. They know what to do with what they need.. and that is enough.

@Wolf480pl For me, elementary OS is this middle ground.

While it looks very simple and elegant, it's got all the power features you might want tucked nicely away. And while all the excessive configurations are available if you look hard enough, they are very decisive in what they ship.

The only catch is you have to be willing to try something fairly different.

@mairin There is a great story to be told here. Because of the traditional hostility that engineers generally have towards UX design. Plus changing the FOSS model to accommodate UX design is also a significant change that happened as myopic hacker culture continues to break down with greater diversity of ideas and values that UX brings.

@mairin Many proprietary software have a shockingly poor user experience too. I guess there is a pitfall to avoid, like to mistaken proprietary software for GAFAM and open source for whatever Linux distro which obviously can't compete whith multi-billionaries corporations.
Unless you hope to recruit that many developers to work unpaid on your software, and to spontaneously agree with designers vision?

@mairin @vfrmedia

In the late 80s and early 90s I had a custom accounting program

People could have whatever they wanted obviously. It took them a week or 2 to clue in, but then they went nuts for a month or two. Often they asked for the moon's worth of info and I would have to explain to them that *someone* would have to be *paid* to input that info in order for me to pull it out! That discharged many requests.

Anyhow: they like things on obvious buttons + they do NOT read warnings. Ever