echoes of ethos, voice of machine?
alm chung
Table of Contents
The p5js Friendly Error System (FES) sends a message when a problem occurs while running a code. Its messages try to be conversational, as if the system is speaking to you.
We are familiar with products with conversational UI(user interface)s, a product, or any impersonal object possessed by a conversational being, as seen with ‘Siri™,’ ‘Alexa™,’ or ‘Hatsune Miku™.’ Assigning a character to a product is now not only accepted, but to some extent, anticipated.
The conventional design of conversational UI(user interface)s aims to present one unified persona“A persona (plural personae or personas), depending on the context, is the public image of one’s personality, the social role that one adopts, or simply a fictional character.” Wikipedia introduces. Here, it refers to a guideline for creating a fictional character or dialogue to unify the tone of the interactive messages that software outputs. , one coherent voice. This design paradigm may come from its goal to earn trust and captivate an unspecific, generalized mind. Usually, when we are interacting with a stranger, it will feel more comfortable and safer if the stranger presents a coherent personality throughout the whole interaction. Although their reaction will feel more predictable, it will feel less threatening.
one voice for one tool
Software like p5js is a collaborative project written by many people at different times and contexts. Although the error messages from FES are presented as one coherent list in the console, they are probably written by multiple people at different moments of the development process.
The development process of a commercial conversational agent would not be too far away from this, if not more dispersed, at a larger scale. We just can’t experience how fragmented the raw output was before the branding process remixed everything into the sleek machine persona™. Not surprisingly, in many cases, there is a writer, writing team, or actor hired responsible for maintaining the coherency of the machine character.
Some user experience researchCited research on chatbot anthropomorphic design and ...
... User Preference/engagement: Tuva Smestad, Frode Volden. 2019. Chatbot Personalities Matters: Improving the User Experience of Chatbot Interfaces. Proceedings of INSCI 2018 Workshop Papers, Springer, Cham, Switzerland.
... Emotional connection: Theo Araujo (2018). Living Up to the Chatbot Hype: The Influence of Anthropomorphic Design Cues and Communicative Agency Framing on Conversational Agent and Company Perceptions. Computers in Human Behavior, 85, 183–189.
... Trust building: Edvard J. de Visser, Samuel S. Monfort, Ryan McKendrick, Melissa A.B. Smith, Patrick E. McKnight, Frank Krueger, Raja Parasuraman (2016). Almost Human: Anthropomorphism Increases Trust Resilience in Cognitive Agents. Journal of Experimental Psychology: Applied, 22(3), 331–349.
confirms that anthropomorphizing a chatbot with a narrator persona helps build trust between software and the users and emotional bonding between the users and the company. The effects of anthropomorphization for a conversational interface is still heavily investigated. For example, a studyCited research:Følstad, Asbjørn, and Marita Skjuve. "Chatbots for customer service: user experience and motivation." Proceedings of the 1st international conference on conversational user interfaces. 2019.
found that people cared more about how efficiently a chatbot provided the expected service and less about how human-like the interaction felt.
However, p5js is not a product but a part of an open-source software communityRed Hat, “one of the most popular commercial Linux distributions”, wrote about open source software community: An open source software community is a group of people united by the shared purpose of developing, maintaining, extending, and promoting a specific body of open source software. These communities are often globally distributed—their members occupy different geographic regions and work across numerous industries. What unites them is their common vision for the open source software project—as well as the spirit of camaraderie and collective identity that participating in the community affords them.
and an interface to connect people interested in creative coding and community-centered software development.
Then, as a community, if we must create a persona for our software, how should we do it? How about we start by positing software as a member of its community? A community member who will need to abide by the community’s social rules aspire to practice the ethos of their community?
At some point, it may be unacceptable or unnecessary to anthropomorphize software. I acknowledge the problem and want to discuss the idea with a practical goal as a part of the efforts to maintain a consistent language across software, its documentation, and its community values. In the following sections, I will elaborate on what I mean specifically by designing a machine persona as a member of the p5js community and how we can practice our community values in our work.
machine persona follows the code of conduct
How would you feel if Friendly Error System’s output contradicts the core value of the p5js community? What kind of software can be created by design criteria centralizing the ethics of a community developing it?
Maybe this question reminds you of Asimov’s Three Principles of Robotics from 1942, the notion of applying a code of conduct to machines. The code of conduct for an artificial agent is now moved beyond the speculative realm and has become more than relevant to the design and application of AI models impacting our everyday life. As of 2016, various research institutes and companies worldwide had released their own versions of the code of conduct for AI and related technology.A meta-analysis paper surveying 22 AI ethics guidelines in 2016-2020 published by tech companies and academic institutes: Hagendorff, Thilo. "The ethics of AI ethics: An evaluation of guidelines." Minds and Machines 30.1 (2020): 99-120.
With this background, let’s take a look at the p5js’ code of conduct:You can read the full statement at p5.js Code of Conduct.
- Be mindful of your language. Any of the following behavior is unacceptable:
- Offensive comments related to gender identity and expression, sexual orientation, race, ethnicity, language, neuro-type, size, ability, class, religion, culture, subculture, political opinion, age, skill level, occupation, or background
- Threats of violence
- Deliberate intimidation
- Sexually explicit or violent material that is not contextualized and preceded by a considerate warning
- Unwelcome sexual attention
- Stalking or following
- Or any other kinds of harassment
- Use your best judgement. If it will possibly make others uncomfortable, do not post it.
- Be respectful. Disagreement is not an opportunity to attack someone else's thoughts or opinions. Although views may differ, remember to approach every situation with patience and care.
- Be considerate. Think about how your contribution will affect others in the community.
- Be open minded. Embrace new people and new ideas. Our community is continually evolving and we welcome positive change.
As we have seen above, a code of conduct prohibits certain behaviors and provides standards for resolving disagreements.
First it lists prohibited behaviors and what constitutes discrimination and violence. It commits to act against injustice based on “gender identity and expression, sexual orientation, race, ethnicity, language, neuro-type, size, ability, class, religion, culture, subculture, political opinion, age, skill level, occupation, or background” and reserve time to reflect as a community.
This policy may feel like an unrealistic ideal considering the broad scope the given list of prejudice and the fact new labels may be added to it at any timeSkill level as an example case, [Before You Define Your Audience] discuss about how label “beginner” creates artificial hierarchy in tech. However, it will be more practical to think of the policy as a thoughtful attitude we put into our daily practice rather than a rule that divides right and wrong. It is the artists’ work ethic that pays close attention to little details of our sentences and constantly looks for what blind spots are hidden in our expressions.
care, respect, and an open mind
In the p5js Code of Conduct, care, respect, and an open mind are encouraged as opposed to the prohibited acts. How would these attitudes connect to the “friendly design” of the Friendly Error System?
First, respect, which develops into patience and interest for a person, is an attitude that comes naturally from seeing our “user” as a person and an equal colleague. In an open-source project like p5js, there is no clear boundary defining who contributes to the project and who uses the output, as seen in the traditional producer-consumer or writer-reader relationship.
A contributor’s role in an open-source project is open to interpretation with wide possibilities. On the other hand, a careful “navigation” process is required for a participant at the beginning to find their place within the project. Wouldn’t we need patience and interest for each other to endure the exploration process and help new members feel comfortable?
Next, caring is not only a virtue that can be applied in relationships between people but also comes from an effort to consider the impact of one’s work as a writer or creator. The process of caring won’t be available if we focus on efficiency. Caring also requires the attitude of constant reflection on one’s actions.
Both respect and consideration ask the creators to be ‘more kind’ to the audience. Creating something friendly takes a lot of extra energy from the creator compared to generating something just for themselves. In other words, kindness is the extra effort from the creator's side to constantly see the output from the reader's point of view, even though this extra step was never required.
Lastly, an open mind accepts the truth that “FES or p5.js can never be finished.” It is a perspective that sees software development as a fluid space constantly rewritten by reflecting new opinions and feedback from other participants and moving away from seeing software as a product that needs to be shipped.
The code I wrote today for p5.js will not be there forever. After some time, at a certain point, there may not be a single line of original code left, and none of the “founding” participants remain. Although it will be an endless cycle of “writing over,” we seem to try to capture the ethos and desire of the present time as much as possible.
After writing this far I revisited the p5.js community statement and the phrase “We are not code snobs” caught my eyes. Rather than submitting to a “knowledge snobbery” or embarking on a pilgrimage for scarce vibes, practicing kindness is will make ‘friendly design’ possible and helps everyone in the community to learn and communicate effectively.
We put community ahead of efficiency. I look forward to the future where ‘kindness’ will go beyond our project and become a widespread virtue in tech.