codeFair is a platform that enables users to add monetary tips to their issues, incentivizing maintainers to dedicate more time to projects and offer timely responses to user issues. It is a tool designed for the Open Source Software (OSS) community.
My Role: Lead UX Designer
Team: Design team of 2, Engineering team of 4, Business team of 4
Responsibilities: User Experience Design, Wireframes, User Interface Design, Ideation, UX Research
Timeline: 8 weeks
Software: Miro, Figma
There are many issues that users asked on open source platform (e.g. Github) that have never been addressed.
This project is a school project of the Entrepreneurship elective course from the University of Washington with MHCI+D, HCDE, CSE, and MBA students.
Open source platforms, such as Github, is a resource almost every developer constantly use to look for projects, bug solutions, plugins, and so much more. However, there were countless issues on Github that have never been solved and they cause problems for developers.
codeFair is a website that complements open source platforms to help maintainers to work on the projects they care about by allowing users to add tips to their issues.
After users create an issue on the maintainer's repository, they can add a tip to encourage the maintainer to prioritize the issue.
The maintainer gets an email notification that a tip has been added to an issue in their repository. Maintainers can organize their issues on codeFair by starring the issues or sorting by different ways, such as tip amounts or dates.
The image below is an example of an open source repository on GitHub. Although it has 1600 stars and 1500 users, the documentation isn’t up to date. There have only been 4 updates to the repository in 2020, and there are 263 unresolved issues. As a result, the projects can't be used by the developers.
A bounty system is used to help open source consumers get their issues and requests faster and at the level of quality they seek. The users get to set criteria and offer price to the issues that they would like to get help with. The developers get to select issues and earn credits and money.
We sent out screeners, surveys, and conducted 15 semi-structured interviews to understand what incentivized developers and their willingness to participate in the platform, as well as what would benefit end-users the most.
Our research concluded that the primary reason was that developers were already getting paid generously through their day job.
The maintainer is usually the one who has the most knowledge of the project.
The developers are selective when it comes to debugging and solving code issues.
We pivoted our stakeholder from developers to the maintainers since maintainers are the ones who care and are passionate about the projects.
We decided to provide an easy system allowing users to quickly add a monetary tip to their issue request on GitHub. We envision a world in which successful maintainers can get paid enough to work on their projects full-time.
Creating a user flow helps us visualize the smoothest user journey and make the website as simple and clean as possible.
The goal was to confirm that we have all the necessary information on the correct pages, which is the easiest way for the user to locate the information they're looking for, and provide more thought through detail within each pages.
We wanted to learn about the thought process behind users trying to post an issue on Github, as well as how useful codeFair is to them. In addition, our goal was to test out how to make the user experience as efficient as possible by providing the least amount of clicks.
With each issue submitted by an end user to the maintainer’s repository, codeFair will auto-generate a comment that notifies the end users that the maintainer is accepting tips and links them to codeFair where they can add their tip.
The individual page search bar is eliminated and the global search bar in the upper navigation is the only search bar we keep.
codeFair will send out a confirmation email to the user after payment. Also, since users pay after they post their issues (Key Finding 1), the concern of whether they need to repost the question or not is eliminated as well.
At the same time, we worked with the engineering team simultaneously to make sure these solutions are achievable. Finally, after six versions, we came up with our final design.
Reliability, Trust, Fairness, and building a community are the core values of codeFair and what we want our users to feel. We did an Industry color research of our competitors before we develop the color palette for codeFair.
This project has taught me how to communicate the process with people who have no knowledge in design. I worked with engineers and business people closely that I got to understand what their priorities are. I was also able to let them understand my point of view and deliver the design decision in a way that everyone could understand.
I learned a lot about how to find a balance between having a good user experience design and creating an achievable design through this project. There were times that we were informed by engineers that we had to make changes because the design was not feasible with the code but in the end, we still managed to find other ways to make it work.
Testing with our target users helped me understand the importance of this process. People think differently. How engineers think is totally different than how designers think. Because of testing with the right user, we got to receive many insightful feedback we never thought of when we were designing.