Supporting diversity with a new approach to software - single-page view
References for the 2016 session Supporting diversity with a new approach to software.
- 1 Setting intention
- 2 Choose language intentionally
- 3 Accessibility
- 4 Internationalization and multilingual support
- 5 Human-computer interaction: Gender HCI, Feminist HCI, Sustainable HCI, ...
- 6 Gender HCI
- 7 Feminist HCI
- 8 Post-colonial Computing
- 9 Sustainable HCI
- 10 Don’t pretend algorithms are "objective"
- 11 Flexible self-identification of gender, race,and pronouns
- 12 Muting, blocking, reporting, and content filtering
- 13 Development tools, languages, environments
- 14 Programming Languages
- 15 Virtual reality
Who needs it the most? Teams that want to build software for people or communities who are usually marginalized
Who else benefits? Any team that wants to build better software
It won’t just happen. If creating software that works better for everybody is something you want to do, make it an explicit goal - and commit to it publicly.
- State your commitment publicly with a Diversity Statement or an equivalent. (See links below for examples)
- Code of conduct (for the development team and for the community) and process for reporting and dealing with issues
- Approach it in an intersectional way
- Recruit a team that’s diverse in multiple dimensions
- Foster an culture of inclusion and equity
- Seek out and recruit diverse users, community leaders, and beta testers
- Work to improve diversity and inclusion in technology and society (not just your project)
- Be aware of how existing societal power vectors affect software - and look for ways to counter them
Open Source Bridge Sessions
Opening Up The Current Open Source Blueprint, Stephanie Morillo (2015)
From the Inside Out: How Self-Talk Affects Your Community, Kat Toomajian (2015)
Catalyzing Diversity: Practical Advice for Navigating Minority STEM Communities to Open Up Open Source, Alberto Roca and Shauna Gordon-McKeon (2015)
Explicit Invitations: Passion is Not Enough for True Diversity, Lukas Blakk (2014)
Diversity statements: Dreamwidth and Django (although see this HBR article on Unintended Consequences of Diversity Statements as a caveat)
Codes of conduct (for the development team and community) and process for reporting and dealing with issues: Citizen Code of Conduct from the Stumptown Syndicate, the Contributor Covenant, Python, Geek Feminism, Annalee Flower Horne's sample for Slack, oulipo.social's social contract and https://toot.cat/about/more toot.cat] on Mastodon ], WeAllJS (which also has a Culture and Process page). See also Christie Koehler's Adopting a code of conduct is an adaptive challenge not a technical one.
5 tips every open source project manager should consider, Safia Abdalla on opensource.com
Disrupting the Startup Brogrammer Culture, Lynne d. Johnson, Shireen Mitchell, Nicole Sanchez, and Amy Vernon at Women Who Tech telesummit
Geek Feminism’s HOW TO recruit and retain women in tech workplaces for best practices on this front.
Being an Effective Ally to Women and Non-Binary People, Toria Gibbs and Ian Malpass of Etsy
Facilitating for Diversity and Inclusion on the Digital Library Foundation's wiki
Racial Equity Tools has a wealth of resources supporting individuals and groups working to achieve racial equity
Project Include has recommendations on culture, “employee lifecycle” (which could be adapted for open source projects), metrics, and more.
Imagining Radical Queer Futures through Tech by Morgen Bromfell (at SF Alterconf 2016) discusses the need for the radical imagination in the context of the survival of marginalized communities
Who needs it the most? People who are constantly dealing with microagressions; people who understand language very literally.
Who else benefits? People who don’t want reinforce racist / sexist / ablist / etc. patterns of domination.
- Ensure team members are familiar with the concept of microagression
- Understand what people mean by terms like privilege, intersectionality, heteronormativity, cognitive diversity, structural racism (and structural sexism, ablism, ...)
- Avoid using language with associations that are racist (e.g., "master/slave"), ablist ("lame"), sexist, homophobic, transphobic, ageist, ...
- Use automated tools like Alex to complement code and documentation reviews in finding problematic language
University of Missouri handout on Microagressions in Everyday Life
Who needs it the most? People with disabilities
Who else benefits? People who prefer keyboard-first or audio-first interaction, older users, people who don’t like flashing and blinking or noisy experiences, software testers
- design for people with disabilities from the beginning, which includes supporting screen readers and other assistive technologies, keyboard-only navigation, color vision impairment, limited vision or blindness, hard of hearing or deaf, seizure disorders.
- include accessibility in test suites (and leverage accessibility functionality for test automation)
- developers, testers, tech writers, product managers, and beta users regularly use the software in accessibility modes
- all developers, testers, tech writers, and product managers have basic accessibility training and see themselves as responsible for the product’s accessibility
As with so many things in software, it’s a lot easier if you pay attention to it from the beginning; but very few teams do.
OS Bridge sessions
The Ability to Disable: Who Did You Forget When You Designed Your UI?, Rebecca Jennings, 2016
Accessible By Default, Kendra Skeene, 2016
Universal Web Design: How to create an awesome experience for *every* user, David Newton (2015)
The W3C’s Web Accessibility Initiative has an Introduction to Web Accessibility, tips on Designing, Writing, and Developing for web accessibility, a summary of the Web Content Accessibility Guidelines as well as the full spec, Authoring Practices, and a lot more info.
The A11y project: a community-driven effort to make web accessibility easier. Digestible, up-to-date, and forgiving.
Web accessibility basics by Marco Zehe packs a lot of information into a 50-minute video.
The Teach Access Tutorial provides basic training for developers and designers on best practices for making accessible mobile and web apps. Teach Access is a collective of leading tech companies, academic institutions and advocacy organizations working together to embed accessibility into higher education and learning experiences for students of technology.
Making Awesome Things Accessible is a presentation by Heather Migliorisi from OSCON 2016. The accompaning Accessibility Resources has links to testing tools, development tools, articles, community, people, companies, and more.
Fringe Accessibility Techniques (That Probably Shouldn't Be), a presentation by Adrian Roselli for London Web Standards, has a lot of useful techniques.
Dreamwidth’s Accessibility Testing page gives an idea of the kinds of things that are needed in practice.
Accessibility according to actual people with disabilities, by Hampus Sethfors, is a summary of a Twitter thread kicked off by Safia Abdalla in June 2017 asking people with disabilities what their biggest issues are browsing the web.
Making the Firefox developer tools accessible discusses how to approach it when you haven’t thought about accessibility up front: “The majority of the tools are currently a very mouse-driven environment, and our goal is to make them equally accessible for keyboard users and those using assistive technologies such as screen readers.”
Color Design for the Color Vision Impaired discusses the most common forms of color vision impairment and techniques (including color combinations and alternative visual presentations) for creating graphics that work well for people with color vision impairment. Color Oracle is software that simulates several forms of color vision impairment.
Web Accessibility’s Best Practices page has a list of specific recommendations (for example “Ensure complex data table's implicit row header cells define scope or use th”)
CSUN’s annual International Technology and Persons With Disabilities conference has a wealth of material on all kinds of different topics. The Great Big List on Curb Cut has links to the various presentations.
David Clark’s Building an Open Source React Component describes building an accessible menu bar, following the W3C’s WAI Design Patterns recommendations. "try to build something sufficiently complex with JS interactivity, and (unless your experience is dramatically different from mine) your research will lead you into a baffling hodgepodge of incomplete, contradictory, insufficiently exemplified, inadequately verified, usually outdated material."
Building Accessibility Culture, David Peter, on Model View Culture
HCI, for human-computer interaction, is the field of studying how people interact with computers. Several subdisciplines of HCI are particularly relevant to creating software that works better for everybody
- Gender HCI: focuses on the differences in how different genders interact with computers
- Feminist HCI is concerned with the design and evaluation of interactive systems that are imbued with sensitivity to the central commitments of feminism—agency, fulfillment, identity and the self, equity, empowerment, diversity, and social justice.
- Post-colonial HCI centers on the questions of power, authority, legitimacy, participation, and intelligibility in the contexts of cultural encounter, particularly in the context of contemporary globalization.
- Human-Computer Interaction for Development (HCI4D) focuses on understanding how people and computers interact in developing regions, and on designing systems and products specifically for these contexts
- Humanistic HCI is a term used by Jeffrey and Shaowen Bardzell “to refer to any HCI research or practice that deploys humanistic epistemologies (e.g., theories and conceptual systems) and methodologies (e.g., critical analysis of designs, processes, and implementations; historical genealogies; conceptual analysis; emancipatory criticism) in service of HCI processes, theories, methods, agenda setting, and practices
Who needs it the most? People who process new information comprehensively (gathering fairly complete information before proceeding, as opposed to “selective” styles of following the first promising information, then backtracking if needed) are risk-averse, have low self-efficacy, prefer not to tinker, and/or don’t like technology for its own sake. (At least in the US, these have a strong correlation to gender.)
Who else benefits? Everybody.
Gender HCI is a subfield of human-computer interaction (HCI) that focuses on the differences in how different genders interact with computers. Work to date has focused primarily on the differences between males and females in problem-solving software, and has identified differences in several “facets”: motivation, information-processing style, computer self-efficacy, risk aversion, and tinkering. The GenderMag method is a structured approach for using personas in a walkthrough to identify issues.
- Consider gender difference throughout the process - including design, usability testing, and other feedback mechanisms
- Leverage existing gender HCI materials such as GenderMag profiles
- Introduce all developers, testers, tech writers, and product managers to gender HCI basics, including facets and examples of making software more gender-inclusive
- Remember that gender isn't just male and female, so support flexible and optional self-identification of gender)
GenderMag, A Method for Evaluating Software’s Gender Inclusiveness, Margaret Burnett et. al. “The users who tend to be best supported by problem-solving software tend to be those best represented in software development teams (e.g. relatively young, able-bodied, males), with other users’ perspectives often over-looked.”
Is your software gender inclusive? A talk by Margaret Burnett
Finding Gender-Inclusiveness Software Issues with GenderMag: A Field Investigation, Margaret Burnett et. al
Are you sure your software is gender-inclusive?, Gayna WIlliams, ACM
Baking Gender Into Social Media Design: How Platforms Shape Categories for Users and Advertiser, Rena Bivens and Oliver Haimson.
Machine Translation: Analyzing Gender, from Stanford’s Gendered Innovations project. "State-of-the-art translation systems like Google Translate or Systran massively overuse masculine pronouns (he, him) even where the text specifically refers to a woman (Minkov et al., 2007)"
Feminist HCI looks at interactive systems "that are imbued with sensitivity to the central commitments of feminism — agency, fulfillment, identity and the self, equity, empowerment, diversity, and social justice" and "entails critical perspectives that could help reveal unspoken values within HCI’s dominant research and design paradigms and underpin the development of new approaches, methods and design variations" (Bardzell, 2010)
Open Source Bridge presentations
Feminist Point of View: Lessons From Running the Geek Feminism Wiki, Alex Bayley (2014)
Feminist HCI: Taking Stock and Outlining an Agenda for Design, Shaowen Bardzell
An Archive of Their Own: A Case Study of Feminist HCI and Values in Design, Fiesler, Morrison, and Bruckman, CHI 2016. Here’s an overview from Casey Fiesler.
Feminist HCI for Real: Designing Technology in Support of a Social Movement, Jill Dimond (Ph.D Thesis, looking at Hollaback)
A theoretical agenda for feminist HCI, Jennifer A. Rode, 2011
Feminist HCI Meets Facebook: Performativity and Social Networking Sites, Nancy van House, Interacting with Computers", 2010
Towards Trans Inclusion in Feminist HCI, Haimson and Hayes, 2014
Lauren Klein, “Feminist Data Visualization: Rethinking the Archive, Reshaping the Field”, Dave DeCamp's summary of Lauren's talk
Software Design, a deconstructive feminist approach, Doris Althusser, 2012. Althusser's Mind Scripting: a Method for Deconstructive Design describes a method for analyzing processes of the co-materialization of gender and technology as a tool to support cooperative, reflective work practices. Anchored in critical design approaches
Storytelling as a nexus of change in the relationship between gender and technology: a feminist approach to software design, Justine Cassell (1998) suggests principles of a feminist approach to software design
- Transfer design authority to the user
- Value subjective and experiential knowledge in the context of computer use
- Allow use by many different kinds of users in different contexts
- Give the user a tool to express her voice and the truth of her existence
- Encourage collaboration among users
Post-Colonial Computing: a Lens on Design and Development, Lilly Irani et al, CHI 2010. After looking in detail at several case studies The authors propose an alternate formulation of design work – engagement, articulation, and translation - that broadens notions of what counts as design work and suggests an alternate sensibility for evaluating such work
Post-Colonial Computing: A Tactical Survey, Kavita Philip, Lilly Irani, and Paul Dourish, Science Technology and Human Values
Postcolonial language and culture theory for HCI4D, Samantha Merritt and Shaowen Bardzell, CHI 2011
Sustainable Interaction Design: Invention & Disposal, Renewal & Reuse, Eli Blevis, CHI 2007
Environmental sustainability and interaction, Jennifer C. Mankoff et. al., CHI 2007
Mapping the Landscape of Sustainable HCI, Carl DiSalvo, Phoebe Sengers, and Hrönn Brynjarsdóttir, CHI 2010
Next steps for sustainable HCI, M Six Silberman et. al., ACM Interactions, 2014
Open Source Bridge sessions
The Consequences of an Insightful Algorithm, Carina C. Zona, Open Source Bridge 2015
Big Risks, Big Opportunities: the Intersection of Big Data and Civil Rights: The latest White House report on Big Data charts pathways for fairness and opportunity but also cautions against re-encoding bias and discrimination into algorithmic systems. "The algorithmic systems that turn data into information are not infallible—they rely on the imperfect inputs, logic, probability, and people who design them."
Pro Publica's Machine Bias series, by Julia Angwin et. al., was a Pulitzer Prize finalist. The first article in the series Machine Bias has a pithy summary: "There’s software used across the country to predict future criminals. And it’s biased against blacks."
Artificial intelligence: How to avoid racist algorithms, by Zoe Kleinman on BBC News, is a good overview, with perspectives from World White Web designer Johanna Burai, Algorithmic Justice League (AJL) creator Joy Buolamwini, and Suresh Venkatasubramanian of the University of Utah.
What does it mean for an algorithm to be fair?, Jeremy Kun
Critical Algorithm Studies: a Reading List, from the Social Media Collective at Microsoft: the literature on algorithms as social processes.
Fairness in Machine learning, a slide deck from Delip Rao, includes a short reading list
Can computers be racist? Big data, inequality, and discrimination, Ford Foundation, based on a series of presentations by Latanya Sweeney and Alvaro Bedoya.
Discrimination and Opacity in Online Behavioral Advertising, Datta et. al, 'Proceedings on Privacy Enhancing Technologies, 2015
Google’s autocompletion: algorithms, stereotypes, and accountability, Anna Jobin, Postcolonial Digital Humanities= Pseudonymity and Multiple personas =
Who needs it the most? People who are targets of abuse and harassment; people whose names subject them to discrimination; activists; people speaking about sexual activities; people with employers who restrict their speech; people with different professional and personal personas; and many more -- see Geek Feminism’s Who is harmed by a real names policy.
Who else benefits? People who want to explore new personas. Writers, artists, performers, or others who use a “professional” name.
Pseudonymity is a great example of where it already is simpler to implement a diversity-friendly solution: let people choose whatever names they want without trying to enforce restrictions. There are still hard problems (impersonation; trolls, harassers, spammers, politicians creating sock puppets) but trying to ban pseudonyms doesn’t actually help.
- let people choose whatever names they want without trying to enforce restrictions
- allow multiple personas
- Have explicit policies about whether multiple personas of the same person can participate in a single discussion (or “like” each other’s posts, etc.)
OS Bridge sessions
Geek Feminism’s Who is harmed by a real names policy
The Real Name Fallacy, by J. Nathan Mathias on the Coral Project's blog
Digital Social Norm Enforcement: Online Firestorms in Social Media, Katja Rost, Lea Stahel, Bruno S. Frey, PLOS One; summarized in Internet trolls are even more hostile when they’re using their real names, a study finds, Michael J. Coren, Quartz
Nymwars, on Liminal States, has links to perspectives from Kathy Sierra ("keep the pseudonyms, lose the assholes"), s.e. smith of Tiger Beatdown, Denise Paolucci of Dreamwidth, Latoya Peterson of Racialicious, Caterina Fake of flickr, danah body of Microsoft Research, Kaliya (aka Identity Woman), and more
Who needs it the most? Trans and gender-diverse people, anybody who doesn’t fit into male/female binary, multiracial people
Who else benefits? People who don’t want to unintentionally use the wrong pronouns for somebody
- Allow arbitrary text (rather than restricting people to a fixed list) for gender, race, and other information
- Allow multiple choices; e.g., somebody who’s multiracial may be white, black
- Allow people to decline to answer, or to limit the visibility of their response
- Consider collecting pronouns instead of gender
- Be careful about your terminology
- If there are easier ways to select from a short list of more-common choices, do not use the word “other” as a way of getting to the more flexible specification.
- Avoid the term "preferred name" (or "preferred pronouns").
OS Bridge sessions
More Than Binary: Inclusive Gender Collection and You, Anne DeCusatis (2016)
Male/Female/Othered: Implementing Gender-Inclusiveness in User Data Collection, Finn Harker and Jonathan Ellis (2015)
Best Practices for Collecting Names, Gender and Pronouns, by TJ Warfield, from TRANSform Tech, is a very good short overview.
Web Forms: When Someone's Gender is Your Business, Jennifer Zhu, OS Feels 2016, looks at situations like insurance where you do have to collect gender information
5 Simple Steps for Trans-Inclusive Data, Avory Faucette, AlterConf DC 2016
Open Gender Project, creating a simple API and library.
Disalienation: Why Gender is a Text Field on Diaspora, Sarah Mei, 2010
Why sharing gender pronouns at work matters, by Alexis Croswell on the Culture Amp blog, is a good overview and FAQ.
Who needs it the most? Targets of harassment; people who would be triggered by certain kinds of images and videos
Who else benefits? People who prefer to avoid certain kinds of images and videos
Another Six Weeks: Muting vs. Blocking and the Wolf Whistles of the Internet, Leigh Honeywell, Model View Culture
Twitter Won’t Stop Harassment on Its Platform, So Users are Stepping In, Amanda Hess, Slate (2014): discusses Flaminga, BlockBot, and Block Together. Since then Twitter has implemented shared block lists but they don’t appear to have learned from the earlier implementation - see Vijith Assar’s The Glaring Hole In Twitter’s New Shared Blocking Feature in Wired for a critique.
Learning from Twitter’s mistakes, Eugen Rochko on Medium, describes Mastodon's muting and blocking model. "Harassment and tools to deal with it have always been lacking on Twitter’s end. I reached out to people who have been affected by it to collect ideas."
Curbing Online Abuse Isn’t Impossible: Here’s Where we Start, Laura Hudson, Wired, looks at steps Riot Games took to reduce harassment in League of Legends
Putting out the Twitter trashfire, Randi Lee Harper, and What I Want Out of Twitter, John Scalzi: suggestions for giving Twitter users control over their timelines; also useful for people designing mechanisms for other systems
Herring, Susan et al. ‘Searching for Safety Online: Managing ‘Trolling’ in a Feminist Forum’ The Information Society 18 (2002): 371–384. A classic!
Still ‘Searching for Safety Online’: collective strategies and discursive resistance to trolling and harassment in a feminist network, Frances Shaw, Fibreculture Journal
Possible routes for distributed anti-abuse systems, by Christopher Allan Webber on DustyCloud, looks at various potential strategies. = User rights
Who needs it the most? Users of the software
Being explicit about what rights the users of a system have -- and having processes in place in support of those rights -- is an important way of protecting people. One approach to this is to adopt a "bill of rights" or some other statement of user rights, as a complement to the Terms of Service (which typically describes user responsibilities and restrictions). The Computers, Freedom, and Privacy Social Network Users' Bill of Rights model document includes the following elements
- Clarity: Make sure that policies, terms of service, and settings are easy to find and understand
- Freedom of speech: Do not delete or modify my data without a clear policy and justification
- Empowerment : Support assistive technologies and universal accessibility
- Self-protection: Support privacy-enhancing technologies
- Data minimization: Minimize the information I am required to provide and share with others
- Control: Let me control my data, and don’t facilitate sharing it unless I agree first
- Predictability: Obtain my prior consent before significantly changing who can see my data.
- Data portability: Make it easy for me to obtain a copy of my data
- Protection: Treat my data as securely as your own confidential data unless I choose to share it, and notify me if it is compromised
- Right to know: Show me how you are using my data and allow me to see who and what has access to it.
- Right to self-define: Let me create more than one identity and use pseudonyms. Do not link them without my permission.
- Right to appeal: Allow me to appeal punitive actions
- Right to withdraw: Allow me to delete my account, and remove my data
- The Computers, Freedom, and Privacy Social Network Users' Bill of Rights was collaboratively debated, drafted, and ratified at the 2010 conference on Computers, Freedom, and Privacy. It's time for a Social Network Users' Bill of Rights and What rights should social network users have? on the Computers, Freedom, and Privacy blog, have more background; Mike Swift's Online privacy: 'Bill of rights' for social networking debated in San Jose, in the San Jose Mercury News, describes the drafting process.
- Ello's Bill of Rights for Social Network Users, which strikes many similar points, is a rare example of a commercial social network explicitly adopting a bill of rights.
- Call for a Social Networking Bill of Rights, Duncan Work, Planetwork Jornal, July 2004, is one of the earliest calls for a bill of rights
- A Bill of Rights for Users of the Social Web, Joseph Smarr et al., Open Social Web, September 5, 2007
- Global Privacy Standards for a Global World, The Madrid Privacy Declaration, November 2, 2009
- A Bill of Privacy Rights for Social Network Users, Kurt Opsahl, EFF's Deep Links blog May 19
- We, the users -- Facebook users' bill of rights, Jack Lerner and Lisa Borodkin, SF Gate, May 21
Gender Differences and Programming Environments: Across Programming Populations, Margaret Burnett, Gina Venolia,Mary Czerwinski, et. al.
Can Feature Design Reduce the Gender Gap in End-User Software Development Environments? Valentina Grigoreanu et. al, 2008
Theory in the machine; or, a feminist in a software lab, notes from a talk by Tara McPherson.
Frequent Asked Questions (FAQ) on programming by voice, by Mark with help from the voice coders mailing list
Some of the first computer languages, including COBOL, were heavily influenced by Dr. Grace Hopper and her belief “that programs should be written in a language that was close to English”. Since then, popular programming languages have been primarily by guys, and for the most part driven by American or Western Europeans (Ruby, designed by Yukihiro Matsumoto, is one of the rare exceptions). Possible directions looking forward:
Queer programming languages and anti-language: transCoder
قلب, a programming language written entirely in Arabic