💭 Difficulties of design in open source

I see four large topics here: infrastructure and separation, autochecks and scratching own itches

Infrastructure

Most infrastructure in open source has code as its core “type” of thing. This is not surprising given that most code is text and given the status of text media in western culture.
Everything else is modeled after or around text: Communication media, storage of content, collaboration systems. Thus, doing non-text things in the existing infrastructure is hard.

Separation of parts

Design is hard to split up in parts which you patch together. For code, you can relatively easy define input and desired output and then it can be developed and if it adheres to the spec it will work. There are more elaborate versions of this to standardize this connectability. I guess “pipes” in unix are very well known, and this directs us also to where open tools seem to shine: Small tools, text interfaces, standards.

At least according to best UX practices, what the user sees should be coherent and it is hard to distribute.

Autochecks

A lot of coding infrastructure has “decisions” build in: Unit tests, coding style checkers, compiler errors and warnings etc. Designs are checked manually. We might have been closer to it in the 90s when Human Interface Guidelines were very strong, but they seem to have less strength today (maybe still at Apple?)

Scratching own itches

Scratching our own itch in code is seen as a core motivation in open source (see cathedral and the baazar). It is also easy to do this in code. You can easily start by writing the code that scratches your itch. A commonly named best practice in UX is “you are not your user” (Source). This gives less agency to the designer as you need somehow find out what other people’s itches are (hard, time consuming) and you do not have the motivation of doing away a problem which is yours and thus where graspable.

Addition to Scratching own itches: A source on this is “Scratching Someone Else’s Itch (Why Open Source can’t do Usability)” (also in ACM/Interactions, January 2004)

Addition to separation of parts: Limits of self–organization: Peer production and “laws of quality” argues that a lot of web collaboration projects assume that the modularity of small parts in much software does often not work for non-software.

6 Likes

Thanks @jan for starting this thread, @evalica for submitting a panel about it for the FOSDEM devroom, and @jdittrich also for the contributions. I can recognise and agree with all the reasons listed!

Many of the reasons seem infrastructural (e.g the ones about tooling), others are cultural (how design is practised vs. how development is practised). I think there is a third very important category of reasons: motivational. It seems to me designers don’t have a good answer to the question: “why should I contribute to FOSS?”

This is because, in general, the design community knows very little about FOSS. Designers don’t know what FOSS is, how it’s developed, why it’s important, and what impact it has on technology and on society. In short: they are not familiar with the politics and ideologies of FOSS.

I think designers are an ethical bunch: there is a lot of talk about doing good through design, improving people’s lives through design, and the ethical responsibilities we have as designers. If there was a connection between those ethical concerns designers have and FOSS, I think many more designers would be motivated to contribute.

By the way, I also think that OSD can make a difference on this one. We have been very good at advocating the importance of design to the FOSS community, but I think we need to pay more attention to advocating the importance of FOSS to the design community!

Just my 2c :slight_smile:

4 Likes

I’ll add two more problems here that I don’t think I saw mentioned so far.

Any work a designer does usually means more work for somebody else.

A designer can spend a lot of work that ends up being wasted because someone else has to do a lot of work as well to make that design a reality.

I think a lot of developers think a design might involve changing the color of something. Then when they realise it means they need to change how something functions they get discouraged from getting involved.

It can be harder to make design “patches” since often the projects need a complete rethink in how the interface and user experience work.

Changing something like a signup flow can mean refactoring a lot of code. I think most open source projects that work on a volunteer basis are not willing to prioritise that for “little gain”.

Example:

I once spent tens of hours working on a design that was encouraged and well received by everyone involved in a project. But ended up never being implemented because it needed someone with more of a backend experience to get involved since it wasn’t just a superficial design change, and I couldn’t do that myself.

This is never a problem when I work with clients who pay me because, after all, they are paying me a lot of money to fix their problems. So of course they will make sure someone works with me to change whatever needs to be changed. But in an open source project where people are volunteering most developers would rather work on new features or something more exciting.

3 Likes

Thank you for starting this @jan - You already touched on this but I would like to add that part of the struggle also comes from a pedagogical perspective. Most design schools/universities (In the US as far as I know) do not teach, nor are educated on open source. They only teach students via Adobe and a few other proprietary softwares. So the awareness or interest just isn’t there. When open source is mentioned, there is a lot of resistance about wanting to explore this area. Few understand the freedom and opportunities that are available - let alone from a financial standpoint.

3 Likes

adding this twitter thread that’s currently addressing how companies abuse FOSS and do not give back to the community. please read!! https://twitter.com/patio11/status/1067515893335257088

2 Likes

