Social app development challenges us how to code for users’ personal world. Users are giving push-back to ill-fitted assumptions about their identity — including name, gender, sexual orientation, important relationships, and other attributes they value.
How can we balance users’ realities with an app’s business requirements?
Facebook, Google+, and others are grappling with these questions. Resilient approaches arise from an app’s own foundation. Discover schemas’ influence over codebase, UX, and development itself. Learn how we can use schemas to both inspire users and generate data we need as developers.
--
META
Where: Madison Ruby Conference 2013 (Madison, Wisconsin, USA)
Date: August 23, 2013
Video: http://www.confreaks.com/videos/2627-madisonruby2013-schemas-for-the-real-world
Schemas for the Real World: Understanding Complexities of Gender and Identity
1. Schemas for
the Real World
Carina C. Zona
@cczona
Well, hello. [As Jim noted,] my name is Carina C. Zona. You can find me all over the internet as 'cczona'.
I'm a developer. I'm also a sex educator. I volunteer for an organization called San Francisco Sex Information, or SFSI. SFSI has been operating a
phone hotline for over 40 years. Our mission is to answer any question: accurately, confidentially, and without judgement. You'd think that people would
ask all sorts of questions. And they do. But the majority of questions boil down to something very simple and universal: Am I Normal? Do I fit into the
world?
So, here I have these two roles: developer and sex educator. They may seem completely different to you. Not to me. I think a lot about how they
overlap.
3. @cczona
Imagine walking through the world knowing that everyone’s first assumptions
about how you see yourself, who you love, and what feels right for you are
completely wrong. Now imagine signing up for a cool website, and then being
required to select an option from a drop-down menu that doesn’t include
anything that represents you....
You’ll feel defeated.You’ll want to argue that whatever they think they’re
learning from that drop-down menu, it’s not really true.You’ll want to tell
them that they’re adding to your humiliation by making you do this.You’ll want
to tell them that they’re missing a huge part of you…
—Sarah Dopp
Users are giving pushback to assumptions that leave them out. Social apps, in particular, are
being pressed to adjust. Facebook, Google, and others have been dealing with these
questions for years and are still working it out. So if you feel out of depth, you're not the
only one.
4. "Normalization"
When developers talk about normalization, we're talking about databases. About computer
science. But when dealing with human attributes, we're inherently dealing in the social
sciences too.
5. @cczona
Construction of
social norms
Sociological normalization. [READ]
Conflating those works fine if you only want users from among the select few who belong to
the idealized norm. But most of us are going for broad userbase.
6. @cczona
Database
Normalization
Mirror real-world concepts and
their interrelationships.
What we lose track of is one of the core tenets of database normalization. We're supposed to
[read]. When the database is in tension with people's own, real world -- then it's not people
who need to be flexible. It's us.
Why IS this hard? Because at first glance, this stuff looks easy. It's just forms? We've done
those a million times.
8. @cczona
Gender is one of those things
everyone thinks they understand,
but most people don't. Like "Inception".
— Sam Killerman
First, a premise that deeply personal stuff about humans can be reduced to lists.
9. @cczona
'Hey, this is just a system I can figure out
easily!' is also a problem among engineers
first diving into the stock market.
—xkcd #592
Second, assumptions that canonical lists for these exist. Or are at least, SURELY, must be
createable.
10. @cczona
And the third problem is our faith that the first two problems here can be easily solved. Just
add more list items!
[SCROLL for a while]
Easy to wind up looking foolish. Without even having solved the problem.
12. Social
It involves trust. Individuals revealing WHO THEY ARE, WHAT THEY VALUE, and WHO THEY
CARE about. It's as personal as we get. This is the REAL LIFE that our apps are meant to
replicate and build upon.
What relationships are we fostering between person and app? What relationships are we
accidentally inhibiting or denying?
19. @cczona
Data modeling is psychology, and it is philosophy. It reflect individuals' beliefs about reality,
rather than reflecting reality itself. It rejects reality's complexity and richness. That's NOT
what we set out to do. It's not the COMMUNITY we seek to build.
21. @cczona
Be conservative in what you do,
be liberal in what you accept from others.
-Postel's Law
Postel's Law reminds us to [READ].
ARE we taking to heart that wisdom...?
[PAUSE FOR END OF SECTION]
23. @cczona
Mental Schema
• Pre-conceived ideas
• Framework for representing some
aspect of the world
• System of organizing & perceiving
new information
Mental Schema are [READ]
24. @cczona
Database Schema
• Structure described in the database's
language
• Blueprint for database construction
• Describes how the real world is being
modeled
Database schemas are closely related to that. It's a mental schema, translated into blueprints
for a database.
25. @cczona
These are, simply, frontend manifestations of various individuals' MENTAL schemas. And [SLOW DOWN] when we
look at them closely we can see... [BRIEF PAUSE] that schemas are foundation [BRIEF PAUSE] for expressing:
31. @cczona
"What benefit will
the user notice?"
By asking ourselves "What benefit will the USER NOTICE?" THIS is not equivalent to "How will
the user benefit?". Because THAT is a question which grants us too much latitude. To ASSUME
that what we want is of course to their benefit because it's gonna help us deliver a product
that's Awesome.
[READ AGAIN] focuses us on EXPERIENCES.
32. @cczona
Evaluating from
user perspective
gives us focus.
There isn't ONE WAY. There isn't ONE RIGHT ANSWER. Because the NATURE of our dilemma is
that users vary. And so do their social worlds. So we always need to understand varying
approaches. How they fit different contexts. What tradeoffs they bring. AND, the obvious,
boring question: which options best serve THIS app's business requirements...
33. @cczona
Checkbox
Radio button
Select menu
Ranges
Coerced DiscretionaryGuided
Corrective Text Input
Textarea
Checkboxes, radio buttons, select menus, ranges: these each imply that EVERY possible value
can -- and is -- included. If any value isn't included there: it's real world being rejected,
because it didn't match up with our mental schema.
36. @cczona
…the early crowd at MeFi were often
programmers and they hated the idea of
"dirty" data collection…
—Matt Haughey, founder
Initially, some SHUDDERED at the thought. Because [READ]
38. @cczona
I speak using the
male gender, when
required by
language 50% quintessential
tomboy, 50% total
girly-girl
AND because they could express this THING about themselves fully. With authentic voice.
40. @cczona
The freeform gender field is something I
cherish about Metafilter.
—MeFi user
That text field grew into a beloved institution. Whatever you as user choose to put into that
field says something revealing about who YOU are...
41. @cczona
It was one of the earliest indications I'd
landed in the right place.
—MeFi user
...That you're allowed to put in ANYTHING -- or put in NOTHING AT ALL -- says something
revealing about what how MetaFilter envisions community. That schema's trust in users was
the foundation for Metafilter users to ASK to share themselves even more.
42. @cczona
In 2010, Diaspora likewise turned gender into a text field. Just like on MetaFilter, users felt
set free by it.
There's an important distinction here, though: Metafilter is closed source, it's one developer,
and it's entirely in English. Diaspora needed to meet a different set of needs. It's open
source, and it's international.
43. @cczona
Not amused
So some of its developers are not amused. It's fair to object that this approach wreaks chaos
on internationalization of pronouns. [BEAT] And here's what I've got to say to that:
44. @cczona
Internationalization
is hellish, period.
Internationalization of pronouns is hellish, period. You get no safety net in this. Constraining
gender options doesn't solve translation of languages. Don't set yourself up for trying to deal
with internationalization this way. It will fail you.
45. @cczona
"What's your
legal gender?"
• Indeterminate
• X
• Sex Not Specified
And if you really thing that boiling this question down to "What's your legal gender" is an easy
out, let's talk about internationaliztion of that too. Because this is the year that,
"indeterminate" has become a legal gender on German birth certificates, and that "X" is a
legal gender on Australian passports. In New South Wales, Australia, "Sex Not Specified" is yet
another legally-recognized gender. Binary gender is, today, APP FAIL.
46. @cczona
...the most complicated thing I’ve ever
spent a lot of time learning about.
And I’ve spent a lot of time learning about
quantum mechanics...
—Randall Munroe, xkcd
Randall Munroe, best known as xkcd, has examined the issue of pronouns many times, in
depth, for English language projects. He says it's [READ] So, he's what he ultimately
concluded:
48. @cczona
"Which pronouns do
you prefer?"
he/him/himself/his/his
she/her/herself/hers/her
they/them/themself/theirs/their
it/it/itself/its/its
by name
Asking, straight up, "Which Pronouns Do You Prefer?" is truly the best he could come up with.
49. @cczona
"Which pronouns do
you prefer?"
he/him/himself/his/his
she/her/herself/hers/her
they/them/themself/theirs/their
personal name
other: ____________
Or maybe slightly refining, like these.
And I know you may be looking at that 3rd row and protesting...
50. @cczona
"Which pronouns do
you prefer?"
he/him/himself/his/his
she/her/herself/hers/her
they/them/themself/theirs/their
personal name
other: ____________
Our english teachers told us 'they' and 'their' aren't singular, right? Nope. They're plural AND
SINGULAR, and have been for 400 years. Take the word of Jane Austen, Shakespeare,
Chaucer, Lewis Carroll... Modern english authorities agree on this one too. It's excellent
English -- and excellent SOCIAL -- to use it when people ask us to.
51. @cczona
Even Facebook has taken note that it's okay. They've been using this construction for at least
5 years, and are doing fine. :-)
52. @cczona
Home is the place where, when you have
to go there, they have to take you in.
—Robert Frost
We aspire to make our social apps feel like home. We can do that by making development
choices that say, "Hey user, we GET you. Be as individual and messy as you want to. We can
handle _you_ being _you_."
53. Social Research
When collecting data on people, we're in a different realm. Social sciences. If you want to
run useful analytics about personal attributes and behavior, then data collection needs to
meet at least the two minimum criteria for social science research:
55. Mutually Exclusive
No overlap exists between them
And the field's options must be mutually exclusive.
How many social apps have both of those bare minimum criteria covered?
59. @cczona
Trying hard... But still inadequate to express the real world's complexity.
We do realize that the real world has great variety. Of course we do. But it's hard to know
how to handle it.
60. @cczona
"What user experience does this schema
drive us toward?"
It's easy to figure, "Eh, we can refactor later." But initial choices set differing user experiences
in motion. Thinking at the outset about the real world's variety and complexity, starts us
asking early questions that set foundation for social app-building. Ask: "What user
experience does this schema drive us toward?"
61. @cczona
Data doesn’t have
to be for analysis.
It's easy to get into the habit of structuring data for easy analysis. But we can choose to look
at human data from a different perspective... Step back. Wallow in the user's perspective:
62. @cczona
Data can be sheer
expressiveness.
Data can be sheer expressiveness. Data that has character, individualism, distinctiveness.
63. @cczona
What we want What we get
• Structured
• Predictable
• Validations, exceptions
• Conditionals, partials
• Relational
• Indexed
• Premature optimization
• Exhaustive
• Cultural variability
• Individual POV
• Moving target
• Easy analytics
• Data-driven decisions
• Decisions based on false
premises
As developers, we have a vision of what a good codebase should be and not be.
[READ]
In the most sensible of ways, we often arrive at solutions that are factually TRUTHY while far
removed from real life utility.
64. @cczona
"What is your religion,
if any?"
ARIS is the largest ongoing survey of Americans' religious identification. It asks this simple,
OPEN-ENDED question: [slide]
Which nets over 100 unique answers. Which, if you're making a form based on that, is tricky.
There's no form element that makes it easy for our users to pick themselves out of a list of so
many possibilities.
65. @cczona
ARIS found, though, that these could be compressed into 13 major categories. More
manageable list, right? We could use that for a form. But, eh, a lot of those are edge cases.
We'd rather want to focus on genuinely major groupings.
66. @cczona
What is your religion, if any?
Christian 76%
Other 4%
None 15%
Don't Know or Refused 5%
Which brings us down to this. At least a quarter of Americans are Christian. Done. Every other
religion would just be clutter. Edge cases.
And then there's this sort of crummy data with it. We'd probably assign nil value for more
than one of these categories, right?
67. @cczona
What is your religion?
Christian 76%
Other 4%
n/a 20%
Fixed. Which focuses attention on a problem here: 1 in 5 are not useful answers from an
advertiser's perspective or for out own analytics. The NILS -- gotta go.
68. @cczona
What is your religion?
Christian 76%
Other 24%
So what we're left with is a good, clear, list. It covers ALL the big stuff. When you get
reductive enough, for Americans: religion it a binary. Which, from a storage standpoint, is
great. Booleans! Score.
70. @cczona
People aren't
edge cases.
People aren't edge cases.
And they're pushing back on apps that treat them that way.
[LONG BEAT. LONG.] [BREATH.] [CHANGE GEARS.]
So. Reductive has big problems. So does scaling upward:
71. @cczona
Balancing between
approaches
As engineers, it's instinctually uncomfortable to DELIBERATELY NOT STRUCTURE DATA for
easy analysis. I feel ya. I really do. This freaks me too. But, again, the foundational
question is "What benefit will the user notice?" What identities are okay with us?
72. @cczona
And if necessary, we CAN strike a middleground. This is where guided response comes in.
Autosuggest.
74. Unguided Text
Of those who use MetaFilter's gender field,
40% of responses are: f, m, female, male.
[read]
So structured data IS there. This can be a balanced solution in many cases where you're
willing to tolerate some ambiguity. Of course there are tradeoffs.
Data quantity is lower. Freed to opt out of proving personal info, many do.
On the other hand, data quality should improve.
75. Optional Select
60% of Facebook users select a relationship status
It's fine to mix and match here. Find the right approach for your users and your app's
business objectives. Facebook, for instance, makes relationship status completely optional,
but coercive for those who do opt-in to setting a value. Most users do opt-in. 60% of them
select a relationship status.
79. @cczona
this premise is garbage. Some people are lying, because lying has been made requirement
for getting past the barriers. So conclusions drawn from that bad data can misdirect
decision-making about the next stage of development.
81. @cczona
ADD column gender
! ! NOT NULL
!! VARCHAR(6)
! ! DEFAULT "female"
But the way we setup schema often embeds assumptions that we should, and we will. So we
do. An attribute that is ambiguously named is destined to become a form field whose data
wanders away from its original intent, and code that misunderstands how to use it. A field
that's not allowed to be null is destined to be mandatory. A field that is assigned a maximum
length is an ASSERTION that all possible values are knowable and fit within it.
82. @cczona
ADD column gender_identity
! ! NOT NULL
!! VARCHAR
BOOM. This is foundation for a whole different user experience. And the cool ninja move
was that we decided to DO LESS.
Make this stuff flexible upfront. Optimize storage later. Decide what's valid later.
84. @cczona
t.string "relationship_status",
! ! ! ! :null => true
As developers, we may upon THIS expression as redundant, completely unnecessary. Duh,
null is true by default. But making that explicit is a communication to the team and to your
future self. It's a statement of intent. It's documenting a product decision.
85. @cczona
Facebook
Single
In a relationship
Engaged
Married
It's complicated
Open relationship
...What would a canonical set of relationship statuses look like...? Three years ago Facebook
figured this list was pretty good. Arguably pretty progressive too, right? Users disagreed.
Strongly.
87. @cczona
Google+
Single
In a relationship
Engaged
Married
It's complicated
Open relationship
Widowed
Separated
Divorced
Civil union
Domestic partnership
I don't want to say
While Google+ has largely adopted that list, it has not included Separated or Divorced.
Notice that they also added something: choice. Opt out of labeling.
88. @cczona
Allowing users to identify their relationships with labels of greater personal significance...That's being driven
by people rejecting a user experience that isn't working for them.
89. @cczona
It's a scope.
How did some status seem universal, while others weren't? Naming a thing creates scope. The assumed
validity of a field's values get constrained as soon as the field is named.
90. @cczona
marital_status?
Single
In a relationship
Engaged
Married
It's complicated
Open relationship
Widowed
Separated
Divorced
Civil union
Domestic partnership
I don't want to say
"Marital status" for instance, might lead to a list similar to this one. A person is assumed to
be either unmarried, preparing to be married, currently married, or formerly married.
91. @cczona
legal_marital_status
Single
In a relationship
Engaged
Married
It's complicated
Open relationship
Widowed
Separated
Divorced
Civil union
Domestic partnership
I don't want to say
"Marital status" for instance, might lead to a list similar to this one. A person is assumed to
be either unmarried, preparing to be married, currently married, or formerly married.
92. @cczona
relationship_status
Single
In a relationship
Engaged
Married
It's complicated
Open relationship
Widowed
Separated
Divorced
Civil union
Domestic partnership
I don't want to say
Whereas "relationship status" might lead to a list more like this one. In which one either has
a current relationship -- or is defined by the absence of any.
93. @cczona
singleness_status
As soon as you name a field, you define its paradigm and possibilities. There are important
difference in what each of these envision and are able to measure. Naming fields -- with
great specificity, upfront -- Makes analyses more powerful, later.
94. @cczona
singleness_rating
No chance whatsoever Suuuuuper duper single
100%0
If you change the name, you shift the paradigm and possibilities. There's important
difference in these what these collect set out to measure. Naming fields -- With great
specificity, upfront. --Makes analyses more powerful, later.
95. @cczona
It's Complicated
In a Relationship
Married Divorced
Widowed
Single
We go through life experiencing many relationships. They don't all have pre-determined
labels. And new relationship identities don't necessarily leave old ones behind.
96. @cczona
I like to be truthful, and "It's Complicated"
is really deceiving. It is not complicated. I
am separated from my husband, who I am
still legally married to.
—Facebook user
[READ] Why should anyone have to feel like they're required to disavowing a relationship that's meaningful
for them?
It cuts deeply sometimes. Is a widow only "Widowed" until she resumes dating? Why does she have to be
confronted with a decision like that, just to use someone's app?
98. @cczona
buffer overflow
An open relationship is definitionally a 1:Many join — WITH the usual engineering
understanding, that is: that actual number of relationships may be 0, 1, OR many.
99. @cczona
Choose (one):
evasive
inauthentic
But it's not funny from the personal perspective. This schema forces the person to either:
LOOK EVASIVE or else BE INAUTHENTIC. This is what happens when we try to throw more
labels at the problem instead of re-examining the schema's assumptions.
100. @cczona
Facebook relationship status by user age
srsly?
When we don't give people means to express what's real and important for them, they hack
around us. Are a quarter of Facebook's 13 year olds really married? Probably not. What they
probably have is a BEST FRIEND, and "married" is nearest equivalent available for them to
express, "THIS PERSON is my most important relationship."
The dogged pursuit of nice, clean, CRUNCHABLE data takes us to such wrong places... And
makes our users want to work against a system that doesn't acknowledge their lives' reality.
101. @cczona
We build or break
community with each
line of code.
As developers, our lines of code build -- or break -- an app's community. So it's worth
making conscious choices as we go.
103. @cczona
Assuming we know
who users are
surrenders
opportunity to
learn who they are.
But [read] Early constraints in schema NET crappy, misleading data.
[beat]
So keep constraints out of human and social schema, at least at first. Gather enough initial
response to do some data mining. Watch that data for a while. Keep an eye out for emergent
trends. What DISCOVERIES can you make? How can they shape the app's growth and
evolution?
105. @cczona
Specificity
Data becomes, like the real world itself, rich and specific. So we can unearth the patterns
that are undetectable when data is generic.
111. @cczona
Data Science &
Information Architecture
•Sociological normalization
•Database normalization
•Using Machine Learning On Social Networks To Figure Out WhatYou Should
Read On The Web
•NoSQL Data Modeling Techniques
•"Data & Reality," by William Kent
• "Bad Data Handbook," Q Ethan McCallum
•Data Science of the Facebook World
113. @cczona
Sex & Genders
•“Disalienation:Why Gender is a Text Field on Diaspora”
•“Gender & Drop Down Menus”
•“Sex & Gender”
•“Bucket Gender”
•"Recommendations for Inclusive Data Collection of Trans People"
114. @cczona
Names
•"Falsehoods Programmers Believe About Names"
•"Your Last Name Contains Invalid Characters"
•W3C Internationalization: "Personal Names Around the World"
•Spanish Names
•Chinese Names
115. @cczona
More
•"Redesigning the Country Selector"
•"American Religious Identification Survey, Summary Report 2009"
•"Linguistic Potluck: Crowdsourcing Internationalization in Rails"
117. @cczona
Many Thanks
Chiu-Ki Chan
Estelle Weyl
Heather Rivers
Heroku
Jeremy Dunck
Josh Susser
Michele Titolo
NIRD, LLC
Renée DeVoursney
Sarah Mei
San Francisco Sex Information
Yoz Grahame
118. @cczona
Get in Touch
Carina C. Zona
@cczona
http://cczona.com
cczona@gmail.com
http://slideshare.net/cczona
http://linkedin.com/in/cczona