User testing and community feedback are very important parts of open source projects. It ensures that the final contribution meets the brief of the project itself an dits users effectively.
Here I will explore user testing and community feedback in the open source sector by addressing the various methods involved, two examples, as well as my own contribution.
What is user testing and community feedback?
Usability testing focuses on if a product or service can meet the user needs appropriately.
Participants are asked for feedback on the product or service, or partake in some activities for research purposes. Usability testing is important as it can help you understand your audience better and improve your product or service with. Any feedback given or research conducted. (Digital.gov, 2024)
In this blog, I refer to community feedback as the input and suggestions provided by the users and contributors who engage with the project. These processes are crucial for refining the software and ensuring it caters to the needs of a broad and diverse user base.
METHODS FOR GATHERING USER FEEDBACK:
Gathering user feedback is essential in the development phase of any product or service.
In a lecture from this unit different methods of collecting user feedback was established.
The first method described in our lecture is automated testing, which utilises scripts to systematically test the software, to focus on consistency in performance.
Unit testing, integration testing and End to end testing were branched under automated testing.
To describe each one:
- unit testing tests individual components.
- Integration testing ensures the components work together.
- End to end testing is for the entire workflow.
We delved into manual testing, which involves real users to review usability and functionality.
The two specific types of testing involved in this are:
- exploratory testing, in which users explore the software without predefined test cases.
- Usability testing which focuses on the users experience (UX).
Beta testing involves releasing a nearly finished version of a product or service to a small audience to test in real life situations.
This helps recognise any problems that were not noticed prior due to controlled environments.
Surveys and questionnaires, the most common being google forms and SurveyMonkey help create structures feedback from your audience.
Feedback forms allow users to exchange their opinions directly while using the service or software.
Forums and discussion board, found on platforms like GitHub, help promote discussions on experiences and suggestions on improvements.
Social media and online communities, platforms who have large audiences and communities who share their thoughts on certain topics. Examples of these platforms are Reddit, Twitter or LinkedIn.
WHY ITS IMPORTANT:
User testing and community feedback are essential because it can help build trust with its users, encourage inclusivity in collaboration and ensure functionality of the code. I want to demonstrate this in two case studies I delve into below:
Oculus Go VR Glasses – A STUDY CASE OF INADEQUATE USER TESTING:
One example of the importance of user testing and community feedback is the oculus Go VR headset. The design of this product was not taken into consideration for a diverse audience, and once the product was launched, encountered one major issue, it could not accommodate the curly to coily hair type.
This lead to a lot of discomfort and poor usability for the user as it presses on their hair. (Mboya, 2020)
Typically, the VR headsets available today rely on straps, supported by the scalp or head of the user. Those with afro-textured hair can find this unproblematic.
This highlights the importance of user testing and considering user needs when designing a product or service. If Oculus partook in better user testing, its community feedback would have identified these issues earlier on, making the release of the product able to address this issue.
HIV ITERATIVE FEEDBACK IN RURAL SOUTH AFRICA:
Another example is the EPIC HIV in South Africa, who wanted South African men to test for HIV and find healthcare more accessible. In order to do this they designed an app that is interesting and interactive.
There were 4 rounds of usability testing on the app, which became very effective as after each round there was some improvements added. Some of the users were less educated on literacy, healthcare and the use of technology, and struggled with navigating their way through the app as well as understanding it.
The users were found “in the wild”, from local communities and in public spaces. There were a total of 29 users involves in the 4 testing stages, researchers recorded and documented each stage well, and feedback on UX design, on deciding what changes neds to happen to help the user better understand the app. This was an iterative process until the users needs were fully met and they felt comfortable conducting themselves around the app.
(GOV.UK, n.d.)
This shows the importance of user testing and community feedback as the more testing was conducted a feedback received the better users understood the improvements made to the app.
If we take them into account with the different methods for gathering user feedback, we can see how Bothe example situations can be benefited.
- Oculus Go VR Glasses: If Oculus had decided to incorporate manual testing, with both exploratory and usability testing in a diverse group of users, they could have discovered this issue with afro-textured hair before launching the product. Utilising Feedback forms and social media could have shown recommendations for the designs, addressing concerns in the developmental phase.
- HIV Iterative Feedback in Rural South Africa: The EPIC HIV app used beta testing effectively by executed 4 rounds of usability testing. Surveys and questionnaires were likely used for important feedback from users’ experiences. This iterative process ensured that the app became more user-friendly with each round of feedback, orientating around their direct needs.
These two examples are very important to note as understanding such a wide audience takes a lot of feedback and research from these testing stages, and consistently making updates. This applies with contributors, with the right guidance from their maintainers of the open source project, they are able to improve and make small updates to meet the standards of the project itself. You can also view it as the maintainers getting to know their community and contributors.
User testing and feedback in my contribution:
EinsteinPy – COMMUNITY FEEDBACK ON MY CONTRIBUTION:
My chosen contribution for this unit involved the einsteinPy repo. I had practice with my “first contribution” project, which involved forking, cloning, making changes, committing and using a pull request, which benefitted me alot when working on this project. However, I realised there is more structure to a contribution than that, I was given personal community feedback on how I use the PR description, and to change the title of my branch name. These small details make such a difference, and the maintainer of etc project requested I address my changes better. This interaction did not only improve my contribution but my confidence and understanding in open source projects, which can help my overall quality of work in future projects.
I can recognise that in “first contribution” it takes time to build up a community and trust, and this is something they have successfully done, as it gave me more confidence before contributing to Einsteinpy. However, I didn’t have this type of communication with the “first contribution”, therefore I understood less about the project and the standards I should have meet. By receiving a few updates for improvement in my contribution, I had build more trust, understood the inclusivity of the community and the functionality of my code. My code, I realised through feedback did not match the requirements of the issue, however I still received feedback on how to improve my presentation of my contribution, the functionality of my code was inaccurate but I was still encouraged to complete my issue and this shows the inclusivity of the open source project itself.
COMMUNICATING WITH COMMUNITY:
If we breakdown einsteinpy’s communication, based on notes from the week 5 lecture, I would say:
- Regular development updates is a very beneficial part of einsteinpy’s communication, it helps user engagement with updates on any new or completed issue(s) throughout the project.
- It uses platforms like GitHub on open source contributions, where managing pull requests and issue tracking’s completed on the same platform.
- Direct communication to the contributors, using channels, which also sends through on emails is essential. The reason how I as aware of my feedback was by an email notification before checking on my profile.
- Documentation and guides is utilised by Einsteinpy, as it clearly lays out its code of conduct, MIT licencing and exactly what contributions are needed for the specific Issue.
Utilising the types of communication given through einsteinpy is the best way to receive community feedback for my contribution. I am able to engage with those who are interested in the project , and can encourage me to improve my work to the standards required.
Conclusion:
Here I discussed how important user testing and community feedback is, I have demonstrated this in two separate projects before my own contribution.
REFERENCES:
Digital.gov (2024). Usability. [online] Digital.gov. Available at: https://digital.gov/topics/usability/.
GOV.UK. (n.d.). Usability testing: qualitative studies. [online] Available at: https://www.gov.uk/guidance/usability-testing-qualitative-studies.
Mboya, A.M. (2020). The Oculus Go Wasn’t Designed for Black Hair. [online] Medium. Available at: https://debugger.medium.com/the-oculus-go-a-hard-ware-problem-for-black-women-225d9b48d098.