I made similar experiences. My approach was to highlight that a university should not depend on (monopolistic) companies for their teaching. We actually send letters, did educational events and listed software that we considered alternatives.

As for the awareness/interest, I think it is there. But in practice, “going open source” is as much a concern as “going vegan”: Many seem to get the reason or were unhappy with doing things in Photopshop, just as they were with mistreatment of animals or the philosophical problems of animal product consumption. However, open source (nor veganism) touched directly and generally designerly concerns: Expressiveness, communication with clients, efficiency of work… Worse: Using a non-familiar tool, using a tool with a not-so-well-designed UI, using a non standard tool is an impediment to these concerns.

Where I saw successful FOSS initiatives at universities were the ones that bridged coding and design (processing and PureData or 3D printing…stuff…). I can only think of Blender and FontForge as tools that were taught. The reasons for this were less FOSS – I guess because they were free and trustworthy and for skills which were somewhat special: everybody had the Adobe tools for very common tasks like DTP, illustrations etc., but font editing and 3D were offered in special workshops. This gave software which was easy to install (aka free) and used by enthusiasts an edge.

4 Likes

Very interesting, I had the same experience at my university during my master’s program - I love the analogy you pulled with veganism, I think it summarizes it nicely honestly. I did not take the letter route, although I think that sounds more effective, I tried addressing it with the chair of our department, but ended up finding resistance among the rest of faculty that was already familiar with Adobe products and their argument was that “since it’s an industry standard why set them up to not be able to compete in the market”.
I also agree with you that my university was MUCH more accepting of processing/P5 and FontForge and since those are considered more “coding” the “crappy” UI is more tolerated.
So what does that mean, FOSS can’t compete in the design sector unless it’s completely polished?

2 Likes

“since it’s an industry standard why set them up to not be able to compete in the market”.

Yes, this I experienced, too. Thus, I did the move of criticizing closely binding academia and market together (Not that it did much).

addressing it with the chair of our department

I like this! I think some architecture professors where actually supportive of the argument and subsequently worked with us so this is also a good way, I think.

FOSS can’t compete in the design sector unless it’s completely polished?

No, I do not think so. Most Adobe applications do not look particularly beautiful. But they look OK, get design stuff done and they are standard, and I think most FOSS Software does not compete with it well. Blender and FontForge have no beautiful UI, get design stuff done and face no one single standard in their markets and I think thus they are acceptable. For p5 I agree: they are close to coding and thus where open source shines, usually.

2 Likes

i agree with you about this

I found this paper very interesting, https://arxiv.org/pdf/1507.01297.pdf which researched scratch projects and their perceived quality finding that

a) collaborative projects were of lower perceived quality
b) the losses were bigger for media intensive projects (graphics, sounds) than for coding intensive projects.

…which connects well to

Update 17.12.18: Similarly, Are Agile Methods good for design (Armitage) shows the problems of splitting a design problem in single pieces like it is often done with code.

Update: 19.01.19: “The Design of the Design” by “mythical-man-month”-F.Brooks also emphasizes the need for a coherent architecture, in his view ideally made by one or two people.

1 Like

This is a very important point. Being a PhD student in a design faculty in the UK, I can confirm the Adobe thing happens here too!

1 Like

