UX challenges in Golem & beyond
By Jacek Muszyński, Natalia Mroszczyk, María Paula Fernández . Thanks to Gert-Jan Rebel & Ilona Biskupska
Our commitment to the ecosystem goes in line with the development of our project. As we face our own UX challenges, we see more and more projects in Ethereum ecosystem facing similar or the same issues.
UX is key to mass adoption of the decentralized ecosystem. The userbases of all decentralized applications, including Golem, need to grow, but to do so, we need to improve how users interact with the platforms.
We are constantly researching and finding ways to help our users and to make their experiences more seamless. However, there are many things to take into consideration. As Berlin Blockchain Week is near, and a high number of great dApp teams are coming to town, we decided to turn our presence there, into a community-friendly experience, aimed to point out UX pain points that challenge mass adoption, and contribute to the discussion of such; by first presenting our challenges and then focusing on a particular EIP (EIP-859) that caught the interest of other developer groups, such as Colony, Status, Gitcoin, and 0x, that will join our ETHBerlin workshop and help us lead the discussion.
Know your User
Who are the Golem users?
Providers:
This group is the most differentiated in the terms of the user profile. There are tech people who are interested in Golem’s technology, crypto-traders who don’t have mining rigs, some are building stacks just for Golem, and want to know what is the best setup for being a provider and the most of them are just regular computer owners who want to make the best out of their idle computing power. All of them share a common goal — they want to earn as much GNT as possible by squeezing out their computers.
Requestors:
Our first use-case on mainnet is Blender rendering, hence, our requestors are nowadays Blender users. This is a community of around 6 million people all over the world.
Requestor research approach and results
Testing
Our mainnet launch was preceded by several inquiries and research covering their workflow, needs, and problems.
Thanks to the “desk research” we have done, we had a good idea of who the Blender users are, but we still needed qualitative knowledge, so we could identify their needs.
A focus group-based research with f.ex. Status would have been ideal, however, we due to time restraints we needed a different approach.
We decided to directly talk with Blender users who were able to provide useful and comprehensive information.
Testing process
We’ve divided our testing process into two steps. First step were interviews with a goal to learn about users personal workflow, experience with Blender software, render farms, problems that they have with everyday work, community, Golem’s input from their point of view, etc. Thanks to these interviews we were able to understand the users better and sympathize with their needs, emotions, and behaviors.
The second step was the evaluation of Golem’s UI at that time. So we did online evaluation recording sessions where we could observe and learn how Golem is used. Each recording took approx. 1–2 hours with every little detail in the app discussed. Each one was transcribed and compared with the others. The goal is/was to find common denominators in users’ behavior. Such patterns were easily observed. From there we could start to build our priority list of things that need to be changed before we launched into mainnet.
Benefits of our approach?
- Our global, agnostic approach prevented the study from running into cultural misunderstandings.
- Our interviews were online based, so we reduced overhead on the preparation of dedicated spaces or disturbing office workflow, which can happen with on-site focus groups. Scheduling in spite of time-zones was more efficient.
- People were interviewed in the place they chose, hence making the conversation easier.
- We only scheduled the sessions during the users’ free time, adapting to their daily schedule.
- A small tester user base was built, and specializes in the fields of interest were able to help the dev team when needed.
User Feedback and its importance
The feedback funnel is ever-growing and we are able to improve day by day thanks to this. Going out of our comfort zone was eye-opening experience for both us and our users. Even though before the release we did intensive external and external testing of our dApp, user surveys, and evaluations, we would have never been able to gather such big stack of feedback without the mainnet release. Lesson learned: not being afraid of mistakes and solving them alongside the community is an extremely rewarding experience.
We release a new updated version of Golem almost every month. Each update includes small changes and improvements in UI, gradually improving the user experience.
TL;DR? Research, empathize, evaluate, design, get feedback, improve, iterate.
How we are solving some current issues
Education
In our onboarding process, we strive to educate users on what should be done on their side in order to properly connect to the network. Our documentation is being constantly updated and we provide the users with those links, a support chat and tutorial videos. In this way, we make sure that they can get their questions covered one way or another.
We try to describe every step in the app’s UI in the most explicit way possible, so users learn along the way, how to perform each action. We additionally make sure to include links to external documentation explaining in full the functionality of the setting — in the most critical steps. Our aim is to reduce as much as possible, risks related to making rushed wrong decisions.
We have included fiat values factors in the GUI so users are able to make their decisions (for instance, bids) with a clearer idea.
Password protection
In decentralized settings, users are fully responsible for their actions. We could go on for ages on how users feel about passwords and why still most of them don’t like complex solutions even on web 2.0 settings. When passwords restrictions are too high, and the system requires complex multi-character ones to continue to the next step, people tend to do so with their keyboards. Our approach was then again to choose education, and provide them with the option to print out their password or save it as PDF file alongside the instructions on how to keep it safe. Overengineering password security and complex solutions only cause more problems on the users’ side.
Correct error description
Before the mainnet release, this was one of the most pressing issues: describing and being able to solve the most common errors that could happen on the users’ side. User flow was created for every possible error able to directly guide each user to the required solution, and in the event of questions in the support chat, our support team can paste the solutions quickly and explain the issue in detail.
As Golem operates on Windows, Linux and Mac Os we needed to be sure that we had different flows for each user group.
Tech Support: the Snowball effect
Currently, after every release, even if the dApp is tested beforehand, ensuring the release version is good, some new errors will pop up. A great thing about our community is that when the issue is defined and solved for an average of 3–4 users, later they will help the rest of the user base facing this problem.
UX progress in Golem and future steps
At its early stages, Golem was only showing the number of nodes that you were connected to. Currently, we are improving this, firstly by implementing a more informative status of the app where providers could see whether
- they are properly connected to the network,
- how many connections do they have
- In what state their node is in (computing, idle)
- How many tasks did they compute
- If there were any issues with the tasks (errors, timeouts)
On the requestors’ side, we implemented better and more informative tasks list, including all the most useful information at first glance
- Task settings
- How many nodes are computing a particular task
- Task cost
We are also working on improving in-app statistics, for both the providers and requestors, so they could understand better how the network works, and whether they could be better actors in the network.
Moreover, detailed user flows for the wallet alongside the improved UI design have been prepared. Focused support chat channels targeted for each user group were created, as well as video tutorials.
What kind of issues are still ahead of us?
There are always improvements needing to be done. The most crucial ones regarding onboarding of new users are:
- Port forwarding: UPnP support has been implemented but it’s not enough. We can still observe that some users have issues with their ISP’s. We are planning to implement a “hole punching solution” in a decentralized setting, so trusted nodes could help new users to communicate with each other without the need from user to change his router setting.
- Eliminating the most critical errors so users will not have to solve them on their own.
- We have implemented sentry opt-in and we are collecting nodes error data.
- UI onboarding improvement as the “learning by doing” approach is one of the most effective cognitive experiences.
- Experiments with gamification approach inside the app and making the GUI more focused on interaction are also in our plans.
- Additionally, the implementation of time preset for providers, so the dApp could share previously selected amount of power at different times.
- Improving the relationship between actors in the network by creating a new marketplace with computation power consumption measurements, price offers and such.
- We are also working on improving Golem’s CLI UX.
EIP-859 challenge & discussion
From our research, we have found out that Blender artists can spot the benefits of entering the Golem Network and interacting with the token. Most of them saw their on-boarding in a way, where at first they would share their computing power, and then — with the earned tokens — they could test out the network possibilities . People came up with nice shortcuts on their own, aiming to solve the issue of the need of buying tokens on external exchanges.
Currently, as a community, we still struggle with convincing users that this space is safe and better than web 2.0. The users need to see as well the value (technological, of course) of the tokens and the dAPP, and spot they can get their hands on tokens not by buying in exchanges requiring exhausting KYC, but just by entering the space, and becoming active users. Nobody should face the need of buying additional tokens or coins, for instance, to pay for transactional fees (gas).
Paying for gas in eth -as the current setting implies — means that no matter what, you always need to make sure you have sufficient eth in your wallet, otherwise you cannot transfer your tokens, or you will need, as we stated, to buy, then spend gas on that transfer to your in-app wallet (provided the wallet does not have a fiat to crypto buying option), and then proceed with the token transfer.
Any extra step such as this is an extra hassle, a UX challenge, and as we endeavor to make dApps less onerous, we need to relief the user from these extra, unnecessary steps.
Our ETHBerlin UX challenge aims to improve this process. We would like to propose a challenge with EIP-859.
We are looking forward to hosting our UX workshop and interacting with users from the whole ecosystem, moreover, we will present the workshop results on the UX Unconference, two days after the event, in Full Node, Berlin, and later on we will publish a new blogpost — stay tuned!