The globe and the community are benefiting greatly from the fact that open-source development is at its pinnacle right now. As more and more individuals participate in open-source projects, they gain expertise in development and also make the lives of others simpler through their contributions to the projects.
However, when it comes to UX Design contribution in open-source, we are still lagging behind and have a lot to improve. But nevertheless, with Hacktoberfest introducing non-code contributions this year, it's high time for UX designers to start contributing in open-source and hence I'm here with a brief guide on the current state of UX Design in Open-Source and how you can start contributing in open-source as a UX Designer. In order to learn how to make their project more useful for UX designers, this guide is intended for project maintainers and developers as well as UX designers.
Understanding UX Design
Before discussing all the reasons why UX Design is important in Open-Source, I first want to discuss what UX Design actually is because I think that many people, including some designers, may not really understand the concept of UX Design. This section can be skipped if you believe you are familiar with UX Design, but I strongly advise against it because it will review your knowledge and possibly teach you something new.
The core of UX design is problem solving. The topic is the user's perception of a particular product and how that product, which could be a website, an application, or anything else, can assist the user in resolving a particular issue.
A UX designer's job is to pinpoint a problem, pinpoint the target market, research the issue, generate ideas for solutions, and then choose the best option (even budget wise). Next, create wireframes, Low-Fidelity Designs, and High-Fidelity Designs before prototyping it. When the design is prepared to enter development, test the prototype with a few users and repeat the previous processes a few times. After that, send the design to the developers and collaborate with them to further develop it.
That sounds like a lot, oh my! But this is what UX Design actually entails, and it's for this reason that large corporations like Google and Meta employ an entire UX Team, which is made up of experts in various UX fields. Among those fields are UX Writer, UX Researcher, User Tester, and UI Designer.
The graphic below illustrates several UX Designer responsibilities. You can see for yourself that it involves a lot more than what a typical person would anticipate, which makes the absence of a UX designer in open-source software a significant problem.
Another important issue I'd like to address is the distinction between a UI designer and a UX designer. In order to comprehend this distinction, you must first understand what UI design is. UI design include creating Low-fidelity and High-fidelity designs using already completed research and selected solutions. UX Design essentially includes UI Design.
Here are two articles by the Interaction Design Foundation and Adobe XD that you may read if you want to learn more about UX design. If you are interested in learning more about UX design, I highly recommend doing your own study.
The need for UX design in Open-Source projects and current issues
You should now be able to comprehend why closed-source projects often have a better UI and offer a better user experience than open-source projects after hearing about the tasks of a UX designer. When there are no UX designers working on a project, it just gets more difficult as the project and user base grow to tackle user concerns. Lack of UX designers results in a lack of testing and research, which eventually makes the product useless.
Open-Source softwares are well renowned for being powerful, but that is only one way to put it. An open-source project may occasionally seem to have many more functionality than you actually want. Additionally, a developer will frequently choose the simplest answer, and the maintainer will accept it without question even if it is the best option. Users typically provide negative comments as a result of this. This is referred to as "incurring UX debt." Before bringing a solution into development, a UX designer in this situation would do research to determine which approach was best. Similarly, users and open-source contributors typically request features or add them on their own, and the maintainer will approve them if they function well. But despite everything, nobody questions if the functionality is actually necessary. It could be beneficial for a single user, but not for the target market as a whole. Adding such a feature just makes the project more complex and makes it more difficult for future developers to add new functionality without breaking the existing feature. Due to the absence of UX Designer under these circumstances, the project as a whole performs poorly.
When a new contributor wants to make a contribution to an open-source project without a design present, the maintainer and the contributor typically have to exchange ideas numerous times before they can come to an agreement. Not only does this back and forth waste time, but it also demotivates the contributor. Additionally, changing the design of a live website via code is quite difficult, so if design decisions are made in advance, it will be simple and the design development process won't be difficult.
In addition, without a design framework (we will discuss this further in a subsequent blog post), the project design is quite inconsistent, and the result is unpleasant, if not ugly.
The lack of UX designers in Open-Source projects: Why?
After discussing the importance of UX designers in open-source projects, it is now obvious that the world requires as many UX designers to contribute to open-source as there are coders. But why isn't it taking place? Why don't UX designers participate in open-source projects? Let's discuss it.
One of the biggest reasons UX designers don't participate in open-source projects is a lack of knowledge among both the designers and the project maintainers. I've seen designers and have even worked with some that don't really grasp what open-source is or how GitHub operates. They are unable to contribute to open-source projects because of this knowledge gap. Additionally important are the maintainers' and developers' roles. The majority of the time, project maintainers decline design contributions because they don't see how they can actually benefit the project.
Despite the fact that development and design are two very distinct disciplines, effective communication between developers and designers is crucial to the success of any project. However, communication is seen as the cornerstone in UX design. It determines whether a project is successful or not. UX designers are recognised for diagnosing issues via research and questioning, but because of the limited space available for communication, they frequently fall short of their goals and are unable to contribute.
The majority of projects lack a design system that a UI or UX designer can employ. Without understanding what is appropriate and what is not, designing something becomes extremely chaotic and challenging. Additionally, conflicting designs result in inconsistent CSS, which makes it more difficult for developers to contribute as well.
Even when a designer is struggling with all these problems and yet contributes some designs to the project, sometimes no developers take the initiative to build the design. As all of their labour is lost, it discourages the designer from contributing again to open-source projects.
How can UX Designers contribute in Open-Source?
As we all know, in order to work on a project and address any issues, a UX Designer has to be aware of the target audience and how the product has done in the past. However, it is uncommon for open-source projects to reveal all of these specifics. Due to the lack of knowledge, it is difficult for a UX designer to participate, but you may start contributing as a UI designer because there are far more opportunities for UI designers than there are for UX designers. They can start making tiny contributions, such as creating icons and designing the user interface (UI) of various sites and softwares.
Additionally, by developing a complete design framework, UX designers may collaborate with project maintainers and connect with new communities (we will talk more about it in an in-depth blog). Making a design system will benefit the project as a whole as well as future design contributors who will be able to design things consistently.
UX designers can tackle tasks and determine whether they require a new web page design. After doing a little study on the prior designs the project has employed, they may create a web page for them. The UX Designer should contact a developer to implement their design after creating a web page. Maintainers' and developers' perceptions of the design-first methodology are impacted when a design is submitted and later developed. Like me, many designers are frontend developers. Therefore, if you fall into this category, always submit the design before making a coding contribution. This will promote clarity and inspire others to adopt the design-first approach as well.
UX designers can also approach project maintainers of more recent projects and urge them to use the design-first methodology by outlining its advantages. It is possible to set things up so that anytime a new feature is requested, a design issue is added before work can begin on it.
Mozilla has certain clearly stated design-related challenges and contributing rules, which are available here. In addition, there are other groups like Mozilla, Zulip, and Wikimedia that invite designers to collaborate with them. In addition, UX designers may want to look at Open Source Design. They often add fresh designer job openings to their job board.
What can maintainers do to improve the contribution potential of their project for UX designers?
By starting to request design contributions before any code contributions, maintainers should adopt the design-first strategy.
If the project is already large and difficult to refactor, the maintainer should start with little adjustments like bringing uniformity to the button space and placement. As a result, the project will gradually become more design-friendly, and eventually it will have its own design system. RefactoringUI is a fantastic book that demonstrates how someone without design experience may create a design system. Another well-known book on developing a scalable and maintainable design system is Atomic Design. I strongly advise reading the book since it will enable maintainers to create a design system on their own that can be upgraded in the future. Maintainers may choose to use a different design system and alter it to suit their requirements. Primer Design System and TailwindCSS are two examples of such design systems.
In addition, maintainers should make sure that communication is done correctly and identify the design-related concerns in detail. When something is being created, they should appropriately communicate with the designer about how it will help the project. They should also seek for contributions that are based on research. One way to draw in additional UX designers is to discuss a particular feature with one and determine whether it is truly necessary.
For the design files and assets, maintainers should have a distinct directory in the repository. They should also accept design pull requests, such as Figma files (
.fig) or other files of a similar kind. The designers will be inspired to make more and more contributions as a result.
As I conduct more study in this area, I become more aware of the knowledge gap. As a result, I've made the decision to produce a comprehensive blog series on "UX Design in Open-Source".
You may learn more about it by watching this video, which discusses the current of UI/UX Design in Open-Source. If you are interested in this topic, I urge you to conduct some independent study because it deserves greater attention right now.