Assuming that open source has strong ties to engineering culture and that design is concerned with people and context, I found it quite interesting to read Faulkner’s [1] “The Technology Question in Feminism”, summarizing some interesting research (in the context of the question why there are few woman in engineering), pointing out:

  • Links of masculinity, engineering and capitalism and the idea of “dominating and controlling nature”
  • The impression of girls/woman of the dominant hacker image as being not concerned with people (Turkle, 1988)
  • Mathematical rationality as dominant idea of “how engineering should be done” (Hacker, 1989) even though practical work in engineering can be quite emotional and messy. (Bucciarelli 1994, Kidder 1981) [see also Schön, '83]
  • Ridicule of people without technology knowledge.

Not being concerned with people on one hand and mathematical rationality and ridicule on the other do not go well with designing for people, I think, and it might make it hard to combine the two cultures.

[1]: Faulkner, Wendy. 2001. “The Technology Question in Feminism: A View from Feminist Technology Studies.” In Women’s Studies International Forum , 24:79–95. Elsevier.

Loving this thread! Thanks to everybody!

The vegan/FOSS comparison was neat, I feel just the same about it. We had a joke in college that non-market-oriented design (FOSS included) was like the pandas: no one will be in favour of the panda extermination, but only a few will really take a move in order to stop it…

I also agree and noticed the same problems with FOSS in the university where I graduated. Even among a group I participated that studied and took action in a socialy-concerned/anti-capitalist design aproach, FOSS was this big tabu. I had some hard times moving files back-and-forth between inkscape and illustrator when collaborating in a project.

Some of the reasons of why designers stick with proprietary software I often hear are:

  • I don’t have the time to learn another software, I need to do my job and can’t depend in unknown tools
  • It is buggy
  • What is the point of using FOSS if you don’t know how to code to fix and improve stuff?

Apart from the software theme, I think that the word collaboration – so important in free/open source projects – in the design world is still associated with taking a lot of colorful post-its, and repeatedly reorganize them in a panel. This word is trapped in the planning phase of design, not really reaching the implementaion phase with file review, versioning, issue tracking and other practices that became second nature in the FOSS development world. Creating the tools and plataforms that allow that kind of collaboration may be a nice path in order to get a FOSD (Free/Opensource Design) beyond the sfotware/tool you choose.

1 Like

I think this is an excellent point. Actually, reviews have their equivalent in design critique at least in an education-context: Present your project to your peers! Answer questions! And this could be done more.

If design systems continue to be a thing, it might also offer nice ways for collaboration as they have the modularity needed for splitting tasks (Difficulties of modularity I did lament already above).

@jan mentioned testing not being valued. I agree, though I think there is an important difference between e.g. unit tests and usability tests. The former you can do yourself, the latter needs quite some preparation and people and dealing with uncertainties etc. I must admit, I do not usability-test my written-for-fun projects either.

However, I think there is an often overlooked alternative: Rule-based evaluation.

  • Heuristic Evaluation is rather simple to do and is based on checking for 10 simple rules.
  • PURE is based on assumed cognitive load ans possibly a bit more expert-y and generates a simple score and color code
  • KLM estimates best possible efficiency. So if you want to see what UI is (theoretically) more efficient… model it.

Sure, it is not the same as usability tests with the ideal target group and a larger sample size and… but at least heuristic analysis has been found to be efficient as well as a good supplement to usability testing. Nevertheless, I rarely see these methods applied in industry as well as in open source.

Thanks for pointing me to this thread @jdittrich!

I’m doing the research about Open Design, and compiling all my findings in one mindmap. This thread is a goldmine of information and I agree with things said here. I created a separate branch (orange) to the left of the mindmap and tried to structure all ideas from this thread there.

image

A lot of great things are being created by the open source movement, and as a designer, developer and entrepreneur I believe that open collaboration should become a thing in other fields too. I see this movement not as a part of open source, but something more general, so it could work with any kind of project, even a no-code one. Collaboration can be available not only to designers and developers, but to all sorts of other creatives from writers to musicians. So in order to find the solution that would make it possible, I am now trying to understand how it works currently, what problems are there with existing solutions and what they are lacking.

At the moment there are two major problems in my opinion: the lack of infrastructure (version control of creative assets, no open collaboration platforms for them) and community, especially the cultural differences between creatives and developers which have to be addressed in order to create an inclusive solution. Motivation is an important issue as well: it will not be the same for creatives as it is for developers in the open source.

This leaves us with three levels of the system that have to be addressed in order to create a solution for open creativity. Firstly, a level of an individual contributor: what their motives, expectations and attitude are, what they are feeling, what previous experience and knowledge and experience they have. Secondly, a level of a group of people — a community. How the collaboration is managed, the internal “climate” of the community, the decision making process. And lastly, an infrastructure level: what tools are used, their accessibility, and how they enable people to create, share their ideas and collaborate with each other.

image

2 Likes

@zyumbik you can also watch the panels we had at FOSDEM about this topic, see the recording from https://fosdem.org/2019/schedule/event/panel_more_designers/

2 Likes

I was pointed to Homesteading the Noosphere and its statement on FOSS as a gift-giving culture, which is also reflected in “The power of gifts: organizing social relationships in open source communities”, stating that “…the giver gets power from giving away.”

Now, it might be that “giving” to a project is hard, due to the difficulty of…

A gift probably should come with some investment from the giver and should be somewhat valuable for the project. This also implies that it should only create non- to few work (it is also fine to unwrap gifts or assemble them, the bits of work that are totally fine when receiving gifts in other contexts). Closely related: A gift should not demand an immediate giving back to the giver.

I have “given” icons or “please increase the contrast” to FLOSS projects several times. This was usually relatively easy: People could replace a color variable or an icon image with none or minimal code changes – great. But many design suggestions might need larger investments: restructuring several UIs, reconsidering a paradigm etc. Now, might feel less like a gift, but more like a burden.

3 Likes

An additional complication is this debate is that “design in open source” might be actually describing three different things:

  • Design using Free SW tools
  • Design Free SW systems and applications
  • Design in the open, as part of a community

An ideal project would enjoy all three. However, it might be interesting to think about situations where one or two of these characteristics are missing, and what does and does not qualify as “design in open source” in those cases.

3 Likes

Howdy guys, I’m new to the community. Just wanted to chime in.

I think the reasons listed by ya’ll in general are very good. I want to really back up two points though.

I’m a designer who has been learning how to code. In the past year I dove into switching all my personal cloud services over to self hosted FOSS alternatives like Nextcloud (Howdy Jan! I believe we’ve talked on github a few times about the Nextcloud mobile app :smile: ) In getting more involved in these communities I consistently found that when I logged a story saying “Hey this thing could be better, respectfully here’s my thoughts” the response was usually “It’s fine the way it is”.

I think there may in fact be no easy solution to this problem, but I think this might point to a solution nonetheless.

I am a designer learning to code. I only do web stuff though. Web is a field of development which has a fairly integrated history between dev and design though, as a web designer and web developer were often the same person back in the day.

Just as I am a designer learning to code many developers are learning design. The gap between web stack and native has shortened with the advent of technologies like Electron and React Native etc. The advent of Design Systems and the focus on componentization of UI in frameworks like Vue/React has also lead to growth in design skills in the web development community.

I think in some ways the only way this will be solved is through some convergence of the two. This is one reason why as a designer one of my focuses in discussing development and design with other designers is encouraging a higher level of technical development knowledge. On the other hand when I am in open source circles I try to advocate for good design not just in presentation of the “product” but in improving the experience of using code itself.

An example of this latter “improving the experience of code itself” is through the dotfiles community: https://dotfiles.github.io/

Dotfiles are configuration files for unix apps. It starts with something as simple as writing some easy aliases for your bash command line interface to make things easier to do. THAT IS UX! That UX via kaizen process.

Related to web based technologies you can see this same instinct playing out in how vscode


and hyper

image
have evolved rapidly in their design space largely due to the relative ease of writing extensions or plugins with only basic web stack knowledge.

And speaking of hyper above which is a command line interface app that is built using web stack technologies and runs on windows, linux, and Mac: UX isn’t limited to just graphics, it also is a part of text too. In the command line there have been several rather well designed command line interfaces developed in the last couple of years such as:

ranger

or zsh.
image
(zsh is actually much older but there’s been an explosion in it’s use lately due to things like “oh-my-zsh” project. )

Now all these things are examples of improvement in design in code presentation, therefore text, so I still think there is some gap in translating the gains of the developer focused design to open source design as a whole.

But at least in one way it has made the user experience of learning to code a lot easier for me!

I think it’s also worth considering the ways in which innovations in CLI UX design is itself also comparable to the ideas that have been floating around in the world of “conversational UI”.

I think these distinctions here is a really smart addition.

On the subject of using free SW tools, I think the reason you don’t see a lot of use by designers is not simply because design schools teach Adobe or because they aren’t introduced to the ideas of FOSS (though this is true).

The reason is… because most FOSS design tools suck.

I have a Windows laptop and a Linux home server. I only ever have a mac when my company buys me one.

I have desperately been looking for a Sketch alternative. I have Adobe XD on my windows machine but it’s… not the best, and I’d really like something that was open source.

There is however no active development projects to solve this use case.

And the mainline graphics software packages for open source are… largely pretty bad. Gimp and Inkscape are about 20 years out of date in a lot of their UI and functionality. Krita is honestly the only open source project really doing anything impressive right now I think.

And I think that’s a damn shame. And this is itself probably a hard problem itself too. Graphics software isn’t easy to make. It requires more powerful hardware (gpu drivers have been an issue for linux until very recently and the FOSS OS community is primarily focused on making as compact and minimalist implementations of their desktop environments rather than powerful ones).

You could get the design community to use FOSS design tools if someone would actually make them.

The only alternatives I know of are:

Pencil

https://pencil.evolus.vn/

Hasn’t updated in over 2 years and honestly looks kinda ugly.

Vectr

This actually looks promising but it’s online only from what I can tell which I’m not a fan of. That means that even if it’s open source to actually use it completely independently you have to self host which is a lot to ask a freelance designer to learn to do.

Also I found this on a list of open source projects but I don’t think it’s actually open source.

Gravit Designer

https://www.designer.io/en/

No longer open source. Also it’s a bit broader in scope than Sketch.

Alva

This actually looks cool but I think it’s really more like something like Webflow or Framer X which utilizes existing code components, which greatly limits the usefulness of this for designers.

Akira

Probably the closest thing to an actual Sketch competitor but it doesn’t look like it’s had a meaningful update in at least half a year or more. All the checkins I see on the github page look like they’re basically formatting or build process updates.

So this problem is ripe for solving!

It’s just, who will solve it? IDK.

1 Like