Schemas for
the Real World
Carina C. Zona
@cczona
Well, hello. [As Jim noted,] my name is Carina C. Zona. You can find me a...
@cczona
—xkcd #940
And they do. Quite a
lot.
@cczona
Imagine walking through the world knowing that everyone’s first assumptions
about how you see yourself, who you lov...
"Normalization"
When developers talk about normalization, we're talking about databases. About computer
science. But when ...
@cczona
Construction of
social norms
Sociological normalization. [READ]
Conflating those works fine if you only want users f...
@cczona
Database
Normalization
Mirror real-world concepts and
their interrelationships.
What we lose track of is one of th...
@cczona
But we're getting tripped up by some flawed premises:
@cczona
Gender is one of those things
everyone thinks they understand,
but most people don't. Like "Inception".
— Sam Kill...
@cczona
'Hey, this is just a system I can figure out
easily!' is also a problem among engineers
first diving into the stock ...
@cczona
And the third problem is our faith that the first two problems here can be easily solved. Just
add more list items!...
Social Networks
What IS a social network? What is it in purely human terms?
Social
It involves trust. Individuals revealing WHO THEY ARE, WHAT THEY VALUE, and WHO THEY
CARE about. It's as personal a...
@cczona
In real life
"I know your personhood better than you"
sounds presumptuous
@cczona
In real life
sounds presumptuous
@cczona
In real life
"Your existence isn't possible"
sounds clueless
@cczona
In real life
sounds clueless
@cczona
In real life
"Who you are is invalid"
sounds arrogant
@cczona
In real life
sounds arrogant
@cczona
Data modeling is psychology, and it is philosophy. It reflect individuals' beliefs about reality,
rather than reflec...
@cczona
[READ]
@cczona
Be conservative in what you do,
be liberal in what you accept from others.
-Postel's Law
Postel's Law reminds us t...
@cczona
Schemas, plural
There are two kinds of schemas.
@cczona
Mental Schema
• Pre-conceived ideas
• Framework for representing some
aspect of the world
• System of organizing &...
@cczona
Database Schema
• Structure described in the database's
language
• Blueprint for database construction
• Describes...
@cczona
These are, simply, frontend manifestations of various individuals' MENTAL schemas. And [SLOW DOWN] when we
look at...
@cczona
deeply intimate
things that are [READ]
@cczona
important relationships
Schemas are foundation for expressing
things [READ]
@cczona
self-image
Schemas are foundation for expressing
things [READ]
@cczona
Schemas define the
user experience.
Schemas define user experience.
@cczona
Our schemas are
leaving people behind.
& UX
[read]
We can fix that.
@cczona
"What benefit will
the user notice?"
By asking ourselves "What benefit will the USER NOTICE?" THIS is not equivalent...
@cczona
Evaluating from
user perspective
gives us focus.
There isn't ONE WAY. There isn't ONE RIGHT ANSWER. Because the NA...
@cczona
Checkbox
Radio button
Select menu
Ranges
Coerced DiscretionaryGuided
Corrective Text Input
Textarea
Checkboxes, ra...
@cczona
Checkbox
Radio
Select
Coerced DiscretionaryGuided
Corrective Text Input
Textarea
Checking a box is a one step acti...
@cczona
11 years
At MetaFilter, gender has been a text field for over a decade.
@cczona
…the early crowd at MeFi were often
programmers and they hated the idea of
"dirty" data collection…
—Matt Haughey,...
@cczona
All girl
XY
Fella
Queer
Fembot
Alto
It depends
MYOB
Dangly bits
Chicklet
Innie not outie
Convex
Sideburns
Ambisext...
@cczona
I speak using the
male gender, when
required by
language 50% quintessential
tomboy, 50% total
girly-girl
AND becau...
@cczona
Transgender
Genderqueer
[PAUSE]
@cczona
The freeform gender field is something I
cherish about Metafilter.
—MeFi user
That text field grew into a beloved ins...
@cczona
It was one of the earliest indications I'd
landed in the right place.
—MeFi user
...That you're allowed to put in ...
@cczona
In 2010, Diaspora likewise turned gender into a text field. Just like on MetaFilter, users felt
set free by it.
The...
@cczona
Not amused
So some of its developers are not amused. It's fair to object that this approach wreaks chaos
on intern...
@cczona
Internationalization
is hellish, period.
Internationalization of pronouns is hellish, period. You get no safety ne...
@cczona
"What's your
legal gender?"
• Indeterminate
• X
• Sex Not Specified
And if you really thing that boiling this quest...
@cczona
...the most complicated thing I’ve ever
spent a lot of time learning about.
And I’ve spent a lot of time learning ...
@cczona
Ask.
Ask.
@cczona
"Which pronouns do
you prefer?"
he/him/himself/his/his
she/her/herself/hers/her
they/them/themself/theirs/their
it...
@cczona
"Which pronouns do
you prefer?"
he/him/himself/his/his
she/her/herself/hers/her
they/them/themself/theirs/their
pe...
@cczona
"Which pronouns do
you prefer?"
he/him/himself/his/his
she/her/herself/hers/her
they/them/themself/theirs/their
pe...
@cczona
Even Facebook has taken note that it's okay. They've been using this construction for at least
5 years, and are do...
@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 Research
When collecting data on people, we're in a different realm. Social sciences. If you want to
run useful ana...
Exhaustive
Every possible option
A field's values must include every possible option.
Mutually Exclusive
No overlap exists between them
And the field's options must be mutually exclusive.
How many social apps ...
@cczona
We've seen this one enough. At least that set of values seems covered fully.
@cczona
`
But it's not.
@cczona
Still lacking...
@cczona
Trying hard... But still inadequate to express the real world's complexity.
We do realize that the real world has ...
@cczona
"What user experience does this schema
drive us toward?"
It's easy to figure, "Eh, we can refactor later." But init...
@cczona
Data doesn’t have
to be for analysis.
It's easy to get into the habit of structuring data for easy analysis. But w...
@cczona
Data can be sheer
expressiveness.
Data can be sheer expressiveness. Data that has character, individualism, distin...
@cczona
What we want What we get
• Structured
• Predictable
• Validations, exceptions
• Conditionals, partials
• Relationa...
@cczona
"What is your religion,
if any?"
ARIS is the largest ongoing survey of Americans' religious identification. It asks...
@cczona
ARIS found, though, that these could be compressed into 13 major categories. More
manageable list, right? We could...
@cczona
What is your religion, if any?
Christian 76%
Other 4%
None 15%
Don't Know or Refused 5%
Which brings us down to th...
@cczona
What is your religion?
Christian 76%
Other 4%
n/a 20%
Fixed. Which focuses attention on a problem here: 1 in 5 are...
@cczona
What is your religion?
Christian 76%
Other 24%
So what we're left with is a good, clear, list. It covers ALL the b...
@cczona
Religion:
But we don't do THIS. It covers the biggest categories. But oh how it leaves people out.
@cczona
People aren't
edge cases.
People aren't edge cases.
And they're pushing back on apps that treat them that way.
[LO...
@cczona
Balancing between
approaches
As engineers, it's instinctually uncomfortable to DELIBERATELY NOT STRUCTURE DATA for...
@cczona
And if necessary, we CAN strike a middleground. This is where guided response comes in.
Autosuggest.
@cczona
Checkbox
Radio
Select
Textarea
Text
Required OptionalAutosuggest
Minimal Suggest
When there's a subset of values t...
Unguided Text
Of those who use MetaFilter's gender field,
40% of responses are: f, m, female, male.
[read]
So structured da...
Optional Select
60% of Facebook users select a relationship status
It's fine to mix and match here. Find the right approach...
@cczona
We want everyone to
feel excited what we've
built
The bottom line is that [read]
@cczona
We want users to feel
passionate about their
involvement
[read]
@cczona
Analytics, investments,
& monetization are
based on a premise that
data is accurate
[read!!!]
BUT the data has bee...
@cczona
this premise is garbage. Some people are lying, because lying has been made requirement
for getting past the barri...
@cczona
Checkbox
Radio
Select
Textarea
Text
Required
Corrective
DiscretionaryGuided
The restrictive options, that stuff at...
@cczona
ADD column gender
! ! NOT NULL
!! VARCHAR(6)
! ! DEFAULT "female"
But the way we setup schema often embeds assumpt...
@cczona
ADD column gender_identity
! ! NOT NULL
!! VARCHAR
BOOM. This is foundation for a whole different user experience....
@cczona
Checkbox
Radio
Select
Textarea
Text
Required Optional
Alteration
Guided
So there you have it: a discretionary field...
@cczona
t.string "relationship_status",
! ! ! ! :null => true
As developers, we may upon THIS expression as redundant, com...
@cczona
Facebook
Single
In a relationship
Engaged
Married
It's complicated
Open relationship
...What would a canonical set...
@cczona
Facebook
Single
In a relationship
Engaged
Married
It's complicated
Open relationship
Widowed
Separated
Divorced
Ci...
@cczona
Google+
Single
In a relationship
Engaged
Married
It's complicated
Open relationship
Widowed
Separated
Divorced
Civ...
@cczona
Allowing users to identify their relationships with labels of greater personal significance...That's being driven
b...
@cczona
It's a scope.
How did some status seem universal, while others weren't? Naming a thing creates scope. The assumed
...
@cczona
marital_status?
Single
In a relationship
Engaged
Married
It's complicated
Open relationship
Widowed
Separated
Divo...
@cczona
legal_marital_status
Single
In a relationship
Engaged
Married
It's complicated
Open relationship
Widowed
Separated...
@cczona
relationship_status
Single
In a relationship
Engaged
Married
It's complicated
Open relationship
Widowed
Separated
...
@cczona
singleness_status
As soon as you name a field, you define its paradigm and possibilities. There are important
differ...
@cczona
singleness_rating
No chance whatsoever Suuuuuper duper single
100%0
If you change the name, you shift the paradigm...
@cczona
It's Complicated
In a Relationship
Married Divorced
Widowed
Single
We go through life experiencing many relationsh...
@cczona
I like to be truthful, and "It's Complicated"
is really deceiving. It is not complicated. I
am separated from my h...
@cczona
Okay, this one... Spot the fatal flaw... [WAIT]
@cczona
buffer overflow
An open relationship is definitionally a 1:Many join — WITH the usual engineering
understanding, th...
@cczona
Choose (one):
evasive
inauthentic
But it's not funny from the personal perspective. This schema forces the person ...
@cczona
Facebook relationship status by user age
srsly?
When we don't give people means to express what's real and importa...
@cczona
We build or break
community with each
line of code.
As developers, our lines of code build -- or break -- an app's...
@cczona
Modeling the
real world is complex.
[READ]
And that's okay.
@cczona
Assuming we know
who users are
surrenders
opportunity to
learn who they are.
But [read] Early constraints in schem...
@cczona
Quality
Data quality improves when lies are merely optional, not required.
@cczona
Specificity
Data becomes, like the real world itself, rich and specific. So we can unearth the patterns
that are und...
@cczona
Adaptability
We get to make discoveries, and re-envision possibilities.
We adapt, quickly.
@cczona
Loyalty
And their response to all this: Engagement. Passion. LOYALTY.
@cczona
THOSE are foundations for great user experiences. [LOOK UP. FINALITY.]
@cczona
cczona@gmail.com
http://cczona.com
Questions?
Conversation?
Oh. Hell. Yeah.
Carina C. Zona
@cczona
Resources
@cczona
Data Science &
Information Architecture
•Sociological normalization
•Database normalization
•Using Machine Learnin...
@cczona
Relationships
•"Does Facebook Hurt Relationships?"
•"Facebook Adds LGBT-Friendly Relationship Status Options"
•"Fa...
@cczona
Sex & Genders
•“Disalienation:Why Gender is a Text Field on Diaspora”
•“Gender & Drop Down Menus”
•“Sex & Gender”
...
@cczona
Names
•"Falsehoods Programmers Believe About Names"
•"Your Last Name Contains Invalid Characters"
•W3C Internation...
@cczona
More
•"Redesigning the Country Selector"
•"American Religious Identification Survey, Summary Report 2009"
•"Linguis...
@cczona
Image Credits
Postsecret
Facebook
OKCupid
Google+
Metafilter
Diaspora
Flickr
FetLife
Kotangle
cutestpaw.com
hdwallp...
@cczona
Many Thanks
Chiu-Ki Chan
Estelle Weyl
Heather Rivers
Heroku
Jeremy Dunck
Josh Susser
Michele Titolo
NIRD, LLC
René...
@cczona
Get in Touch
Carina C. Zona
@cczona
http://cczona.com
cczona@gmail.com
http://slideshare.net/cczona
http://linkedi...
Upcoming SlideShare
Loading in …5
×

Schemas for the Real World [Madison RubyConf 2013]

1,188 views
1,079 views

Published on

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

Published in: Technology, Spiritual
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,188
On SlideShare
0
From Embeds
0
Number of Embeds
35
Actions
Shares
0
Downloads
2
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Schemas for the Real World [Madison RubyConf 2013]

  1. 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.
  2. 2. @cczona —xkcd #940 And they do. Quite a lot.
  3. 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. 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. 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. 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.
  7. 7. @cczona But we're getting tripped up by some flawed premises:
  8. 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. 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. 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.
  11. 11. Social Networks What IS a social network? What is it in purely human terms?
  12. 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?
  13. 13. @cczona In real life "I know your personhood better than you" sounds presumptuous
  14. 14. @cczona In real life sounds presumptuous
  15. 15. @cczona In real life "Your existence isn't possible" sounds clueless
  16. 16. @cczona In real life sounds clueless
  17. 17. @cczona In real life "Who you are is invalid" sounds arrogant
  18. 18. @cczona In real life sounds arrogant
  19. 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.
  20. 20. @cczona [READ]
  21. 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]
  22. 22. @cczona Schemas, plural There are two kinds of schemas.
  23. 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. 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. 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:
  26. 26. @cczona deeply intimate things that are [READ]
  27. 27. @cczona important relationships Schemas are foundation for expressing things [READ]
  28. 28. @cczona self-image Schemas are foundation for expressing things [READ]
  29. 29. @cczona Schemas define the user experience. Schemas define user experience.
  30. 30. @cczona Our schemas are leaving people behind. & UX [read] We can fix that.
  31. 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. 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. 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.
  34. 34. @cczona Checkbox Radio Select Coerced DiscretionaryGuided Corrective Text Input Textarea Checking a box is a one step action. Entering a text string is not. So a freeform solution such as a textarea or text input isn't automatically exciting. BUT, they can bring visible, meaningful benefit.
  35. 35. @cczona 11 years At MetaFilter, gender has been a text field for over a decade.
  36. 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]
  37. 37. @cczona All girl XY Fella Queer Fembot Alto It depends MYOB Dangly bits Chicklet Innie not outie Convex Sideburns Ambisextrous Member of the patriarchy For about 5 seconds. Then they jumped on board. Because they could be creative and silly.
  38. 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.
  39. 39. @cczona Transgender Genderqueer [PAUSE]
  40. 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. 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. 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. 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. 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. 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. 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:
  47. 47. @cczona Ask. Ask.
  48. 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. 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. 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. 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. 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. 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:
  54. 54. Exhaustive Every possible option A field's values must include every possible option.
  55. 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?
  56. 56. @cczona We've seen this one enough. At least that set of values seems covered fully.
  57. 57. @cczona ` But it's not.
  58. 58. @cczona Still lacking...
  59. 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. 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. 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. 62. @cczona Data can be sheer expressiveness. Data can be sheer expressiveness. Data that has character, individualism, distinctiveness.
  63. 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. 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. 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. 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. 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. 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.
  69. 69. @cczona Religion: But we don't do THIS. It covers the biggest categories. But oh how it leaves people out.
  70. 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. 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. 72. @cczona And if necessary, we CAN strike a middleground. This is where guided response comes in. Autosuggest.
  73. 73. @cczona Checkbox Radio Select Textarea Text Required OptionalAutosuggest Minimal Suggest When there's a subset of values that you're most interested in, do minimal suggest instead. Autosuggest using just the handful of values you care about. Structured data from those who want to give it. Free form to incite expressiveness in those who want THAT.
  74. 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. 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.
  76. 76. @cczona We want everyone to feel excited what we've built The bottom line is that [read]
  77. 77. @cczona We want users to feel passionate about their involvement [read]
  78. 78. @cczona Analytics, investments, & monetization are based on a premise that data is accurate [read!!!] BUT the data has been collected by coercive approaches, the RISK is that--
  79. 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.
  80. 80. @cczona Checkbox Radio Select Textarea Text Required Corrective DiscretionaryGuided The restrictive options, that stuff at bottom left, those don't actually have to be marked "required".
  81. 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. 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.
  83. 83. @cczona Checkbox Radio Select Textarea Text Required Optional Alteration Guided So there you have it: a discretionary field. Whether to respond is left up to the user.
  84. 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. 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.
  86. 86. @cczona Facebook Single In a relationship Engaged Married It's complicated Open relationship Widowed Separated Divorced Civil union Domestic partnership Under pressure, Facebook nearly doubled the options in just two years time.
  87. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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?
  97. 97. @cczona Okay, this one... Spot the fatal flaw... [WAIT]
  98. 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. 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. 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. 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.
  102. 102. @cczona Modeling the real world is complex. [READ] And that's okay.
  103. 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?
  104. 104. @cczona Quality Data quality improves when lies are merely optional, not required.
  105. 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.
  106. 106. @cczona Adaptability We get to make discoveries, and re-envision possibilities. We adapt, quickly.
  107. 107. @cczona Loyalty And their response to all this: Engagement. Passion. LOYALTY.
  108. 108. @cczona THOSE are foundations for great user experiences. [LOOK UP. FINALITY.]
  109. 109. @cczona cczona@gmail.com http://cczona.com Questions? Conversation? Oh. Hell. Yeah. Carina C. Zona
  110. 110. @cczona Resources
  111. 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
  112. 112. @cczona Relationships •"Does Facebook Hurt Relationships?" •"Facebook Adds LGBT-Friendly Relationship Status Options" •"Facebook Targeting by Relationship Status & Workplace" •"Your Facebook Relationship Status: It's Complicated" •"Gay Marriage:The Database Engineering Perspective"
  113. 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. 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. 115. @cczona More •"Redesigning the Country Selector" •"American Religious Identification Survey, Summary Report 2009" •"Linguistic Potluck: Crowdsourcing Internationalization in Rails"
  116. 116. @cczona Image Credits Postsecret Facebook OKCupid Google+ Metafilter Diaspora Flickr FetLife Kotangle cutestpaw.com hdwallpapers.in xkcd
  117. 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. 118. @cczona Get in Touch Carina C. Zona @cczona http://cczona.com cczona@gmail.com http://slideshare.net/cczona http://linkedin.com/in/cczona

×