schemas for the real world [rubyconf au 2013]

114
Schemas for the Real World Carina C. Zona @cczona Sunday, February 24, 13 [As Keith noted,] in addition to being a developer, I'm also a sex educator.

Upload: carina-c-zona

Post on 12-May-2015

2.577 views

Category:

Technology


1 download

DESCRIPTION

VIDEO: https://vimeo.com/61172068 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. [NOTE: links to Resources are on slide 112. Cheers!] --- META: Conference: RubyConf AU Date: February 21, 2013 Location: Jasper Hotel Session length: 45 minutes Video: https://vimeo.com/61172068

TRANSCRIPT

Page 1: Schemas for the Real World [RubyConf AU 2013]

Schemas for the Real World

Carina C Zona cczona

Sunday February 24 13[As Keith noted] in addition to being a developer Im also a sex educator

cczona

mdashxkcd 940

Sunday February 24 13

I think a lot about how the two overlap They do Quite a lot

cczona

Imagine walking through the world knowing that everyonersquos 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 doesnrsquot include anything that represents you[Y]oursquoll feel defeated Yoursquoll want to argue that whatever they think theyrsquore learning from that drop-down menu itrsquos not really true Yoursquoll want to tell them that theyrsquore adding to your humiliation by making you do this Yoursquoll want to tell them that theyrsquore missing a huge part of youhellip

mdashSarah Dopp

Sunday February 24 13

cczona

Female Male

Sunday February 24 13

cczona

Its ComplicatedIn a Relationship

Married Divorced

WidowedSingle

Sunday February 24 13

cczona

Asexual

Straight Gay

Bisexual

Pansexual

Sunday February 24 13

cczona

Sunday February 24 13

cczona

Sunday February 24 13

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 are not the only one

cczona

Sociological Normalization

Construction of an idealized norm

Sunday February 24 13

When developers talk about normalization were talking about databases But when dealing with human attributes we often wind up pursuing a different cause sociological normalization [read]

Conflating the two 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

cczona

Database Normalization

Mirror real-world concepts and their interrelationships

Sunday February 24 13

What we lose track of is one of the core objectives of database normalization Were supposed to [read] When the database is in tension with peoples own real world -- then its not people who need to be flexible

cczona

Sunday February 24 13

Why IS this hard Because at first glance this stuff looks so easy Its just forms right Weve done those a million times before

But we get tripped up by some flawed premises

cczona

Gender is one of those things everyone thinks they understand but most people dont Like Inception

mdash Sam Killerman

Sunday February 24 13

First a premise that deeply personal stuff about humans can be reduced to lists

cczona

Hey this is just a system I can figure out easily is also a problem among engineers first diving into the stock market

mdashxkcd 592

Sunday February 24 13

Second assumptions that canonical lists for these exist Or are at least SURELY must be creatable

cczona

ltoption value=1gtMrltoptiongt

ltoption value=2gtMrsltoptiongt

ltoption value=3gtMissltoptiongt

ltoption value=4gtMsltoptiongt

ltoption value=5gtDrltoptiongt

ltoption value=6gtProfessorltoptiongt

ltoption value=7gtThe Rt Revd Drltoptiongt

ltoption value=8gtThe Most Revdltoptiongt

ltoption value=9gtThe Rt Revdltoptiongt

ltoption value=10gtThe Revd Canonlt

optiongt

ltoption value=11gtThe Revdltoptiongt

ltoption value=12gtThe Rt Revd

Professorltoptiongt

ltoption value=13gtThe Venltoptiongt

ltoption value=14gtThe Most Revd Drlt

optiongt

ltoption value=16gtRabbiltoptiongt

ltoption value=17gtCanonltoptiongt

ltoption value=18gtDameltoptiongt

ltoption value=19gtChiefltoptiongt

ltoption value=20gtSisterltoptiongt

ltoption value=21gtReverendltoptiongt

ltoption value=22gtMajorltoptiongt

ltoption value=23gtOtherltoptiongt

ltoption value=24gtCllrltoptiongt

ltoption value=25gtSirltoptiongt

ltoption value=26gtRt Hon Lordltoptiongt

ltoption value=27gtRt Honltoptiongt

ltoption value=28gtThe Lord ltoptiongt

ltoption value=29gtViscountltoptiongt

ltoption value=30gtViscountessltoptiongt

ltoption value=31gtBaronessltoptiongt

ltoption value=32gtCaptainltoptiongt

ltoption value=33gtMasterltoptiongt

ltoption value=34gtVery Revdltoptiongt

ltoption value=35gtLadyltoptiongt

ltoption value=38gtMPltoptiongt

ltoption value=39gtKing of Kings and Lord

of Lordsltoptiongt

ltoption value=40gtConquering Lion of the

Tribe of Judahltoptiongt

ltoption value=41gtElect of God and Light

of this Worldltoptiongt

ltoption value=42gtHis Own Divine

Majestyltoptiongt

ltoption value=43gtFirst Ancient King of

Creationltoptiongt

ltoption value=44gtKing Alphaltoptiongt

ltoption value=45gtQueen Omegaltoptiongt

ltoption value=46gtBeginning with Our End

and First with Our Lastltoptiongt

ltoption value=47gtProtector of All Human

Faithltoptiongt

ltoption value=48gtRuler of the

Universeltoptiongt

ltoption value=49gtDudeltoptiongt

Sunday February 24 13

And the third problem is our faith that the first two problems here can be easily solved Just add more list items

cczona

Seeing more than 20 uncategorized options can be bewilderinghellip

mdashSmashing Magazine

Sunday February 24 13

So thats not gonna work

Also it risks looking like a dumbass

Social Networks

Sunday February 24 13

So heres the next flawed premise that we intuitively understand the nature of social networks

Stepping aside from how social networking has come to be implemented as technology -- what IS a social network What is it in purely human terms

cczona

Social network

Individuals and the dyadic ties between them

Interactions within a social group of exactly two people

Sunday February 24 13

[slide] Thats the real life that our apps are meant to replicate and build upon One-on-one As personal as our social selves get In social identity is a dependency

cczona

Developer amp user are in dyad too

How can I be better 11 partner with this person whohellip

bull is a current user

bull I hope will become a user

Sunday February 24 13

As developers we build -- or break -- community with each line of code What 11 relationships are we fostering between the individual and the app What relationships are we inhibiting between individuals

cczona

In real life

I know your personhood better than you

sounds presumptuous

Sunday February 24 13

cczona

In real life

sounds presumptuous

Sunday February 24 13

cczona

In real life

Who you are is invalid

sounds arrogant

Sunday February 24 13

cczona

In real life

sounds arrogant

Sunday February 24 13

cczona

In real life

Your existence isnt possible

sounds clueless

Sunday February 24 13

cczona

In real life

sounds clueless

Sunday February 24 13

cczona

Sunday February 24 13

Its not what we set out to do Its not the community we seek to build We want to create things that feel cutting edge -- not that seem out of touch with modern reality

cczona

Be conservative in what you do be liberal in what you accept from others

-Postels Law

Sunday February 24 13

[READ]

cczona

How do we bring modern realities into the data views logic

Sunday February 24 13

How DO we bring modern realities into the data views and logic We start at the schema

cczona

Sunday February 24 13

As developers were tugged in two directions keep the codebase manageable yet design for modern complexity

cczona

Get schemas into alignment

Sunday February 24 13

cczona

Mental Schema

bullSet of pre-conceived ideas

bullFramework for representing some aspect of the world

bullSystem of organizing amp perceiving new information

Sunday February 24 13

There are two kinds of schema [read]

cczona

Database Schema

bullStructure described in the databases language

bullBlueprint for database construction

bullDescribes how the real world is being modeled

Sunday February 24 13

Database schemas are basically the same thing Its a mental schema translated into blueprints for a database

cczona

create_table users force =gt true do |t| tstring username tstring email tstring passwordend

Sunday February 24 13

When you use Rails generate scaffold or Rails generate model it creates a migration Maybe you created something like this for instance Those migrations ultimately get translated into a unified schema to be used by the environments database

cczona

Sunday February 24 13

These are simply frontend manifestations of someones mental schema

cczona

Schemas are foundation for

expressing

things deeply intimate

Sunday February 24 13

cczona

Schemas are foundation for

expressing

self-image

Sunday February 24 13

cczona

Schemas are foundation for

expressing

identity

Sunday February 24 13

cczona

Schemas are foundation for

expressing

important relationships

Sunday February 24 13

cczona

Schemas are foundation for

expressing

values

Sunday February 24 13

cczona

Schemas are foundation for

expressing

spirit

creativity

uniqueness

Sunday February 24 13

cczona

Schemas define the

user experience

Sunday February 24 13

Schemas define user experience

cczona

Our schemas are leaving people behind

amp UX

Sunday February 24 13

[read]We can fix that

cczona

What benefit will the user notice

Sunday February 24 13

When developing a schema thats going to ask a person about their experiences feelings sense of self there isnt a single right way I can tell to do this What we can do is evaluate tradeoffs and ask What benefit will the user notice Thats not equivalent to How will the user benefit a question that grants too much latitude for assuming that what we want is of course to their benefit because its gonna help us deliver a product thats Awesome

cczona

Evaluating from user perspective gives us focus

Sunday February 24 13

[read]

cczona

Coerced Discretionary

Restricted Freeform

Guided

Corrective

Sunday February 24 13

Theres no point on this chart where everybody is seeing maximum benefit So lets look at the choices

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective Freeform

Sunday February 24 13

Checkboxs radio buttons and select menus imply that all possible values are represented Hey user just pick the right one (or ones) Its real world being rejected because it didnt happen to look like our mental schema

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective TextareaText

Sunday February 24 13

Checking a box is a one step action Entering a text string is not So a freeform solution such as a textarea or text field isnt automatically exciting Nevertheless a freeform field can deliver striking benefit to users

cczona

11 years

11 years

Sunday February 24 13

At MetaFilter gender has been a text field for over a decade

cczona

hellipthe early crowd at MeFi were often programmers and they hated the idea of dirty data collectionhellip

mdashMatt Haughey founder

Sunday February 24 13

Initially there were some who shuddered at the thought

cczona

All girl

XY

Braid runner

Fella

Fembot

Alto

It depends

MYOB

Dangly bits

Chicklet

Innie not outie

Convex

Sideburns

Ambisextrous

Member of the patriarchy

Sunday February 24 13

For about 5 seconds Then they jumped on board Because they could be creative and silly

cczona

I speak using the male gender when required by language

M but known to be flexible

50 quintessential tomboy 50 total girly-girl

Gender bo bender banana fanna fo lender fee fi mo

Sunday February 24 13

AND because they could express this THING about themselves fully With authentic voice

cczona

hellipit was one of the earliest indications Id landed in the right place

mdashMeFi user

Sunday February 24 13

That text field grew into a beloved institution What you as a user put into that field says something revealing who you are That youre allowed to put in anything -- or put in nothing -- says something revealing about what MetaFilter is meant to be for

cczona

8 years

11 years

4 years

11 years

Sunday February 24 13

That schemas trust in users was the foundation for the users to ASK to share themselves even more

cczona

Sunday February 24 13

Today MetaFilter users are trusted with many free-form fields including ones most developers instinctually constrain or thoroughly validate

cczona

Sunday February 24 13

Nonsensical values Hell yeah go for it Field values that blatantly contradict each other No objection to that either The message is hey user we get that this is YOUR OWN HOME Make it as comfortable personal and messy as you want to WE as developers can work with that

Social Research

Sunday February 24 13

When collecting data on people youre 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 two minimum criteria

ExhaustiveEvery possible option

Sunday February 24 13

A fields values must include every possible option

Mutually ExclusiveNo overlap exists between them

Sunday February 24 13

And the fields options must be mutually exclusive

How many social apps have both of those bare minimum criteria covered

cczona

Sunday February 24 13

Weve seen this one enough At least that set of values seems covered fully

cczona

Sunday February 24 13

But its not

cczona

Sunday February 24 13

Still not

Well never get there by adding more list items But thats fine Because instead we can choose to look at human data from a different perspective

cczona

Data doesnrsquot have to be for analysis

Sunday February 24 13

Its easy to get into the habit of structuring data for easy analysis But step back Wallow in the users perspective

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 2: Schemas for the Real World [RubyConf AU 2013]

cczona

mdashxkcd 940

Sunday February 24 13

I think a lot about how the two overlap They do Quite a lot

cczona

Imagine walking through the world knowing that everyonersquos 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 doesnrsquot include anything that represents you[Y]oursquoll feel defeated Yoursquoll want to argue that whatever they think theyrsquore learning from that drop-down menu itrsquos not really true Yoursquoll want to tell them that theyrsquore adding to your humiliation by making you do this Yoursquoll want to tell them that theyrsquore missing a huge part of youhellip

mdashSarah Dopp

Sunday February 24 13

cczona

Female Male

Sunday February 24 13

cczona

Its ComplicatedIn a Relationship

Married Divorced

WidowedSingle

Sunday February 24 13

cczona

Asexual

Straight Gay

Bisexual

Pansexual

Sunday February 24 13

cczona

Sunday February 24 13

cczona

Sunday February 24 13

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 are not the only one

cczona

Sociological Normalization

Construction of an idealized norm

Sunday February 24 13

When developers talk about normalization were talking about databases But when dealing with human attributes we often wind up pursuing a different cause sociological normalization [read]

Conflating the two 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

cczona

Database Normalization

Mirror real-world concepts and their interrelationships

Sunday February 24 13

What we lose track of is one of the core objectives of database normalization Were supposed to [read] When the database is in tension with peoples own real world -- then its not people who need to be flexible

cczona

Sunday February 24 13

Why IS this hard Because at first glance this stuff looks so easy Its just forms right Weve done those a million times before

But we get tripped up by some flawed premises

cczona

Gender is one of those things everyone thinks they understand but most people dont Like Inception

mdash Sam Killerman

Sunday February 24 13

First a premise that deeply personal stuff about humans can be reduced to lists

cczona

Hey this is just a system I can figure out easily is also a problem among engineers first diving into the stock market

mdashxkcd 592

Sunday February 24 13

Second assumptions that canonical lists for these exist Or are at least SURELY must be creatable

cczona

ltoption value=1gtMrltoptiongt

ltoption value=2gtMrsltoptiongt

ltoption value=3gtMissltoptiongt

ltoption value=4gtMsltoptiongt

ltoption value=5gtDrltoptiongt

ltoption value=6gtProfessorltoptiongt

ltoption value=7gtThe Rt Revd Drltoptiongt

ltoption value=8gtThe Most Revdltoptiongt

ltoption value=9gtThe Rt Revdltoptiongt

ltoption value=10gtThe Revd Canonlt

optiongt

ltoption value=11gtThe Revdltoptiongt

ltoption value=12gtThe Rt Revd

Professorltoptiongt

ltoption value=13gtThe Venltoptiongt

ltoption value=14gtThe Most Revd Drlt

optiongt

ltoption value=16gtRabbiltoptiongt

ltoption value=17gtCanonltoptiongt

ltoption value=18gtDameltoptiongt

ltoption value=19gtChiefltoptiongt

ltoption value=20gtSisterltoptiongt

ltoption value=21gtReverendltoptiongt

ltoption value=22gtMajorltoptiongt

ltoption value=23gtOtherltoptiongt

ltoption value=24gtCllrltoptiongt

ltoption value=25gtSirltoptiongt

ltoption value=26gtRt Hon Lordltoptiongt

ltoption value=27gtRt Honltoptiongt

ltoption value=28gtThe Lord ltoptiongt

ltoption value=29gtViscountltoptiongt

ltoption value=30gtViscountessltoptiongt

ltoption value=31gtBaronessltoptiongt

ltoption value=32gtCaptainltoptiongt

ltoption value=33gtMasterltoptiongt

ltoption value=34gtVery Revdltoptiongt

ltoption value=35gtLadyltoptiongt

ltoption value=38gtMPltoptiongt

ltoption value=39gtKing of Kings and Lord

of Lordsltoptiongt

ltoption value=40gtConquering Lion of the

Tribe of Judahltoptiongt

ltoption value=41gtElect of God and Light

of this Worldltoptiongt

ltoption value=42gtHis Own Divine

Majestyltoptiongt

ltoption value=43gtFirst Ancient King of

Creationltoptiongt

ltoption value=44gtKing Alphaltoptiongt

ltoption value=45gtQueen Omegaltoptiongt

ltoption value=46gtBeginning with Our End

and First with Our Lastltoptiongt

ltoption value=47gtProtector of All Human

Faithltoptiongt

ltoption value=48gtRuler of the

Universeltoptiongt

ltoption value=49gtDudeltoptiongt

Sunday February 24 13

And the third problem is our faith that the first two problems here can be easily solved Just add more list items

cczona

Seeing more than 20 uncategorized options can be bewilderinghellip

mdashSmashing Magazine

Sunday February 24 13

So thats not gonna work

Also it risks looking like a dumbass

Social Networks

Sunday February 24 13

So heres the next flawed premise that we intuitively understand the nature of social networks

Stepping aside from how social networking has come to be implemented as technology -- what IS a social network What is it in purely human terms

cczona

Social network

Individuals and the dyadic ties between them

Interactions within a social group of exactly two people

Sunday February 24 13

[slide] Thats the real life that our apps are meant to replicate and build upon One-on-one As personal as our social selves get In social identity is a dependency

cczona

Developer amp user are in dyad too

How can I be better 11 partner with this person whohellip

bull is a current user

bull I hope will become a user

Sunday February 24 13

As developers we build -- or break -- community with each line of code What 11 relationships are we fostering between the individual and the app What relationships are we inhibiting between individuals

cczona

In real life

I know your personhood better than you

sounds presumptuous

Sunday February 24 13

cczona

In real life

sounds presumptuous

Sunday February 24 13

cczona

In real life

Who you are is invalid

sounds arrogant

Sunday February 24 13

cczona

In real life

sounds arrogant

Sunday February 24 13

cczona

In real life

Your existence isnt possible

sounds clueless

Sunday February 24 13

cczona

In real life

sounds clueless

Sunday February 24 13

cczona

Sunday February 24 13

Its not what we set out to do Its not the community we seek to build We want to create things that feel cutting edge -- not that seem out of touch with modern reality

cczona

Be conservative in what you do be liberal in what you accept from others

-Postels Law

Sunday February 24 13

[READ]

cczona

How do we bring modern realities into the data views logic

Sunday February 24 13

How DO we bring modern realities into the data views and logic We start at the schema

cczona

Sunday February 24 13

As developers were tugged in two directions keep the codebase manageable yet design for modern complexity

cczona

Get schemas into alignment

Sunday February 24 13

cczona

Mental Schema

bullSet of pre-conceived ideas

bullFramework for representing some aspect of the world

bullSystem of organizing amp perceiving new information

Sunday February 24 13

There are two kinds of schema [read]

cczona

Database Schema

bullStructure described in the databases language

bullBlueprint for database construction

bullDescribes how the real world is being modeled

Sunday February 24 13

Database schemas are basically the same thing Its a mental schema translated into blueprints for a database

cczona

create_table users force =gt true do |t| tstring username tstring email tstring passwordend

Sunday February 24 13

When you use Rails generate scaffold or Rails generate model it creates a migration Maybe you created something like this for instance Those migrations ultimately get translated into a unified schema to be used by the environments database

cczona

Sunday February 24 13

These are simply frontend manifestations of someones mental schema

cczona

Schemas are foundation for

expressing

things deeply intimate

Sunday February 24 13

cczona

Schemas are foundation for

expressing

self-image

Sunday February 24 13

cczona

Schemas are foundation for

expressing

identity

Sunday February 24 13

cczona

Schemas are foundation for

expressing

important relationships

Sunday February 24 13

cczona

Schemas are foundation for

expressing

values

Sunday February 24 13

cczona

Schemas are foundation for

expressing

spirit

creativity

uniqueness

Sunday February 24 13

cczona

Schemas define the

user experience

Sunday February 24 13

Schemas define user experience

cczona

Our schemas are leaving people behind

amp UX

Sunday February 24 13

[read]We can fix that

cczona

What benefit will the user notice

Sunday February 24 13

When developing a schema thats going to ask a person about their experiences feelings sense of self there isnt a single right way I can tell to do this What we can do is evaluate tradeoffs and ask What benefit will the user notice Thats not equivalent to How will the user benefit a question that grants too much latitude for assuming that what we want is of course to their benefit because its gonna help us deliver a product thats Awesome

cczona

Evaluating from user perspective gives us focus

Sunday February 24 13

[read]

cczona

Coerced Discretionary

Restricted Freeform

Guided

Corrective

Sunday February 24 13

Theres no point on this chart where everybody is seeing maximum benefit So lets look at the choices

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective Freeform

Sunday February 24 13

Checkboxs radio buttons and select menus imply that all possible values are represented Hey user just pick the right one (or ones) Its real world being rejected because it didnt happen to look like our mental schema

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective TextareaText

Sunday February 24 13

Checking a box is a one step action Entering a text string is not So a freeform solution such as a textarea or text field isnt automatically exciting Nevertheless a freeform field can deliver striking benefit to users

cczona

11 years

11 years

Sunday February 24 13

At MetaFilter gender has been a text field for over a decade

cczona

hellipthe early crowd at MeFi were often programmers and they hated the idea of dirty data collectionhellip

mdashMatt Haughey founder

Sunday February 24 13

Initially there were some who shuddered at the thought

cczona

All girl

XY

Braid runner

Fella

Fembot

Alto

It depends

MYOB

Dangly bits

Chicklet

Innie not outie

Convex

Sideburns

Ambisextrous

Member of the patriarchy

Sunday February 24 13

For about 5 seconds Then they jumped on board Because they could be creative and silly

cczona

I speak using the male gender when required by language

M but known to be flexible

50 quintessential tomboy 50 total girly-girl

Gender bo bender banana fanna fo lender fee fi mo

Sunday February 24 13

AND because they could express this THING about themselves fully With authentic voice

cczona

hellipit was one of the earliest indications Id landed in the right place

mdashMeFi user

Sunday February 24 13

That text field grew into a beloved institution What you as a user put into that field says something revealing who you are That youre allowed to put in anything -- or put in nothing -- says something revealing about what MetaFilter is meant to be for

cczona

8 years

11 years

4 years

11 years

Sunday February 24 13

That schemas trust in users was the foundation for the users to ASK to share themselves even more

cczona

Sunday February 24 13

Today MetaFilter users are trusted with many free-form fields including ones most developers instinctually constrain or thoroughly validate

cczona

Sunday February 24 13

Nonsensical values Hell yeah go for it Field values that blatantly contradict each other No objection to that either The message is hey user we get that this is YOUR OWN HOME Make it as comfortable personal and messy as you want to WE as developers can work with that

Social Research

Sunday February 24 13

When collecting data on people youre 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 two minimum criteria

ExhaustiveEvery possible option

Sunday February 24 13

A fields values must include every possible option

Mutually ExclusiveNo overlap exists between them

Sunday February 24 13

And the fields options must be mutually exclusive

How many social apps have both of those bare minimum criteria covered

cczona

Sunday February 24 13

Weve seen this one enough At least that set of values seems covered fully

cczona

Sunday February 24 13

But its not

cczona

Sunday February 24 13

Still not

Well never get there by adding more list items But thats fine Because instead we can choose to look at human data from a different perspective

cczona

Data doesnrsquot have to be for analysis

Sunday February 24 13

Its easy to get into the habit of structuring data for easy analysis But step back Wallow in the users perspective

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 3: Schemas for the Real World [RubyConf AU 2013]

cczona

Imagine walking through the world knowing that everyonersquos 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 doesnrsquot include anything that represents you[Y]oursquoll feel defeated Yoursquoll want to argue that whatever they think theyrsquore learning from that drop-down menu itrsquos not really true Yoursquoll want to tell them that theyrsquore adding to your humiliation by making you do this Yoursquoll want to tell them that theyrsquore missing a huge part of youhellip

mdashSarah Dopp

Sunday February 24 13

cczona

Female Male

Sunday February 24 13

cczona

Its ComplicatedIn a Relationship

Married Divorced

WidowedSingle

Sunday February 24 13

cczona

Asexual

Straight Gay

Bisexual

Pansexual

Sunday February 24 13

cczona

Sunday February 24 13

cczona

Sunday February 24 13

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 are not the only one

cczona

Sociological Normalization

Construction of an idealized norm

Sunday February 24 13

When developers talk about normalization were talking about databases But when dealing with human attributes we often wind up pursuing a different cause sociological normalization [read]

Conflating the two 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

cczona

Database Normalization

Mirror real-world concepts and their interrelationships

Sunday February 24 13

What we lose track of is one of the core objectives of database normalization Were supposed to [read] When the database is in tension with peoples own real world -- then its not people who need to be flexible

cczona

Sunday February 24 13

Why IS this hard Because at first glance this stuff looks so easy Its just forms right Weve done those a million times before

But we get tripped up by some flawed premises

cczona

Gender is one of those things everyone thinks they understand but most people dont Like Inception

mdash Sam Killerman

Sunday February 24 13

First a premise that deeply personal stuff about humans can be reduced to lists

cczona

Hey this is just a system I can figure out easily is also a problem among engineers first diving into the stock market

mdashxkcd 592

Sunday February 24 13

Second assumptions that canonical lists for these exist Or are at least SURELY must be creatable

cczona

ltoption value=1gtMrltoptiongt

ltoption value=2gtMrsltoptiongt

ltoption value=3gtMissltoptiongt

ltoption value=4gtMsltoptiongt

ltoption value=5gtDrltoptiongt

ltoption value=6gtProfessorltoptiongt

ltoption value=7gtThe Rt Revd Drltoptiongt

ltoption value=8gtThe Most Revdltoptiongt

ltoption value=9gtThe Rt Revdltoptiongt

ltoption value=10gtThe Revd Canonlt

optiongt

ltoption value=11gtThe Revdltoptiongt

ltoption value=12gtThe Rt Revd

Professorltoptiongt

ltoption value=13gtThe Venltoptiongt

ltoption value=14gtThe Most Revd Drlt

optiongt

ltoption value=16gtRabbiltoptiongt

ltoption value=17gtCanonltoptiongt

ltoption value=18gtDameltoptiongt

ltoption value=19gtChiefltoptiongt

ltoption value=20gtSisterltoptiongt

ltoption value=21gtReverendltoptiongt

ltoption value=22gtMajorltoptiongt

ltoption value=23gtOtherltoptiongt

ltoption value=24gtCllrltoptiongt

ltoption value=25gtSirltoptiongt

ltoption value=26gtRt Hon Lordltoptiongt

ltoption value=27gtRt Honltoptiongt

ltoption value=28gtThe Lord ltoptiongt

ltoption value=29gtViscountltoptiongt

ltoption value=30gtViscountessltoptiongt

ltoption value=31gtBaronessltoptiongt

ltoption value=32gtCaptainltoptiongt

ltoption value=33gtMasterltoptiongt

ltoption value=34gtVery Revdltoptiongt

ltoption value=35gtLadyltoptiongt

ltoption value=38gtMPltoptiongt

ltoption value=39gtKing of Kings and Lord

of Lordsltoptiongt

ltoption value=40gtConquering Lion of the

Tribe of Judahltoptiongt

ltoption value=41gtElect of God and Light

of this Worldltoptiongt

ltoption value=42gtHis Own Divine

Majestyltoptiongt

ltoption value=43gtFirst Ancient King of

Creationltoptiongt

ltoption value=44gtKing Alphaltoptiongt

ltoption value=45gtQueen Omegaltoptiongt

ltoption value=46gtBeginning with Our End

and First with Our Lastltoptiongt

ltoption value=47gtProtector of All Human

Faithltoptiongt

ltoption value=48gtRuler of the

Universeltoptiongt

ltoption value=49gtDudeltoptiongt

Sunday February 24 13

And the third problem is our faith that the first two problems here can be easily solved Just add more list items

cczona

Seeing more than 20 uncategorized options can be bewilderinghellip

mdashSmashing Magazine

Sunday February 24 13

So thats not gonna work

Also it risks looking like a dumbass

Social Networks

Sunday February 24 13

So heres the next flawed premise that we intuitively understand the nature of social networks

Stepping aside from how social networking has come to be implemented as technology -- what IS a social network What is it in purely human terms

cczona

Social network

Individuals and the dyadic ties between them

Interactions within a social group of exactly two people

Sunday February 24 13

[slide] Thats the real life that our apps are meant to replicate and build upon One-on-one As personal as our social selves get In social identity is a dependency

cczona

Developer amp user are in dyad too

How can I be better 11 partner with this person whohellip

bull is a current user

bull I hope will become a user

Sunday February 24 13

As developers we build -- or break -- community with each line of code What 11 relationships are we fostering between the individual and the app What relationships are we inhibiting between individuals

cczona

In real life

I know your personhood better than you

sounds presumptuous

Sunday February 24 13

cczona

In real life

sounds presumptuous

Sunday February 24 13

cczona

In real life

Who you are is invalid

sounds arrogant

Sunday February 24 13

cczona

In real life

sounds arrogant

Sunday February 24 13

cczona

In real life

Your existence isnt possible

sounds clueless

Sunday February 24 13

cczona

In real life

sounds clueless

Sunday February 24 13

cczona

Sunday February 24 13

Its not what we set out to do Its not the community we seek to build We want to create things that feel cutting edge -- not that seem out of touch with modern reality

cczona

Be conservative in what you do be liberal in what you accept from others

-Postels Law

Sunday February 24 13

[READ]

cczona

How do we bring modern realities into the data views logic

Sunday February 24 13

How DO we bring modern realities into the data views and logic We start at the schema

cczona

Sunday February 24 13

As developers were tugged in two directions keep the codebase manageable yet design for modern complexity

cczona

Get schemas into alignment

Sunday February 24 13

cczona

Mental Schema

bullSet of pre-conceived ideas

bullFramework for representing some aspect of the world

bullSystem of organizing amp perceiving new information

Sunday February 24 13

There are two kinds of schema [read]

cczona

Database Schema

bullStructure described in the databases language

bullBlueprint for database construction

bullDescribes how the real world is being modeled

Sunday February 24 13

Database schemas are basically the same thing Its a mental schema translated into blueprints for a database

cczona

create_table users force =gt true do |t| tstring username tstring email tstring passwordend

Sunday February 24 13

When you use Rails generate scaffold or Rails generate model it creates a migration Maybe you created something like this for instance Those migrations ultimately get translated into a unified schema to be used by the environments database

cczona

Sunday February 24 13

These are simply frontend manifestations of someones mental schema

cczona

Schemas are foundation for

expressing

things deeply intimate

Sunday February 24 13

cczona

Schemas are foundation for

expressing

self-image

Sunday February 24 13

cczona

Schemas are foundation for

expressing

identity

Sunday February 24 13

cczona

Schemas are foundation for

expressing

important relationships

Sunday February 24 13

cczona

Schemas are foundation for

expressing

values

Sunday February 24 13

cczona

Schemas are foundation for

expressing

spirit

creativity

uniqueness

Sunday February 24 13

cczona

Schemas define the

user experience

Sunday February 24 13

Schemas define user experience

cczona

Our schemas are leaving people behind

amp UX

Sunday February 24 13

[read]We can fix that

cczona

What benefit will the user notice

Sunday February 24 13

When developing a schema thats going to ask a person about their experiences feelings sense of self there isnt a single right way I can tell to do this What we can do is evaluate tradeoffs and ask What benefit will the user notice Thats not equivalent to How will the user benefit a question that grants too much latitude for assuming that what we want is of course to their benefit because its gonna help us deliver a product thats Awesome

cczona

Evaluating from user perspective gives us focus

Sunday February 24 13

[read]

cczona

Coerced Discretionary

Restricted Freeform

Guided

Corrective

Sunday February 24 13

Theres no point on this chart where everybody is seeing maximum benefit So lets look at the choices

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective Freeform

Sunday February 24 13

Checkboxs radio buttons and select menus imply that all possible values are represented Hey user just pick the right one (or ones) Its real world being rejected because it didnt happen to look like our mental schema

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective TextareaText

Sunday February 24 13

Checking a box is a one step action Entering a text string is not So a freeform solution such as a textarea or text field isnt automatically exciting Nevertheless a freeform field can deliver striking benefit to users

cczona

11 years

11 years

Sunday February 24 13

At MetaFilter gender has been a text field for over a decade

cczona

hellipthe early crowd at MeFi were often programmers and they hated the idea of dirty data collectionhellip

mdashMatt Haughey founder

Sunday February 24 13

Initially there were some who shuddered at the thought

cczona

All girl

XY

Braid runner

Fella

Fembot

Alto

It depends

MYOB

Dangly bits

Chicklet

Innie not outie

Convex

Sideburns

Ambisextrous

Member of the patriarchy

Sunday February 24 13

For about 5 seconds Then they jumped on board Because they could be creative and silly

cczona

I speak using the male gender when required by language

M but known to be flexible

50 quintessential tomboy 50 total girly-girl

Gender bo bender banana fanna fo lender fee fi mo

Sunday February 24 13

AND because they could express this THING about themselves fully With authentic voice

cczona

hellipit was one of the earliest indications Id landed in the right place

mdashMeFi user

Sunday February 24 13

That text field grew into a beloved institution What you as a user put into that field says something revealing who you are That youre allowed to put in anything -- or put in nothing -- says something revealing about what MetaFilter is meant to be for

cczona

8 years

11 years

4 years

11 years

Sunday February 24 13

That schemas trust in users was the foundation for the users to ASK to share themselves even more

cczona

Sunday February 24 13

Today MetaFilter users are trusted with many free-form fields including ones most developers instinctually constrain or thoroughly validate

cczona

Sunday February 24 13

Nonsensical values Hell yeah go for it Field values that blatantly contradict each other No objection to that either The message is hey user we get that this is YOUR OWN HOME Make it as comfortable personal and messy as you want to WE as developers can work with that

Social Research

Sunday February 24 13

When collecting data on people youre 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 two minimum criteria

ExhaustiveEvery possible option

Sunday February 24 13

A fields values must include every possible option

Mutually ExclusiveNo overlap exists between them

Sunday February 24 13

And the fields options must be mutually exclusive

How many social apps have both of those bare minimum criteria covered

cczona

Sunday February 24 13

Weve seen this one enough At least that set of values seems covered fully

cczona

Sunday February 24 13

But its not

cczona

Sunday February 24 13

Still not

Well never get there by adding more list items But thats fine Because instead we can choose to look at human data from a different perspective

cczona

Data doesnrsquot have to be for analysis

Sunday February 24 13

Its easy to get into the habit of structuring data for easy analysis But step back Wallow in the users perspective

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 4: Schemas for the Real World [RubyConf AU 2013]

cczona

Female Male

Sunday February 24 13

cczona

Its ComplicatedIn a Relationship

Married Divorced

WidowedSingle

Sunday February 24 13

cczona

Asexual

Straight Gay

Bisexual

Pansexual

Sunday February 24 13

cczona

Sunday February 24 13

cczona

Sunday February 24 13

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 are not the only one

cczona

Sociological Normalization

Construction of an idealized norm

Sunday February 24 13

When developers talk about normalization were talking about databases But when dealing with human attributes we often wind up pursuing a different cause sociological normalization [read]

Conflating the two 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

cczona

Database Normalization

Mirror real-world concepts and their interrelationships

Sunday February 24 13

What we lose track of is one of the core objectives of database normalization Were supposed to [read] When the database is in tension with peoples own real world -- then its not people who need to be flexible

cczona

Sunday February 24 13

Why IS this hard Because at first glance this stuff looks so easy Its just forms right Weve done those a million times before

But we get tripped up by some flawed premises

cczona

Gender is one of those things everyone thinks they understand but most people dont Like Inception

mdash Sam Killerman

Sunday February 24 13

First a premise that deeply personal stuff about humans can be reduced to lists

cczona

Hey this is just a system I can figure out easily is also a problem among engineers first diving into the stock market

mdashxkcd 592

Sunday February 24 13

Second assumptions that canonical lists for these exist Or are at least SURELY must be creatable

cczona

ltoption value=1gtMrltoptiongt

ltoption value=2gtMrsltoptiongt

ltoption value=3gtMissltoptiongt

ltoption value=4gtMsltoptiongt

ltoption value=5gtDrltoptiongt

ltoption value=6gtProfessorltoptiongt

ltoption value=7gtThe Rt Revd Drltoptiongt

ltoption value=8gtThe Most Revdltoptiongt

ltoption value=9gtThe Rt Revdltoptiongt

ltoption value=10gtThe Revd Canonlt

optiongt

ltoption value=11gtThe Revdltoptiongt

ltoption value=12gtThe Rt Revd

Professorltoptiongt

ltoption value=13gtThe Venltoptiongt

ltoption value=14gtThe Most Revd Drlt

optiongt

ltoption value=16gtRabbiltoptiongt

ltoption value=17gtCanonltoptiongt

ltoption value=18gtDameltoptiongt

ltoption value=19gtChiefltoptiongt

ltoption value=20gtSisterltoptiongt

ltoption value=21gtReverendltoptiongt

ltoption value=22gtMajorltoptiongt

ltoption value=23gtOtherltoptiongt

ltoption value=24gtCllrltoptiongt

ltoption value=25gtSirltoptiongt

ltoption value=26gtRt Hon Lordltoptiongt

ltoption value=27gtRt Honltoptiongt

ltoption value=28gtThe Lord ltoptiongt

ltoption value=29gtViscountltoptiongt

ltoption value=30gtViscountessltoptiongt

ltoption value=31gtBaronessltoptiongt

ltoption value=32gtCaptainltoptiongt

ltoption value=33gtMasterltoptiongt

ltoption value=34gtVery Revdltoptiongt

ltoption value=35gtLadyltoptiongt

ltoption value=38gtMPltoptiongt

ltoption value=39gtKing of Kings and Lord

of Lordsltoptiongt

ltoption value=40gtConquering Lion of the

Tribe of Judahltoptiongt

ltoption value=41gtElect of God and Light

of this Worldltoptiongt

ltoption value=42gtHis Own Divine

Majestyltoptiongt

ltoption value=43gtFirst Ancient King of

Creationltoptiongt

ltoption value=44gtKing Alphaltoptiongt

ltoption value=45gtQueen Omegaltoptiongt

ltoption value=46gtBeginning with Our End

and First with Our Lastltoptiongt

ltoption value=47gtProtector of All Human

Faithltoptiongt

ltoption value=48gtRuler of the

Universeltoptiongt

ltoption value=49gtDudeltoptiongt

Sunday February 24 13

And the third problem is our faith that the first two problems here can be easily solved Just add more list items

cczona

Seeing more than 20 uncategorized options can be bewilderinghellip

mdashSmashing Magazine

Sunday February 24 13

So thats not gonna work

Also it risks looking like a dumbass

Social Networks

Sunday February 24 13

So heres the next flawed premise that we intuitively understand the nature of social networks

Stepping aside from how social networking has come to be implemented as technology -- what IS a social network What is it in purely human terms

cczona

Social network

Individuals and the dyadic ties between them

Interactions within a social group of exactly two people

Sunday February 24 13

[slide] Thats the real life that our apps are meant to replicate and build upon One-on-one As personal as our social selves get In social identity is a dependency

cczona

Developer amp user are in dyad too

How can I be better 11 partner with this person whohellip

bull is a current user

bull I hope will become a user

Sunday February 24 13

As developers we build -- or break -- community with each line of code What 11 relationships are we fostering between the individual and the app What relationships are we inhibiting between individuals

cczona

In real life

I know your personhood better than you

sounds presumptuous

Sunday February 24 13

cczona

In real life

sounds presumptuous

Sunday February 24 13

cczona

In real life

Who you are is invalid

sounds arrogant

Sunday February 24 13

cczona

In real life

sounds arrogant

Sunday February 24 13

cczona

In real life

Your existence isnt possible

sounds clueless

Sunday February 24 13

cczona

In real life

sounds clueless

Sunday February 24 13

cczona

Sunday February 24 13

Its not what we set out to do Its not the community we seek to build We want to create things that feel cutting edge -- not that seem out of touch with modern reality

cczona

Be conservative in what you do be liberal in what you accept from others

-Postels Law

Sunday February 24 13

[READ]

cczona

How do we bring modern realities into the data views logic

Sunday February 24 13

How DO we bring modern realities into the data views and logic We start at the schema

cczona

Sunday February 24 13

As developers were tugged in two directions keep the codebase manageable yet design for modern complexity

cczona

Get schemas into alignment

Sunday February 24 13

cczona

Mental Schema

bullSet of pre-conceived ideas

bullFramework for representing some aspect of the world

bullSystem of organizing amp perceiving new information

Sunday February 24 13

There are two kinds of schema [read]

cczona

Database Schema

bullStructure described in the databases language

bullBlueprint for database construction

bullDescribes how the real world is being modeled

Sunday February 24 13

Database schemas are basically the same thing Its a mental schema translated into blueprints for a database

cczona

create_table users force =gt true do |t| tstring username tstring email tstring passwordend

Sunday February 24 13

When you use Rails generate scaffold or Rails generate model it creates a migration Maybe you created something like this for instance Those migrations ultimately get translated into a unified schema to be used by the environments database

cczona

Sunday February 24 13

These are simply frontend manifestations of someones mental schema

cczona

Schemas are foundation for

expressing

things deeply intimate

Sunday February 24 13

cczona

Schemas are foundation for

expressing

self-image

Sunday February 24 13

cczona

Schemas are foundation for

expressing

identity

Sunday February 24 13

cczona

Schemas are foundation for

expressing

important relationships

Sunday February 24 13

cczona

Schemas are foundation for

expressing

values

Sunday February 24 13

cczona

Schemas are foundation for

expressing

spirit

creativity

uniqueness

Sunday February 24 13

cczona

Schemas define the

user experience

Sunday February 24 13

Schemas define user experience

cczona

Our schemas are leaving people behind

amp UX

Sunday February 24 13

[read]We can fix that

cczona

What benefit will the user notice

Sunday February 24 13

When developing a schema thats going to ask a person about their experiences feelings sense of self there isnt a single right way I can tell to do this What we can do is evaluate tradeoffs and ask What benefit will the user notice Thats not equivalent to How will the user benefit a question that grants too much latitude for assuming that what we want is of course to their benefit because its gonna help us deliver a product thats Awesome

cczona

Evaluating from user perspective gives us focus

Sunday February 24 13

[read]

cczona

Coerced Discretionary

Restricted Freeform

Guided

Corrective

Sunday February 24 13

Theres no point on this chart where everybody is seeing maximum benefit So lets look at the choices

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective Freeform

Sunday February 24 13

Checkboxs radio buttons and select menus imply that all possible values are represented Hey user just pick the right one (or ones) Its real world being rejected because it didnt happen to look like our mental schema

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective TextareaText

Sunday February 24 13

Checking a box is a one step action Entering a text string is not So a freeform solution such as a textarea or text field isnt automatically exciting Nevertheless a freeform field can deliver striking benefit to users

cczona

11 years

11 years

Sunday February 24 13

At MetaFilter gender has been a text field for over a decade

cczona

hellipthe early crowd at MeFi were often programmers and they hated the idea of dirty data collectionhellip

mdashMatt Haughey founder

Sunday February 24 13

Initially there were some who shuddered at the thought

cczona

All girl

XY

Braid runner

Fella

Fembot

Alto

It depends

MYOB

Dangly bits

Chicklet

Innie not outie

Convex

Sideburns

Ambisextrous

Member of the patriarchy

Sunday February 24 13

For about 5 seconds Then they jumped on board Because they could be creative and silly

cczona

I speak using the male gender when required by language

M but known to be flexible

50 quintessential tomboy 50 total girly-girl

Gender bo bender banana fanna fo lender fee fi mo

Sunday February 24 13

AND because they could express this THING about themselves fully With authentic voice

cczona

hellipit was one of the earliest indications Id landed in the right place

mdashMeFi user

Sunday February 24 13

That text field grew into a beloved institution What you as a user put into that field says something revealing who you are That youre allowed to put in anything -- or put in nothing -- says something revealing about what MetaFilter is meant to be for

cczona

8 years

11 years

4 years

11 years

Sunday February 24 13

That schemas trust in users was the foundation for the users to ASK to share themselves even more

cczona

Sunday February 24 13

Today MetaFilter users are trusted with many free-form fields including ones most developers instinctually constrain or thoroughly validate

cczona

Sunday February 24 13

Nonsensical values Hell yeah go for it Field values that blatantly contradict each other No objection to that either The message is hey user we get that this is YOUR OWN HOME Make it as comfortable personal and messy as you want to WE as developers can work with that

Social Research

Sunday February 24 13

When collecting data on people youre 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 two minimum criteria

ExhaustiveEvery possible option

Sunday February 24 13

A fields values must include every possible option

Mutually ExclusiveNo overlap exists between them

Sunday February 24 13

And the fields options must be mutually exclusive

How many social apps have both of those bare minimum criteria covered

cczona

Sunday February 24 13

Weve seen this one enough At least that set of values seems covered fully

cczona

Sunday February 24 13

But its not

cczona

Sunday February 24 13

Still not

Well never get there by adding more list items But thats fine Because instead we can choose to look at human data from a different perspective

cczona

Data doesnrsquot have to be for analysis

Sunday February 24 13

Its easy to get into the habit of structuring data for easy analysis But step back Wallow in the users perspective

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 5: Schemas for the Real World [RubyConf AU 2013]

cczona

Its ComplicatedIn a Relationship

Married Divorced

WidowedSingle

Sunday February 24 13

cczona

Asexual

Straight Gay

Bisexual

Pansexual

Sunday February 24 13

cczona

Sunday February 24 13

cczona

Sunday February 24 13

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 are not the only one

cczona

Sociological Normalization

Construction of an idealized norm

Sunday February 24 13

When developers talk about normalization were talking about databases But when dealing with human attributes we often wind up pursuing a different cause sociological normalization [read]

Conflating the two 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

cczona

Database Normalization

Mirror real-world concepts and their interrelationships

Sunday February 24 13

What we lose track of is one of the core objectives of database normalization Were supposed to [read] When the database is in tension with peoples own real world -- then its not people who need to be flexible

cczona

Sunday February 24 13

Why IS this hard Because at first glance this stuff looks so easy Its just forms right Weve done those a million times before

But we get tripped up by some flawed premises

cczona

Gender is one of those things everyone thinks they understand but most people dont Like Inception

mdash Sam Killerman

Sunday February 24 13

First a premise that deeply personal stuff about humans can be reduced to lists

cczona

Hey this is just a system I can figure out easily is also a problem among engineers first diving into the stock market

mdashxkcd 592

Sunday February 24 13

Second assumptions that canonical lists for these exist Or are at least SURELY must be creatable

cczona

ltoption value=1gtMrltoptiongt

ltoption value=2gtMrsltoptiongt

ltoption value=3gtMissltoptiongt

ltoption value=4gtMsltoptiongt

ltoption value=5gtDrltoptiongt

ltoption value=6gtProfessorltoptiongt

ltoption value=7gtThe Rt Revd Drltoptiongt

ltoption value=8gtThe Most Revdltoptiongt

ltoption value=9gtThe Rt Revdltoptiongt

ltoption value=10gtThe Revd Canonlt

optiongt

ltoption value=11gtThe Revdltoptiongt

ltoption value=12gtThe Rt Revd

Professorltoptiongt

ltoption value=13gtThe Venltoptiongt

ltoption value=14gtThe Most Revd Drlt

optiongt

ltoption value=16gtRabbiltoptiongt

ltoption value=17gtCanonltoptiongt

ltoption value=18gtDameltoptiongt

ltoption value=19gtChiefltoptiongt

ltoption value=20gtSisterltoptiongt

ltoption value=21gtReverendltoptiongt

ltoption value=22gtMajorltoptiongt

ltoption value=23gtOtherltoptiongt

ltoption value=24gtCllrltoptiongt

ltoption value=25gtSirltoptiongt

ltoption value=26gtRt Hon Lordltoptiongt

ltoption value=27gtRt Honltoptiongt

ltoption value=28gtThe Lord ltoptiongt

ltoption value=29gtViscountltoptiongt

ltoption value=30gtViscountessltoptiongt

ltoption value=31gtBaronessltoptiongt

ltoption value=32gtCaptainltoptiongt

ltoption value=33gtMasterltoptiongt

ltoption value=34gtVery Revdltoptiongt

ltoption value=35gtLadyltoptiongt

ltoption value=38gtMPltoptiongt

ltoption value=39gtKing of Kings and Lord

of Lordsltoptiongt

ltoption value=40gtConquering Lion of the

Tribe of Judahltoptiongt

ltoption value=41gtElect of God and Light

of this Worldltoptiongt

ltoption value=42gtHis Own Divine

Majestyltoptiongt

ltoption value=43gtFirst Ancient King of

Creationltoptiongt

ltoption value=44gtKing Alphaltoptiongt

ltoption value=45gtQueen Omegaltoptiongt

ltoption value=46gtBeginning with Our End

and First with Our Lastltoptiongt

ltoption value=47gtProtector of All Human

Faithltoptiongt

ltoption value=48gtRuler of the

Universeltoptiongt

ltoption value=49gtDudeltoptiongt

Sunday February 24 13

And the third problem is our faith that the first two problems here can be easily solved Just add more list items

cczona

Seeing more than 20 uncategorized options can be bewilderinghellip

mdashSmashing Magazine

Sunday February 24 13

So thats not gonna work

Also it risks looking like a dumbass

Social Networks

Sunday February 24 13

So heres the next flawed premise that we intuitively understand the nature of social networks

Stepping aside from how social networking has come to be implemented as technology -- what IS a social network What is it in purely human terms

cczona

Social network

Individuals and the dyadic ties between them

Interactions within a social group of exactly two people

Sunday February 24 13

[slide] Thats the real life that our apps are meant to replicate and build upon One-on-one As personal as our social selves get In social identity is a dependency

cczona

Developer amp user are in dyad too

How can I be better 11 partner with this person whohellip

bull is a current user

bull I hope will become a user

Sunday February 24 13

As developers we build -- or break -- community with each line of code What 11 relationships are we fostering between the individual and the app What relationships are we inhibiting between individuals

cczona

In real life

I know your personhood better than you

sounds presumptuous

Sunday February 24 13

cczona

In real life

sounds presumptuous

Sunday February 24 13

cczona

In real life

Who you are is invalid

sounds arrogant

Sunday February 24 13

cczona

In real life

sounds arrogant

Sunday February 24 13

cczona

In real life

Your existence isnt possible

sounds clueless

Sunday February 24 13

cczona

In real life

sounds clueless

Sunday February 24 13

cczona

Sunday February 24 13

Its not what we set out to do Its not the community we seek to build We want to create things that feel cutting edge -- not that seem out of touch with modern reality

cczona

Be conservative in what you do be liberal in what you accept from others

-Postels Law

Sunday February 24 13

[READ]

cczona

How do we bring modern realities into the data views logic

Sunday February 24 13

How DO we bring modern realities into the data views and logic We start at the schema

cczona

Sunday February 24 13

As developers were tugged in two directions keep the codebase manageable yet design for modern complexity

cczona

Get schemas into alignment

Sunday February 24 13

cczona

Mental Schema

bullSet of pre-conceived ideas

bullFramework for representing some aspect of the world

bullSystem of organizing amp perceiving new information

Sunday February 24 13

There are two kinds of schema [read]

cczona

Database Schema

bullStructure described in the databases language

bullBlueprint for database construction

bullDescribes how the real world is being modeled

Sunday February 24 13

Database schemas are basically the same thing Its a mental schema translated into blueprints for a database

cczona

create_table users force =gt true do |t| tstring username tstring email tstring passwordend

Sunday February 24 13

When you use Rails generate scaffold or Rails generate model it creates a migration Maybe you created something like this for instance Those migrations ultimately get translated into a unified schema to be used by the environments database

cczona

Sunday February 24 13

These are simply frontend manifestations of someones mental schema

cczona

Schemas are foundation for

expressing

things deeply intimate

Sunday February 24 13

cczona

Schemas are foundation for

expressing

self-image

Sunday February 24 13

cczona

Schemas are foundation for

expressing

identity

Sunday February 24 13

cczona

Schemas are foundation for

expressing

important relationships

Sunday February 24 13

cczona

Schemas are foundation for

expressing

values

Sunday February 24 13

cczona

Schemas are foundation for

expressing

spirit

creativity

uniqueness

Sunday February 24 13

cczona

Schemas define the

user experience

Sunday February 24 13

Schemas define user experience

cczona

Our schemas are leaving people behind

amp UX

Sunday February 24 13

[read]We can fix that

cczona

What benefit will the user notice

Sunday February 24 13

When developing a schema thats going to ask a person about their experiences feelings sense of self there isnt a single right way I can tell to do this What we can do is evaluate tradeoffs and ask What benefit will the user notice Thats not equivalent to How will the user benefit a question that grants too much latitude for assuming that what we want is of course to their benefit because its gonna help us deliver a product thats Awesome

cczona

Evaluating from user perspective gives us focus

Sunday February 24 13

[read]

cczona

Coerced Discretionary

Restricted Freeform

Guided

Corrective

Sunday February 24 13

Theres no point on this chart where everybody is seeing maximum benefit So lets look at the choices

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective Freeform

Sunday February 24 13

Checkboxs radio buttons and select menus imply that all possible values are represented Hey user just pick the right one (or ones) Its real world being rejected because it didnt happen to look like our mental schema

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective TextareaText

Sunday February 24 13

Checking a box is a one step action Entering a text string is not So a freeform solution such as a textarea or text field isnt automatically exciting Nevertheless a freeform field can deliver striking benefit to users

cczona

11 years

11 years

Sunday February 24 13

At MetaFilter gender has been a text field for over a decade

cczona

hellipthe early crowd at MeFi were often programmers and they hated the idea of dirty data collectionhellip

mdashMatt Haughey founder

Sunday February 24 13

Initially there were some who shuddered at the thought

cczona

All girl

XY

Braid runner

Fella

Fembot

Alto

It depends

MYOB

Dangly bits

Chicklet

Innie not outie

Convex

Sideburns

Ambisextrous

Member of the patriarchy

Sunday February 24 13

For about 5 seconds Then they jumped on board Because they could be creative and silly

cczona

I speak using the male gender when required by language

M but known to be flexible

50 quintessential tomboy 50 total girly-girl

Gender bo bender banana fanna fo lender fee fi mo

Sunday February 24 13

AND because they could express this THING about themselves fully With authentic voice

cczona

hellipit was one of the earliest indications Id landed in the right place

mdashMeFi user

Sunday February 24 13

That text field grew into a beloved institution What you as a user put into that field says something revealing who you are That youre allowed to put in anything -- or put in nothing -- says something revealing about what MetaFilter is meant to be for

cczona

8 years

11 years

4 years

11 years

Sunday February 24 13

That schemas trust in users was the foundation for the users to ASK to share themselves even more

cczona

Sunday February 24 13

Today MetaFilter users are trusted with many free-form fields including ones most developers instinctually constrain or thoroughly validate

cczona

Sunday February 24 13

Nonsensical values Hell yeah go for it Field values that blatantly contradict each other No objection to that either The message is hey user we get that this is YOUR OWN HOME Make it as comfortable personal and messy as you want to WE as developers can work with that

Social Research

Sunday February 24 13

When collecting data on people youre 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 two minimum criteria

ExhaustiveEvery possible option

Sunday February 24 13

A fields values must include every possible option

Mutually ExclusiveNo overlap exists between them

Sunday February 24 13

And the fields options must be mutually exclusive

How many social apps have both of those bare minimum criteria covered

cczona

Sunday February 24 13

Weve seen this one enough At least that set of values seems covered fully

cczona

Sunday February 24 13

But its not

cczona

Sunday February 24 13

Still not

Well never get there by adding more list items But thats fine Because instead we can choose to look at human data from a different perspective

cczona

Data doesnrsquot have to be for analysis

Sunday February 24 13

Its easy to get into the habit of structuring data for easy analysis But step back Wallow in the users perspective

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 6: Schemas for the Real World [RubyConf AU 2013]

cczona

Asexual

Straight Gay

Bisexual

Pansexual

Sunday February 24 13

cczona

Sunday February 24 13

cczona

Sunday February 24 13

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 are not the only one

cczona

Sociological Normalization

Construction of an idealized norm

Sunday February 24 13

When developers talk about normalization were talking about databases But when dealing with human attributes we often wind up pursuing a different cause sociological normalization [read]

Conflating the two 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

cczona

Database Normalization

Mirror real-world concepts and their interrelationships

Sunday February 24 13

What we lose track of is one of the core objectives of database normalization Were supposed to [read] When the database is in tension with peoples own real world -- then its not people who need to be flexible

cczona

Sunday February 24 13

Why IS this hard Because at first glance this stuff looks so easy Its just forms right Weve done those a million times before

But we get tripped up by some flawed premises

cczona

Gender is one of those things everyone thinks they understand but most people dont Like Inception

mdash Sam Killerman

Sunday February 24 13

First a premise that deeply personal stuff about humans can be reduced to lists

cczona

Hey this is just a system I can figure out easily is also a problem among engineers first diving into the stock market

mdashxkcd 592

Sunday February 24 13

Second assumptions that canonical lists for these exist Or are at least SURELY must be creatable

cczona

ltoption value=1gtMrltoptiongt

ltoption value=2gtMrsltoptiongt

ltoption value=3gtMissltoptiongt

ltoption value=4gtMsltoptiongt

ltoption value=5gtDrltoptiongt

ltoption value=6gtProfessorltoptiongt

ltoption value=7gtThe Rt Revd Drltoptiongt

ltoption value=8gtThe Most Revdltoptiongt

ltoption value=9gtThe Rt Revdltoptiongt

ltoption value=10gtThe Revd Canonlt

optiongt

ltoption value=11gtThe Revdltoptiongt

ltoption value=12gtThe Rt Revd

Professorltoptiongt

ltoption value=13gtThe Venltoptiongt

ltoption value=14gtThe Most Revd Drlt

optiongt

ltoption value=16gtRabbiltoptiongt

ltoption value=17gtCanonltoptiongt

ltoption value=18gtDameltoptiongt

ltoption value=19gtChiefltoptiongt

ltoption value=20gtSisterltoptiongt

ltoption value=21gtReverendltoptiongt

ltoption value=22gtMajorltoptiongt

ltoption value=23gtOtherltoptiongt

ltoption value=24gtCllrltoptiongt

ltoption value=25gtSirltoptiongt

ltoption value=26gtRt Hon Lordltoptiongt

ltoption value=27gtRt Honltoptiongt

ltoption value=28gtThe Lord ltoptiongt

ltoption value=29gtViscountltoptiongt

ltoption value=30gtViscountessltoptiongt

ltoption value=31gtBaronessltoptiongt

ltoption value=32gtCaptainltoptiongt

ltoption value=33gtMasterltoptiongt

ltoption value=34gtVery Revdltoptiongt

ltoption value=35gtLadyltoptiongt

ltoption value=38gtMPltoptiongt

ltoption value=39gtKing of Kings and Lord

of Lordsltoptiongt

ltoption value=40gtConquering Lion of the

Tribe of Judahltoptiongt

ltoption value=41gtElect of God and Light

of this Worldltoptiongt

ltoption value=42gtHis Own Divine

Majestyltoptiongt

ltoption value=43gtFirst Ancient King of

Creationltoptiongt

ltoption value=44gtKing Alphaltoptiongt

ltoption value=45gtQueen Omegaltoptiongt

ltoption value=46gtBeginning with Our End

and First with Our Lastltoptiongt

ltoption value=47gtProtector of All Human

Faithltoptiongt

ltoption value=48gtRuler of the

Universeltoptiongt

ltoption value=49gtDudeltoptiongt

Sunday February 24 13

And the third problem is our faith that the first two problems here can be easily solved Just add more list items

cczona

Seeing more than 20 uncategorized options can be bewilderinghellip

mdashSmashing Magazine

Sunday February 24 13

So thats not gonna work

Also it risks looking like a dumbass

Social Networks

Sunday February 24 13

So heres the next flawed premise that we intuitively understand the nature of social networks

Stepping aside from how social networking has come to be implemented as technology -- what IS a social network What is it in purely human terms

cczona

Social network

Individuals and the dyadic ties between them

Interactions within a social group of exactly two people

Sunday February 24 13

[slide] Thats the real life that our apps are meant to replicate and build upon One-on-one As personal as our social selves get In social identity is a dependency

cczona

Developer amp user are in dyad too

How can I be better 11 partner with this person whohellip

bull is a current user

bull I hope will become a user

Sunday February 24 13

As developers we build -- or break -- community with each line of code What 11 relationships are we fostering between the individual and the app What relationships are we inhibiting between individuals

cczona

In real life

I know your personhood better than you

sounds presumptuous

Sunday February 24 13

cczona

In real life

sounds presumptuous

Sunday February 24 13

cczona

In real life

Who you are is invalid

sounds arrogant

Sunday February 24 13

cczona

In real life

sounds arrogant

Sunday February 24 13

cczona

In real life

Your existence isnt possible

sounds clueless

Sunday February 24 13

cczona

In real life

sounds clueless

Sunday February 24 13

cczona

Sunday February 24 13

Its not what we set out to do Its not the community we seek to build We want to create things that feel cutting edge -- not that seem out of touch with modern reality

cczona

Be conservative in what you do be liberal in what you accept from others

-Postels Law

Sunday February 24 13

[READ]

cczona

How do we bring modern realities into the data views logic

Sunday February 24 13

How DO we bring modern realities into the data views and logic We start at the schema

cczona

Sunday February 24 13

As developers were tugged in two directions keep the codebase manageable yet design for modern complexity

cczona

Get schemas into alignment

Sunday February 24 13

cczona

Mental Schema

bullSet of pre-conceived ideas

bullFramework for representing some aspect of the world

bullSystem of organizing amp perceiving new information

Sunday February 24 13

There are two kinds of schema [read]

cczona

Database Schema

bullStructure described in the databases language

bullBlueprint for database construction

bullDescribes how the real world is being modeled

Sunday February 24 13

Database schemas are basically the same thing Its a mental schema translated into blueprints for a database

cczona

create_table users force =gt true do |t| tstring username tstring email tstring passwordend

Sunday February 24 13

When you use Rails generate scaffold or Rails generate model it creates a migration Maybe you created something like this for instance Those migrations ultimately get translated into a unified schema to be used by the environments database

cczona

Sunday February 24 13

These are simply frontend manifestations of someones mental schema

cczona

Schemas are foundation for

expressing

things deeply intimate

Sunday February 24 13

cczona

Schemas are foundation for

expressing

self-image

Sunday February 24 13

cczona

Schemas are foundation for

expressing

identity

Sunday February 24 13

cczona

Schemas are foundation for

expressing

important relationships

Sunday February 24 13

cczona

Schemas are foundation for

expressing

values

Sunday February 24 13

cczona

Schemas are foundation for

expressing

spirit

creativity

uniqueness

Sunday February 24 13

cczona

Schemas define the

user experience

Sunday February 24 13

Schemas define user experience

cczona

Our schemas are leaving people behind

amp UX

Sunday February 24 13

[read]We can fix that

cczona

What benefit will the user notice

Sunday February 24 13

When developing a schema thats going to ask a person about their experiences feelings sense of self there isnt a single right way I can tell to do this What we can do is evaluate tradeoffs and ask What benefit will the user notice Thats not equivalent to How will the user benefit a question that grants too much latitude for assuming that what we want is of course to their benefit because its gonna help us deliver a product thats Awesome

cczona

Evaluating from user perspective gives us focus

Sunday February 24 13

[read]

cczona

Coerced Discretionary

Restricted Freeform

Guided

Corrective

Sunday February 24 13

Theres no point on this chart where everybody is seeing maximum benefit So lets look at the choices

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective Freeform

Sunday February 24 13

Checkboxs radio buttons and select menus imply that all possible values are represented Hey user just pick the right one (or ones) Its real world being rejected because it didnt happen to look like our mental schema

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective TextareaText

Sunday February 24 13

Checking a box is a one step action Entering a text string is not So a freeform solution such as a textarea or text field isnt automatically exciting Nevertheless a freeform field can deliver striking benefit to users

cczona

11 years

11 years

Sunday February 24 13

At MetaFilter gender has been a text field for over a decade

cczona

hellipthe early crowd at MeFi were often programmers and they hated the idea of dirty data collectionhellip

mdashMatt Haughey founder

Sunday February 24 13

Initially there were some who shuddered at the thought

cczona

All girl

XY

Braid runner

Fella

Fembot

Alto

It depends

MYOB

Dangly bits

Chicklet

Innie not outie

Convex

Sideburns

Ambisextrous

Member of the patriarchy

Sunday February 24 13

For about 5 seconds Then they jumped on board Because they could be creative and silly

cczona

I speak using the male gender when required by language

M but known to be flexible

50 quintessential tomboy 50 total girly-girl

Gender bo bender banana fanna fo lender fee fi mo

Sunday February 24 13

AND because they could express this THING about themselves fully With authentic voice

cczona

hellipit was one of the earliest indications Id landed in the right place

mdashMeFi user

Sunday February 24 13

That text field grew into a beloved institution What you as a user put into that field says something revealing who you are That youre allowed to put in anything -- or put in nothing -- says something revealing about what MetaFilter is meant to be for

cczona

8 years

11 years

4 years

11 years

Sunday February 24 13

That schemas trust in users was the foundation for the users to ASK to share themselves even more

cczona

Sunday February 24 13

Today MetaFilter users are trusted with many free-form fields including ones most developers instinctually constrain or thoroughly validate

cczona

Sunday February 24 13

Nonsensical values Hell yeah go for it Field values that blatantly contradict each other No objection to that either The message is hey user we get that this is YOUR OWN HOME Make it as comfortable personal and messy as you want to WE as developers can work with that

Social Research

Sunday February 24 13

When collecting data on people youre 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 two minimum criteria

ExhaustiveEvery possible option

Sunday February 24 13

A fields values must include every possible option

Mutually ExclusiveNo overlap exists between them

Sunday February 24 13

And the fields options must be mutually exclusive

How many social apps have both of those bare minimum criteria covered

cczona

Sunday February 24 13

Weve seen this one enough At least that set of values seems covered fully

cczona

Sunday February 24 13

But its not

cczona

Sunday February 24 13

Still not

Well never get there by adding more list items But thats fine Because instead we can choose to look at human data from a different perspective

cczona

Data doesnrsquot have to be for analysis

Sunday February 24 13

Its easy to get into the habit of structuring data for easy analysis But step back Wallow in the users perspective

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 7: Schemas for the Real World [RubyConf AU 2013]

cczona

Sunday February 24 13

cczona

Sunday February 24 13

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 are not the only one

cczona

Sociological Normalization

Construction of an idealized norm

Sunday February 24 13

When developers talk about normalization were talking about databases But when dealing with human attributes we often wind up pursuing a different cause sociological normalization [read]

Conflating the two 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

cczona

Database Normalization

Mirror real-world concepts and their interrelationships

Sunday February 24 13

What we lose track of is one of the core objectives of database normalization Were supposed to [read] When the database is in tension with peoples own real world -- then its not people who need to be flexible

cczona

Sunday February 24 13

Why IS this hard Because at first glance this stuff looks so easy Its just forms right Weve done those a million times before

But we get tripped up by some flawed premises

cczona

Gender is one of those things everyone thinks they understand but most people dont Like Inception

mdash Sam Killerman

Sunday February 24 13

First a premise that deeply personal stuff about humans can be reduced to lists

cczona

Hey this is just a system I can figure out easily is also a problem among engineers first diving into the stock market

mdashxkcd 592

Sunday February 24 13

Second assumptions that canonical lists for these exist Or are at least SURELY must be creatable

cczona

ltoption value=1gtMrltoptiongt

ltoption value=2gtMrsltoptiongt

ltoption value=3gtMissltoptiongt

ltoption value=4gtMsltoptiongt

ltoption value=5gtDrltoptiongt

ltoption value=6gtProfessorltoptiongt

ltoption value=7gtThe Rt Revd Drltoptiongt

ltoption value=8gtThe Most Revdltoptiongt

ltoption value=9gtThe Rt Revdltoptiongt

ltoption value=10gtThe Revd Canonlt

optiongt

ltoption value=11gtThe Revdltoptiongt

ltoption value=12gtThe Rt Revd

Professorltoptiongt

ltoption value=13gtThe Venltoptiongt

ltoption value=14gtThe Most Revd Drlt

optiongt

ltoption value=16gtRabbiltoptiongt

ltoption value=17gtCanonltoptiongt

ltoption value=18gtDameltoptiongt

ltoption value=19gtChiefltoptiongt

ltoption value=20gtSisterltoptiongt

ltoption value=21gtReverendltoptiongt

ltoption value=22gtMajorltoptiongt

ltoption value=23gtOtherltoptiongt

ltoption value=24gtCllrltoptiongt

ltoption value=25gtSirltoptiongt

ltoption value=26gtRt Hon Lordltoptiongt

ltoption value=27gtRt Honltoptiongt

ltoption value=28gtThe Lord ltoptiongt

ltoption value=29gtViscountltoptiongt

ltoption value=30gtViscountessltoptiongt

ltoption value=31gtBaronessltoptiongt

ltoption value=32gtCaptainltoptiongt

ltoption value=33gtMasterltoptiongt

ltoption value=34gtVery Revdltoptiongt

ltoption value=35gtLadyltoptiongt

ltoption value=38gtMPltoptiongt

ltoption value=39gtKing of Kings and Lord

of Lordsltoptiongt

ltoption value=40gtConquering Lion of the

Tribe of Judahltoptiongt

ltoption value=41gtElect of God and Light

of this Worldltoptiongt

ltoption value=42gtHis Own Divine

Majestyltoptiongt

ltoption value=43gtFirst Ancient King of

Creationltoptiongt

ltoption value=44gtKing Alphaltoptiongt

ltoption value=45gtQueen Omegaltoptiongt

ltoption value=46gtBeginning with Our End

and First with Our Lastltoptiongt

ltoption value=47gtProtector of All Human

Faithltoptiongt

ltoption value=48gtRuler of the

Universeltoptiongt

ltoption value=49gtDudeltoptiongt

Sunday February 24 13

And the third problem is our faith that the first two problems here can be easily solved Just add more list items

cczona

Seeing more than 20 uncategorized options can be bewilderinghellip

mdashSmashing Magazine

Sunday February 24 13

So thats not gonna work

Also it risks looking like a dumbass

Social Networks

Sunday February 24 13

So heres the next flawed premise that we intuitively understand the nature of social networks

Stepping aside from how social networking has come to be implemented as technology -- what IS a social network What is it in purely human terms

cczona

Social network

Individuals and the dyadic ties between them

Interactions within a social group of exactly two people

Sunday February 24 13

[slide] Thats the real life that our apps are meant to replicate and build upon One-on-one As personal as our social selves get In social identity is a dependency

cczona

Developer amp user are in dyad too

How can I be better 11 partner with this person whohellip

bull is a current user

bull I hope will become a user

Sunday February 24 13

As developers we build -- or break -- community with each line of code What 11 relationships are we fostering between the individual and the app What relationships are we inhibiting between individuals

cczona

In real life

I know your personhood better than you

sounds presumptuous

Sunday February 24 13

cczona

In real life

sounds presumptuous

Sunday February 24 13

cczona

In real life

Who you are is invalid

sounds arrogant

Sunday February 24 13

cczona

In real life

sounds arrogant

Sunday February 24 13

cczona

In real life

Your existence isnt possible

sounds clueless

Sunday February 24 13

cczona

In real life

sounds clueless

Sunday February 24 13

cczona

Sunday February 24 13

Its not what we set out to do Its not the community we seek to build We want to create things that feel cutting edge -- not that seem out of touch with modern reality

cczona

Be conservative in what you do be liberal in what you accept from others

-Postels Law

Sunday February 24 13

[READ]

cczona

How do we bring modern realities into the data views logic

Sunday February 24 13

How DO we bring modern realities into the data views and logic We start at the schema

cczona

Sunday February 24 13

As developers were tugged in two directions keep the codebase manageable yet design for modern complexity

cczona

Get schemas into alignment

Sunday February 24 13

cczona

Mental Schema

bullSet of pre-conceived ideas

bullFramework for representing some aspect of the world

bullSystem of organizing amp perceiving new information

Sunday February 24 13

There are two kinds of schema [read]

cczona

Database Schema

bullStructure described in the databases language

bullBlueprint for database construction

bullDescribes how the real world is being modeled

Sunday February 24 13

Database schemas are basically the same thing Its a mental schema translated into blueprints for a database

cczona

create_table users force =gt true do |t| tstring username tstring email tstring passwordend

Sunday February 24 13

When you use Rails generate scaffold or Rails generate model it creates a migration Maybe you created something like this for instance Those migrations ultimately get translated into a unified schema to be used by the environments database

cczona

Sunday February 24 13

These are simply frontend manifestations of someones mental schema

cczona

Schemas are foundation for

expressing

things deeply intimate

Sunday February 24 13

cczona

Schemas are foundation for

expressing

self-image

Sunday February 24 13

cczona

Schemas are foundation for

expressing

identity

Sunday February 24 13

cczona

Schemas are foundation for

expressing

important relationships

Sunday February 24 13

cczona

Schemas are foundation for

expressing

values

Sunday February 24 13

cczona

Schemas are foundation for

expressing

spirit

creativity

uniqueness

Sunday February 24 13

cczona

Schemas define the

user experience

Sunday February 24 13

Schemas define user experience

cczona

Our schemas are leaving people behind

amp UX

Sunday February 24 13

[read]We can fix that

cczona

What benefit will the user notice

Sunday February 24 13

When developing a schema thats going to ask a person about their experiences feelings sense of self there isnt a single right way I can tell to do this What we can do is evaluate tradeoffs and ask What benefit will the user notice Thats not equivalent to How will the user benefit a question that grants too much latitude for assuming that what we want is of course to their benefit because its gonna help us deliver a product thats Awesome

cczona

Evaluating from user perspective gives us focus

Sunday February 24 13

[read]

cczona

Coerced Discretionary

Restricted Freeform

Guided

Corrective

Sunday February 24 13

Theres no point on this chart where everybody is seeing maximum benefit So lets look at the choices

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective Freeform

Sunday February 24 13

Checkboxs radio buttons and select menus imply that all possible values are represented Hey user just pick the right one (or ones) Its real world being rejected because it didnt happen to look like our mental schema

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective TextareaText

Sunday February 24 13

Checking a box is a one step action Entering a text string is not So a freeform solution such as a textarea or text field isnt automatically exciting Nevertheless a freeform field can deliver striking benefit to users

cczona

11 years

11 years

Sunday February 24 13

At MetaFilter gender has been a text field for over a decade

cczona

hellipthe early crowd at MeFi were often programmers and they hated the idea of dirty data collectionhellip

mdashMatt Haughey founder

Sunday February 24 13

Initially there were some who shuddered at the thought

cczona

All girl

XY

Braid runner

Fella

Fembot

Alto

It depends

MYOB

Dangly bits

Chicklet

Innie not outie

Convex

Sideburns

Ambisextrous

Member of the patriarchy

Sunday February 24 13

For about 5 seconds Then they jumped on board Because they could be creative and silly

cczona

I speak using the male gender when required by language

M but known to be flexible

50 quintessential tomboy 50 total girly-girl

Gender bo bender banana fanna fo lender fee fi mo

Sunday February 24 13

AND because they could express this THING about themselves fully With authentic voice

cczona

hellipit was one of the earliest indications Id landed in the right place

mdashMeFi user

Sunday February 24 13

That text field grew into a beloved institution What you as a user put into that field says something revealing who you are That youre allowed to put in anything -- or put in nothing -- says something revealing about what MetaFilter is meant to be for

cczona

8 years

11 years

4 years

11 years

Sunday February 24 13

That schemas trust in users was the foundation for the users to ASK to share themselves even more

cczona

Sunday February 24 13

Today MetaFilter users are trusted with many free-form fields including ones most developers instinctually constrain or thoroughly validate

cczona

Sunday February 24 13

Nonsensical values Hell yeah go for it Field values that blatantly contradict each other No objection to that either The message is hey user we get that this is YOUR OWN HOME Make it as comfortable personal and messy as you want to WE as developers can work with that

Social Research

Sunday February 24 13

When collecting data on people youre 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 two minimum criteria

ExhaustiveEvery possible option

Sunday February 24 13

A fields values must include every possible option

Mutually ExclusiveNo overlap exists between them

Sunday February 24 13

And the fields options must be mutually exclusive

How many social apps have both of those bare minimum criteria covered

cczona

Sunday February 24 13

Weve seen this one enough At least that set of values seems covered fully

cczona

Sunday February 24 13

But its not

cczona

Sunday February 24 13

Still not

Well never get there by adding more list items But thats fine Because instead we can choose to look at human data from a different perspective

cczona

Data doesnrsquot have to be for analysis

Sunday February 24 13

Its easy to get into the habit of structuring data for easy analysis But step back Wallow in the users perspective

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 8: Schemas for the Real World [RubyConf AU 2013]

cczona

Sunday February 24 13

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 are not the only one

cczona

Sociological Normalization

Construction of an idealized norm

Sunday February 24 13

When developers talk about normalization were talking about databases But when dealing with human attributes we often wind up pursuing a different cause sociological normalization [read]

Conflating the two 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

cczona

Database Normalization

Mirror real-world concepts and their interrelationships

Sunday February 24 13

What we lose track of is one of the core objectives of database normalization Were supposed to [read] When the database is in tension with peoples own real world -- then its not people who need to be flexible

cczona

Sunday February 24 13

Why IS this hard Because at first glance this stuff looks so easy Its just forms right Weve done those a million times before

But we get tripped up by some flawed premises

cczona

Gender is one of those things everyone thinks they understand but most people dont Like Inception

mdash Sam Killerman

Sunday February 24 13

First a premise that deeply personal stuff about humans can be reduced to lists

cczona

Hey this is just a system I can figure out easily is also a problem among engineers first diving into the stock market

mdashxkcd 592

Sunday February 24 13

Second assumptions that canonical lists for these exist Or are at least SURELY must be creatable

cczona

ltoption value=1gtMrltoptiongt

ltoption value=2gtMrsltoptiongt

ltoption value=3gtMissltoptiongt

ltoption value=4gtMsltoptiongt

ltoption value=5gtDrltoptiongt

ltoption value=6gtProfessorltoptiongt

ltoption value=7gtThe Rt Revd Drltoptiongt

ltoption value=8gtThe Most Revdltoptiongt

ltoption value=9gtThe Rt Revdltoptiongt

ltoption value=10gtThe Revd Canonlt

optiongt

ltoption value=11gtThe Revdltoptiongt

ltoption value=12gtThe Rt Revd

Professorltoptiongt

ltoption value=13gtThe Venltoptiongt

ltoption value=14gtThe Most Revd Drlt

optiongt

ltoption value=16gtRabbiltoptiongt

ltoption value=17gtCanonltoptiongt

ltoption value=18gtDameltoptiongt

ltoption value=19gtChiefltoptiongt

ltoption value=20gtSisterltoptiongt

ltoption value=21gtReverendltoptiongt

ltoption value=22gtMajorltoptiongt

ltoption value=23gtOtherltoptiongt

ltoption value=24gtCllrltoptiongt

ltoption value=25gtSirltoptiongt

ltoption value=26gtRt Hon Lordltoptiongt

ltoption value=27gtRt Honltoptiongt

ltoption value=28gtThe Lord ltoptiongt

ltoption value=29gtViscountltoptiongt

ltoption value=30gtViscountessltoptiongt

ltoption value=31gtBaronessltoptiongt

ltoption value=32gtCaptainltoptiongt

ltoption value=33gtMasterltoptiongt

ltoption value=34gtVery Revdltoptiongt

ltoption value=35gtLadyltoptiongt

ltoption value=38gtMPltoptiongt

ltoption value=39gtKing of Kings and Lord

of Lordsltoptiongt

ltoption value=40gtConquering Lion of the

Tribe of Judahltoptiongt

ltoption value=41gtElect of God and Light

of this Worldltoptiongt

ltoption value=42gtHis Own Divine

Majestyltoptiongt

ltoption value=43gtFirst Ancient King of

Creationltoptiongt

ltoption value=44gtKing Alphaltoptiongt

ltoption value=45gtQueen Omegaltoptiongt

ltoption value=46gtBeginning with Our End

and First with Our Lastltoptiongt

ltoption value=47gtProtector of All Human

Faithltoptiongt

ltoption value=48gtRuler of the

Universeltoptiongt

ltoption value=49gtDudeltoptiongt

Sunday February 24 13

And the third problem is our faith that the first two problems here can be easily solved Just add more list items

cczona

Seeing more than 20 uncategorized options can be bewilderinghellip

mdashSmashing Magazine

Sunday February 24 13

So thats not gonna work

Also it risks looking like a dumbass

Social Networks

Sunday February 24 13

So heres the next flawed premise that we intuitively understand the nature of social networks

Stepping aside from how social networking has come to be implemented as technology -- what IS a social network What is it in purely human terms

cczona

Social network

Individuals and the dyadic ties between them

Interactions within a social group of exactly two people

Sunday February 24 13

[slide] Thats the real life that our apps are meant to replicate and build upon One-on-one As personal as our social selves get In social identity is a dependency

cczona

Developer amp user are in dyad too

How can I be better 11 partner with this person whohellip

bull is a current user

bull I hope will become a user

Sunday February 24 13

As developers we build -- or break -- community with each line of code What 11 relationships are we fostering between the individual and the app What relationships are we inhibiting between individuals

cczona

In real life

I know your personhood better than you

sounds presumptuous

Sunday February 24 13

cczona

In real life

sounds presumptuous

Sunday February 24 13

cczona

In real life

Who you are is invalid

sounds arrogant

Sunday February 24 13

cczona

In real life

sounds arrogant

Sunday February 24 13

cczona

In real life

Your existence isnt possible

sounds clueless

Sunday February 24 13

cczona

In real life

sounds clueless

Sunday February 24 13

cczona

Sunday February 24 13

Its not what we set out to do Its not the community we seek to build We want to create things that feel cutting edge -- not that seem out of touch with modern reality

cczona

Be conservative in what you do be liberal in what you accept from others

-Postels Law

Sunday February 24 13

[READ]

cczona

How do we bring modern realities into the data views logic

Sunday February 24 13

How DO we bring modern realities into the data views and logic We start at the schema

cczona

Sunday February 24 13

As developers were tugged in two directions keep the codebase manageable yet design for modern complexity

cczona

Get schemas into alignment

Sunday February 24 13

cczona

Mental Schema

bullSet of pre-conceived ideas

bullFramework for representing some aspect of the world

bullSystem of organizing amp perceiving new information

Sunday February 24 13

There are two kinds of schema [read]

cczona

Database Schema

bullStructure described in the databases language

bullBlueprint for database construction

bullDescribes how the real world is being modeled

Sunday February 24 13

Database schemas are basically the same thing Its a mental schema translated into blueprints for a database

cczona

create_table users force =gt true do |t| tstring username tstring email tstring passwordend

Sunday February 24 13

When you use Rails generate scaffold or Rails generate model it creates a migration Maybe you created something like this for instance Those migrations ultimately get translated into a unified schema to be used by the environments database

cczona

Sunday February 24 13

These are simply frontend manifestations of someones mental schema

cczona

Schemas are foundation for

expressing

things deeply intimate

Sunday February 24 13

cczona

Schemas are foundation for

expressing

self-image

Sunday February 24 13

cczona

Schemas are foundation for

expressing

identity

Sunday February 24 13

cczona

Schemas are foundation for

expressing

important relationships

Sunday February 24 13

cczona

Schemas are foundation for

expressing

values

Sunday February 24 13

cczona

Schemas are foundation for

expressing

spirit

creativity

uniqueness

Sunday February 24 13

cczona

Schemas define the

user experience

Sunday February 24 13

Schemas define user experience

cczona

Our schemas are leaving people behind

amp UX

Sunday February 24 13

[read]We can fix that

cczona

What benefit will the user notice

Sunday February 24 13

When developing a schema thats going to ask a person about their experiences feelings sense of self there isnt a single right way I can tell to do this What we can do is evaluate tradeoffs and ask What benefit will the user notice Thats not equivalent to How will the user benefit a question that grants too much latitude for assuming that what we want is of course to their benefit because its gonna help us deliver a product thats Awesome

cczona

Evaluating from user perspective gives us focus

Sunday February 24 13

[read]

cczona

Coerced Discretionary

Restricted Freeform

Guided

Corrective

Sunday February 24 13

Theres no point on this chart where everybody is seeing maximum benefit So lets look at the choices

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective Freeform

Sunday February 24 13

Checkboxs radio buttons and select menus imply that all possible values are represented Hey user just pick the right one (or ones) Its real world being rejected because it didnt happen to look like our mental schema

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective TextareaText

Sunday February 24 13

Checking a box is a one step action Entering a text string is not So a freeform solution such as a textarea or text field isnt automatically exciting Nevertheless a freeform field can deliver striking benefit to users

cczona

11 years

11 years

Sunday February 24 13

At MetaFilter gender has been a text field for over a decade

cczona

hellipthe early crowd at MeFi were often programmers and they hated the idea of dirty data collectionhellip

mdashMatt Haughey founder

Sunday February 24 13

Initially there were some who shuddered at the thought

cczona

All girl

XY

Braid runner

Fella

Fembot

Alto

It depends

MYOB

Dangly bits

Chicklet

Innie not outie

Convex

Sideburns

Ambisextrous

Member of the patriarchy

Sunday February 24 13

For about 5 seconds Then they jumped on board Because they could be creative and silly

cczona

I speak using the male gender when required by language

M but known to be flexible

50 quintessential tomboy 50 total girly-girl

Gender bo bender banana fanna fo lender fee fi mo

Sunday February 24 13

AND because they could express this THING about themselves fully With authentic voice

cczona

hellipit was one of the earliest indications Id landed in the right place

mdashMeFi user

Sunday February 24 13

That text field grew into a beloved institution What you as a user put into that field says something revealing who you are That youre allowed to put in anything -- or put in nothing -- says something revealing about what MetaFilter is meant to be for

cczona

8 years

11 years

4 years

11 years

Sunday February 24 13

That schemas trust in users was the foundation for the users to ASK to share themselves even more

cczona

Sunday February 24 13

Today MetaFilter users are trusted with many free-form fields including ones most developers instinctually constrain or thoroughly validate

cczona

Sunday February 24 13

Nonsensical values Hell yeah go for it Field values that blatantly contradict each other No objection to that either The message is hey user we get that this is YOUR OWN HOME Make it as comfortable personal and messy as you want to WE as developers can work with that

Social Research

Sunday February 24 13

When collecting data on people youre 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 two minimum criteria

ExhaustiveEvery possible option

Sunday February 24 13

A fields values must include every possible option

Mutually ExclusiveNo overlap exists between them

Sunday February 24 13

And the fields options must be mutually exclusive

How many social apps have both of those bare minimum criteria covered

cczona

Sunday February 24 13

Weve seen this one enough At least that set of values seems covered fully

cczona

Sunday February 24 13

But its not

cczona

Sunday February 24 13

Still not

Well never get there by adding more list items But thats fine Because instead we can choose to look at human data from a different perspective

cczona

Data doesnrsquot have to be for analysis

Sunday February 24 13

Its easy to get into the habit of structuring data for easy analysis But step back Wallow in the users perspective

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 9: Schemas for the Real World [RubyConf AU 2013]

cczona

Sociological Normalization

Construction of an idealized norm

Sunday February 24 13

When developers talk about normalization were talking about databases But when dealing with human attributes we often wind up pursuing a different cause sociological normalization [read]

Conflating the two 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

cczona

Database Normalization

Mirror real-world concepts and their interrelationships

Sunday February 24 13

What we lose track of is one of the core objectives of database normalization Were supposed to [read] When the database is in tension with peoples own real world -- then its not people who need to be flexible

cczona

Sunday February 24 13

Why IS this hard Because at first glance this stuff looks so easy Its just forms right Weve done those a million times before

But we get tripped up by some flawed premises

cczona

Gender is one of those things everyone thinks they understand but most people dont Like Inception

mdash Sam Killerman

Sunday February 24 13

First a premise that deeply personal stuff about humans can be reduced to lists

cczona

Hey this is just a system I can figure out easily is also a problem among engineers first diving into the stock market

mdashxkcd 592

Sunday February 24 13

Second assumptions that canonical lists for these exist Or are at least SURELY must be creatable

cczona

ltoption value=1gtMrltoptiongt

ltoption value=2gtMrsltoptiongt

ltoption value=3gtMissltoptiongt

ltoption value=4gtMsltoptiongt

ltoption value=5gtDrltoptiongt

ltoption value=6gtProfessorltoptiongt

ltoption value=7gtThe Rt Revd Drltoptiongt

ltoption value=8gtThe Most Revdltoptiongt

ltoption value=9gtThe Rt Revdltoptiongt

ltoption value=10gtThe Revd Canonlt

optiongt

ltoption value=11gtThe Revdltoptiongt

ltoption value=12gtThe Rt Revd

Professorltoptiongt

ltoption value=13gtThe Venltoptiongt

ltoption value=14gtThe Most Revd Drlt

optiongt

ltoption value=16gtRabbiltoptiongt

ltoption value=17gtCanonltoptiongt

ltoption value=18gtDameltoptiongt

ltoption value=19gtChiefltoptiongt

ltoption value=20gtSisterltoptiongt

ltoption value=21gtReverendltoptiongt

ltoption value=22gtMajorltoptiongt

ltoption value=23gtOtherltoptiongt

ltoption value=24gtCllrltoptiongt

ltoption value=25gtSirltoptiongt

ltoption value=26gtRt Hon Lordltoptiongt

ltoption value=27gtRt Honltoptiongt

ltoption value=28gtThe Lord ltoptiongt

ltoption value=29gtViscountltoptiongt

ltoption value=30gtViscountessltoptiongt

ltoption value=31gtBaronessltoptiongt

ltoption value=32gtCaptainltoptiongt

ltoption value=33gtMasterltoptiongt

ltoption value=34gtVery Revdltoptiongt

ltoption value=35gtLadyltoptiongt

ltoption value=38gtMPltoptiongt

ltoption value=39gtKing of Kings and Lord

of Lordsltoptiongt

ltoption value=40gtConquering Lion of the

Tribe of Judahltoptiongt

ltoption value=41gtElect of God and Light

of this Worldltoptiongt

ltoption value=42gtHis Own Divine

Majestyltoptiongt

ltoption value=43gtFirst Ancient King of

Creationltoptiongt

ltoption value=44gtKing Alphaltoptiongt

ltoption value=45gtQueen Omegaltoptiongt

ltoption value=46gtBeginning with Our End

and First with Our Lastltoptiongt

ltoption value=47gtProtector of All Human

Faithltoptiongt

ltoption value=48gtRuler of the

Universeltoptiongt

ltoption value=49gtDudeltoptiongt

Sunday February 24 13

And the third problem is our faith that the first two problems here can be easily solved Just add more list items

cczona

Seeing more than 20 uncategorized options can be bewilderinghellip

mdashSmashing Magazine

Sunday February 24 13

So thats not gonna work

Also it risks looking like a dumbass

Social Networks

Sunday February 24 13

So heres the next flawed premise that we intuitively understand the nature of social networks

Stepping aside from how social networking has come to be implemented as technology -- what IS a social network What is it in purely human terms

cczona

Social network

Individuals and the dyadic ties between them

Interactions within a social group of exactly two people

Sunday February 24 13

[slide] Thats the real life that our apps are meant to replicate and build upon One-on-one As personal as our social selves get In social identity is a dependency

cczona

Developer amp user are in dyad too

How can I be better 11 partner with this person whohellip

bull is a current user

bull I hope will become a user

Sunday February 24 13

As developers we build -- or break -- community with each line of code What 11 relationships are we fostering between the individual and the app What relationships are we inhibiting between individuals

cczona

In real life

I know your personhood better than you

sounds presumptuous

Sunday February 24 13

cczona

In real life

sounds presumptuous

Sunday February 24 13

cczona

In real life

Who you are is invalid

sounds arrogant

Sunday February 24 13

cczona

In real life

sounds arrogant

Sunday February 24 13

cczona

In real life

Your existence isnt possible

sounds clueless

Sunday February 24 13

cczona

In real life

sounds clueless

Sunday February 24 13

cczona

Sunday February 24 13

Its not what we set out to do Its not the community we seek to build We want to create things that feel cutting edge -- not that seem out of touch with modern reality

cczona

Be conservative in what you do be liberal in what you accept from others

-Postels Law

Sunday February 24 13

[READ]

cczona

How do we bring modern realities into the data views logic

Sunday February 24 13

How DO we bring modern realities into the data views and logic We start at the schema

cczona

Sunday February 24 13

As developers were tugged in two directions keep the codebase manageable yet design for modern complexity

cczona

Get schemas into alignment

Sunday February 24 13

cczona

Mental Schema

bullSet of pre-conceived ideas

bullFramework for representing some aspect of the world

bullSystem of organizing amp perceiving new information

Sunday February 24 13

There are two kinds of schema [read]

cczona

Database Schema

bullStructure described in the databases language

bullBlueprint for database construction

bullDescribes how the real world is being modeled

Sunday February 24 13

Database schemas are basically the same thing Its a mental schema translated into blueprints for a database

cczona

create_table users force =gt true do |t| tstring username tstring email tstring passwordend

Sunday February 24 13

When you use Rails generate scaffold or Rails generate model it creates a migration Maybe you created something like this for instance Those migrations ultimately get translated into a unified schema to be used by the environments database

cczona

Sunday February 24 13

These are simply frontend manifestations of someones mental schema

cczona

Schemas are foundation for

expressing

things deeply intimate

Sunday February 24 13

cczona

Schemas are foundation for

expressing

self-image

Sunday February 24 13

cczona

Schemas are foundation for

expressing

identity

Sunday February 24 13

cczona

Schemas are foundation for

expressing

important relationships

Sunday February 24 13

cczona

Schemas are foundation for

expressing

values

Sunday February 24 13

cczona

Schemas are foundation for

expressing

spirit

creativity

uniqueness

Sunday February 24 13

cczona

Schemas define the

user experience

Sunday February 24 13

Schemas define user experience

cczona

Our schemas are leaving people behind

amp UX

Sunday February 24 13

[read]We can fix that

cczona

What benefit will the user notice

Sunday February 24 13

When developing a schema thats going to ask a person about their experiences feelings sense of self there isnt a single right way I can tell to do this What we can do is evaluate tradeoffs and ask What benefit will the user notice Thats not equivalent to How will the user benefit a question that grants too much latitude for assuming that what we want is of course to their benefit because its gonna help us deliver a product thats Awesome

cczona

Evaluating from user perspective gives us focus

Sunday February 24 13

[read]

cczona

Coerced Discretionary

Restricted Freeform

Guided

Corrective

Sunday February 24 13

Theres no point on this chart where everybody is seeing maximum benefit So lets look at the choices

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective Freeform

Sunday February 24 13

Checkboxs radio buttons and select menus imply that all possible values are represented Hey user just pick the right one (or ones) Its real world being rejected because it didnt happen to look like our mental schema

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective TextareaText

Sunday February 24 13

Checking a box is a one step action Entering a text string is not So a freeform solution such as a textarea or text field isnt automatically exciting Nevertheless a freeform field can deliver striking benefit to users

cczona

11 years

11 years

Sunday February 24 13

At MetaFilter gender has been a text field for over a decade

cczona

hellipthe early crowd at MeFi were often programmers and they hated the idea of dirty data collectionhellip

mdashMatt Haughey founder

Sunday February 24 13

Initially there were some who shuddered at the thought

cczona

All girl

XY

Braid runner

Fella

Fembot

Alto

It depends

MYOB

Dangly bits

Chicklet

Innie not outie

Convex

Sideburns

Ambisextrous

Member of the patriarchy

Sunday February 24 13

For about 5 seconds Then they jumped on board Because they could be creative and silly

cczona

I speak using the male gender when required by language

M but known to be flexible

50 quintessential tomboy 50 total girly-girl

Gender bo bender banana fanna fo lender fee fi mo

Sunday February 24 13

AND because they could express this THING about themselves fully With authentic voice

cczona

hellipit was one of the earliest indications Id landed in the right place

mdashMeFi user

Sunday February 24 13

That text field grew into a beloved institution What you as a user put into that field says something revealing who you are That youre allowed to put in anything -- or put in nothing -- says something revealing about what MetaFilter is meant to be for

cczona

8 years

11 years

4 years

11 years

Sunday February 24 13

That schemas trust in users was the foundation for the users to ASK to share themselves even more

cczona

Sunday February 24 13

Today MetaFilter users are trusted with many free-form fields including ones most developers instinctually constrain or thoroughly validate

cczona

Sunday February 24 13

Nonsensical values Hell yeah go for it Field values that blatantly contradict each other No objection to that either The message is hey user we get that this is YOUR OWN HOME Make it as comfortable personal and messy as you want to WE as developers can work with that

Social Research

Sunday February 24 13

When collecting data on people youre 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 two minimum criteria

ExhaustiveEvery possible option

Sunday February 24 13

A fields values must include every possible option

Mutually ExclusiveNo overlap exists between them

Sunday February 24 13

And the fields options must be mutually exclusive

How many social apps have both of those bare minimum criteria covered

cczona

Sunday February 24 13

Weve seen this one enough At least that set of values seems covered fully

cczona

Sunday February 24 13

But its not

cczona

Sunday February 24 13

Still not

Well never get there by adding more list items But thats fine Because instead we can choose to look at human data from a different perspective

cczona

Data doesnrsquot have to be for analysis

Sunday February 24 13

Its easy to get into the habit of structuring data for easy analysis But step back Wallow in the users perspective

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 10: Schemas for the Real World [RubyConf AU 2013]

cczona

Database Normalization

Mirror real-world concepts and their interrelationships

Sunday February 24 13

What we lose track of is one of the core objectives of database normalization Were supposed to [read] When the database is in tension with peoples own real world -- then its not people who need to be flexible

cczona

Sunday February 24 13

Why IS this hard Because at first glance this stuff looks so easy Its just forms right Weve done those a million times before

But we get tripped up by some flawed premises

cczona

Gender is one of those things everyone thinks they understand but most people dont Like Inception

mdash Sam Killerman

Sunday February 24 13

First a premise that deeply personal stuff about humans can be reduced to lists

cczona

Hey this is just a system I can figure out easily is also a problem among engineers first diving into the stock market

mdashxkcd 592

Sunday February 24 13

Second assumptions that canonical lists for these exist Or are at least SURELY must be creatable

cczona

ltoption value=1gtMrltoptiongt

ltoption value=2gtMrsltoptiongt

ltoption value=3gtMissltoptiongt

ltoption value=4gtMsltoptiongt

ltoption value=5gtDrltoptiongt

ltoption value=6gtProfessorltoptiongt

ltoption value=7gtThe Rt Revd Drltoptiongt

ltoption value=8gtThe Most Revdltoptiongt

ltoption value=9gtThe Rt Revdltoptiongt

ltoption value=10gtThe Revd Canonlt

optiongt

ltoption value=11gtThe Revdltoptiongt

ltoption value=12gtThe Rt Revd

Professorltoptiongt

ltoption value=13gtThe Venltoptiongt

ltoption value=14gtThe Most Revd Drlt

optiongt

ltoption value=16gtRabbiltoptiongt

ltoption value=17gtCanonltoptiongt

ltoption value=18gtDameltoptiongt

ltoption value=19gtChiefltoptiongt

ltoption value=20gtSisterltoptiongt

ltoption value=21gtReverendltoptiongt

ltoption value=22gtMajorltoptiongt

ltoption value=23gtOtherltoptiongt

ltoption value=24gtCllrltoptiongt

ltoption value=25gtSirltoptiongt

ltoption value=26gtRt Hon Lordltoptiongt

ltoption value=27gtRt Honltoptiongt

ltoption value=28gtThe Lord ltoptiongt

ltoption value=29gtViscountltoptiongt

ltoption value=30gtViscountessltoptiongt

ltoption value=31gtBaronessltoptiongt

ltoption value=32gtCaptainltoptiongt

ltoption value=33gtMasterltoptiongt

ltoption value=34gtVery Revdltoptiongt

ltoption value=35gtLadyltoptiongt

ltoption value=38gtMPltoptiongt

ltoption value=39gtKing of Kings and Lord

of Lordsltoptiongt

ltoption value=40gtConquering Lion of the

Tribe of Judahltoptiongt

ltoption value=41gtElect of God and Light

of this Worldltoptiongt

ltoption value=42gtHis Own Divine

Majestyltoptiongt

ltoption value=43gtFirst Ancient King of

Creationltoptiongt

ltoption value=44gtKing Alphaltoptiongt

ltoption value=45gtQueen Omegaltoptiongt

ltoption value=46gtBeginning with Our End

and First with Our Lastltoptiongt

ltoption value=47gtProtector of All Human

Faithltoptiongt

ltoption value=48gtRuler of the

Universeltoptiongt

ltoption value=49gtDudeltoptiongt

Sunday February 24 13

And the third problem is our faith that the first two problems here can be easily solved Just add more list items

cczona

Seeing more than 20 uncategorized options can be bewilderinghellip

mdashSmashing Magazine

Sunday February 24 13

So thats not gonna work

Also it risks looking like a dumbass

Social Networks

Sunday February 24 13

So heres the next flawed premise that we intuitively understand the nature of social networks

Stepping aside from how social networking has come to be implemented as technology -- what IS a social network What is it in purely human terms

cczona

Social network

Individuals and the dyadic ties between them

Interactions within a social group of exactly two people

Sunday February 24 13

[slide] Thats the real life that our apps are meant to replicate and build upon One-on-one As personal as our social selves get In social identity is a dependency

cczona

Developer amp user are in dyad too

How can I be better 11 partner with this person whohellip

bull is a current user

bull I hope will become a user

Sunday February 24 13

As developers we build -- or break -- community with each line of code What 11 relationships are we fostering between the individual and the app What relationships are we inhibiting between individuals

cczona

In real life

I know your personhood better than you

sounds presumptuous

Sunday February 24 13

cczona

In real life

sounds presumptuous

Sunday February 24 13

cczona

In real life

Who you are is invalid

sounds arrogant

Sunday February 24 13

cczona

In real life

sounds arrogant

Sunday February 24 13

cczona

In real life

Your existence isnt possible

sounds clueless

Sunday February 24 13

cczona

In real life

sounds clueless

Sunday February 24 13

cczona

Sunday February 24 13

Its not what we set out to do Its not the community we seek to build We want to create things that feel cutting edge -- not that seem out of touch with modern reality

cczona

Be conservative in what you do be liberal in what you accept from others

-Postels Law

Sunday February 24 13

[READ]

cczona

How do we bring modern realities into the data views logic

Sunday February 24 13

How DO we bring modern realities into the data views and logic We start at the schema

cczona

Sunday February 24 13

As developers were tugged in two directions keep the codebase manageable yet design for modern complexity

cczona

Get schemas into alignment

Sunday February 24 13

cczona

Mental Schema

bullSet of pre-conceived ideas

bullFramework for representing some aspect of the world

bullSystem of organizing amp perceiving new information

Sunday February 24 13

There are two kinds of schema [read]

cczona

Database Schema

bullStructure described in the databases language

bullBlueprint for database construction

bullDescribes how the real world is being modeled

Sunday February 24 13

Database schemas are basically the same thing Its a mental schema translated into blueprints for a database

cczona

create_table users force =gt true do |t| tstring username tstring email tstring passwordend

Sunday February 24 13

When you use Rails generate scaffold or Rails generate model it creates a migration Maybe you created something like this for instance Those migrations ultimately get translated into a unified schema to be used by the environments database

cczona

Sunday February 24 13

These are simply frontend manifestations of someones mental schema

cczona

Schemas are foundation for

expressing

things deeply intimate

Sunday February 24 13

cczona

Schemas are foundation for

expressing

self-image

Sunday February 24 13

cczona

Schemas are foundation for

expressing

identity

Sunday February 24 13

cczona

Schemas are foundation for

expressing

important relationships

Sunday February 24 13

cczona

Schemas are foundation for

expressing

values

Sunday February 24 13

cczona

Schemas are foundation for

expressing

spirit

creativity

uniqueness

Sunday February 24 13

cczona

Schemas define the

user experience

Sunday February 24 13

Schemas define user experience

cczona

Our schemas are leaving people behind

amp UX

Sunday February 24 13

[read]We can fix that

cczona

What benefit will the user notice

Sunday February 24 13

When developing a schema thats going to ask a person about their experiences feelings sense of self there isnt a single right way I can tell to do this What we can do is evaluate tradeoffs and ask What benefit will the user notice Thats not equivalent to How will the user benefit a question that grants too much latitude for assuming that what we want is of course to their benefit because its gonna help us deliver a product thats Awesome

cczona

Evaluating from user perspective gives us focus

Sunday February 24 13

[read]

cczona

Coerced Discretionary

Restricted Freeform

Guided

Corrective

Sunday February 24 13

Theres no point on this chart where everybody is seeing maximum benefit So lets look at the choices

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective Freeform

Sunday February 24 13

Checkboxs radio buttons and select menus imply that all possible values are represented Hey user just pick the right one (or ones) Its real world being rejected because it didnt happen to look like our mental schema

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective TextareaText

Sunday February 24 13

Checking a box is a one step action Entering a text string is not So a freeform solution such as a textarea or text field isnt automatically exciting Nevertheless a freeform field can deliver striking benefit to users

cczona

11 years

11 years

Sunday February 24 13

At MetaFilter gender has been a text field for over a decade

cczona

hellipthe early crowd at MeFi were often programmers and they hated the idea of dirty data collectionhellip

mdashMatt Haughey founder

Sunday February 24 13

Initially there were some who shuddered at the thought

cczona

All girl

XY

Braid runner

Fella

Fembot

Alto

It depends

MYOB

Dangly bits

Chicklet

Innie not outie

Convex

Sideburns

Ambisextrous

Member of the patriarchy

Sunday February 24 13

For about 5 seconds Then they jumped on board Because they could be creative and silly

cczona

I speak using the male gender when required by language

M but known to be flexible

50 quintessential tomboy 50 total girly-girl

Gender bo bender banana fanna fo lender fee fi mo

Sunday February 24 13

AND because they could express this THING about themselves fully With authentic voice

cczona

hellipit was one of the earliest indications Id landed in the right place

mdashMeFi user

Sunday February 24 13

That text field grew into a beloved institution What you as a user put into that field says something revealing who you are That youre allowed to put in anything -- or put in nothing -- says something revealing about what MetaFilter is meant to be for

cczona

8 years

11 years

4 years

11 years

Sunday February 24 13

That schemas trust in users was the foundation for the users to ASK to share themselves even more

cczona

Sunday February 24 13

Today MetaFilter users are trusted with many free-form fields including ones most developers instinctually constrain or thoroughly validate

cczona

Sunday February 24 13

Nonsensical values Hell yeah go for it Field values that blatantly contradict each other No objection to that either The message is hey user we get that this is YOUR OWN HOME Make it as comfortable personal and messy as you want to WE as developers can work with that

Social Research

Sunday February 24 13

When collecting data on people youre 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 two minimum criteria

ExhaustiveEvery possible option

Sunday February 24 13

A fields values must include every possible option

Mutually ExclusiveNo overlap exists between them

Sunday February 24 13

And the fields options must be mutually exclusive

How many social apps have both of those bare minimum criteria covered

cczona

Sunday February 24 13

Weve seen this one enough At least that set of values seems covered fully

cczona

Sunday February 24 13

But its not

cczona

Sunday February 24 13

Still not

Well never get there by adding more list items But thats fine Because instead we can choose to look at human data from a different perspective

cczona

Data doesnrsquot have to be for analysis

Sunday February 24 13

Its easy to get into the habit of structuring data for easy analysis But step back Wallow in the users perspective

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 11: Schemas for the Real World [RubyConf AU 2013]

cczona

Sunday February 24 13

Why IS this hard Because at first glance this stuff looks so easy Its just forms right Weve done those a million times before

But we get tripped up by some flawed premises

cczona

Gender is one of those things everyone thinks they understand but most people dont Like Inception

mdash Sam Killerman

Sunday February 24 13

First a premise that deeply personal stuff about humans can be reduced to lists

cczona

Hey this is just a system I can figure out easily is also a problem among engineers first diving into the stock market

mdashxkcd 592

Sunday February 24 13

Second assumptions that canonical lists for these exist Or are at least SURELY must be creatable

cczona

ltoption value=1gtMrltoptiongt

ltoption value=2gtMrsltoptiongt

ltoption value=3gtMissltoptiongt

ltoption value=4gtMsltoptiongt

ltoption value=5gtDrltoptiongt

ltoption value=6gtProfessorltoptiongt

ltoption value=7gtThe Rt Revd Drltoptiongt

ltoption value=8gtThe Most Revdltoptiongt

ltoption value=9gtThe Rt Revdltoptiongt

ltoption value=10gtThe Revd Canonlt

optiongt

ltoption value=11gtThe Revdltoptiongt

ltoption value=12gtThe Rt Revd

Professorltoptiongt

ltoption value=13gtThe Venltoptiongt

ltoption value=14gtThe Most Revd Drlt

optiongt

ltoption value=16gtRabbiltoptiongt

ltoption value=17gtCanonltoptiongt

ltoption value=18gtDameltoptiongt

ltoption value=19gtChiefltoptiongt

ltoption value=20gtSisterltoptiongt

ltoption value=21gtReverendltoptiongt

ltoption value=22gtMajorltoptiongt

ltoption value=23gtOtherltoptiongt

ltoption value=24gtCllrltoptiongt

ltoption value=25gtSirltoptiongt

ltoption value=26gtRt Hon Lordltoptiongt

ltoption value=27gtRt Honltoptiongt

ltoption value=28gtThe Lord ltoptiongt

ltoption value=29gtViscountltoptiongt

ltoption value=30gtViscountessltoptiongt

ltoption value=31gtBaronessltoptiongt

ltoption value=32gtCaptainltoptiongt

ltoption value=33gtMasterltoptiongt

ltoption value=34gtVery Revdltoptiongt

ltoption value=35gtLadyltoptiongt

ltoption value=38gtMPltoptiongt

ltoption value=39gtKing of Kings and Lord

of Lordsltoptiongt

ltoption value=40gtConquering Lion of the

Tribe of Judahltoptiongt

ltoption value=41gtElect of God and Light

of this Worldltoptiongt

ltoption value=42gtHis Own Divine

Majestyltoptiongt

ltoption value=43gtFirst Ancient King of

Creationltoptiongt

ltoption value=44gtKing Alphaltoptiongt

ltoption value=45gtQueen Omegaltoptiongt

ltoption value=46gtBeginning with Our End

and First with Our Lastltoptiongt

ltoption value=47gtProtector of All Human

Faithltoptiongt

ltoption value=48gtRuler of the

Universeltoptiongt

ltoption value=49gtDudeltoptiongt

Sunday February 24 13

And the third problem is our faith that the first two problems here can be easily solved Just add more list items

cczona

Seeing more than 20 uncategorized options can be bewilderinghellip

mdashSmashing Magazine

Sunday February 24 13

So thats not gonna work

Also it risks looking like a dumbass

Social Networks

Sunday February 24 13

So heres the next flawed premise that we intuitively understand the nature of social networks

Stepping aside from how social networking has come to be implemented as technology -- what IS a social network What is it in purely human terms

cczona

Social network

Individuals and the dyadic ties between them

Interactions within a social group of exactly two people

Sunday February 24 13

[slide] Thats the real life that our apps are meant to replicate and build upon One-on-one As personal as our social selves get In social identity is a dependency

cczona

Developer amp user are in dyad too

How can I be better 11 partner with this person whohellip

bull is a current user

bull I hope will become a user

Sunday February 24 13

As developers we build -- or break -- community with each line of code What 11 relationships are we fostering between the individual and the app What relationships are we inhibiting between individuals

cczona

In real life

I know your personhood better than you

sounds presumptuous

Sunday February 24 13

cczona

In real life

sounds presumptuous

Sunday February 24 13

cczona

In real life

Who you are is invalid

sounds arrogant

Sunday February 24 13

cczona

In real life

sounds arrogant

Sunday February 24 13

cczona

In real life

Your existence isnt possible

sounds clueless

Sunday February 24 13

cczona

In real life

sounds clueless

Sunday February 24 13

cczona

Sunday February 24 13

Its not what we set out to do Its not the community we seek to build We want to create things that feel cutting edge -- not that seem out of touch with modern reality

cczona

Be conservative in what you do be liberal in what you accept from others

-Postels Law

Sunday February 24 13

[READ]

cczona

How do we bring modern realities into the data views logic

Sunday February 24 13

How DO we bring modern realities into the data views and logic We start at the schema

cczona

Sunday February 24 13

As developers were tugged in two directions keep the codebase manageable yet design for modern complexity

cczona

Get schemas into alignment

Sunday February 24 13

cczona

Mental Schema

bullSet of pre-conceived ideas

bullFramework for representing some aspect of the world

bullSystem of organizing amp perceiving new information

Sunday February 24 13

There are two kinds of schema [read]

cczona

Database Schema

bullStructure described in the databases language

bullBlueprint for database construction

bullDescribes how the real world is being modeled

Sunday February 24 13

Database schemas are basically the same thing Its a mental schema translated into blueprints for a database

cczona

create_table users force =gt true do |t| tstring username tstring email tstring passwordend

Sunday February 24 13

When you use Rails generate scaffold or Rails generate model it creates a migration Maybe you created something like this for instance Those migrations ultimately get translated into a unified schema to be used by the environments database

cczona

Sunday February 24 13

These are simply frontend manifestations of someones mental schema

cczona

Schemas are foundation for

expressing

things deeply intimate

Sunday February 24 13

cczona

Schemas are foundation for

expressing

self-image

Sunday February 24 13

cczona

Schemas are foundation for

expressing

identity

Sunday February 24 13

cczona

Schemas are foundation for

expressing

important relationships

Sunday February 24 13

cczona

Schemas are foundation for

expressing

values

Sunday February 24 13

cczona

Schemas are foundation for

expressing

spirit

creativity

uniqueness

Sunday February 24 13

cczona

Schemas define the

user experience

Sunday February 24 13

Schemas define user experience

cczona

Our schemas are leaving people behind

amp UX

Sunday February 24 13

[read]We can fix that

cczona

What benefit will the user notice

Sunday February 24 13

When developing a schema thats going to ask a person about their experiences feelings sense of self there isnt a single right way I can tell to do this What we can do is evaluate tradeoffs and ask What benefit will the user notice Thats not equivalent to How will the user benefit a question that grants too much latitude for assuming that what we want is of course to their benefit because its gonna help us deliver a product thats Awesome

cczona

Evaluating from user perspective gives us focus

Sunday February 24 13

[read]

cczona

Coerced Discretionary

Restricted Freeform

Guided

Corrective

Sunday February 24 13

Theres no point on this chart where everybody is seeing maximum benefit So lets look at the choices

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective Freeform

Sunday February 24 13

Checkboxs radio buttons and select menus imply that all possible values are represented Hey user just pick the right one (or ones) Its real world being rejected because it didnt happen to look like our mental schema

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective TextareaText

Sunday February 24 13

Checking a box is a one step action Entering a text string is not So a freeform solution such as a textarea or text field isnt automatically exciting Nevertheless a freeform field can deliver striking benefit to users

cczona

11 years

11 years

Sunday February 24 13

At MetaFilter gender has been a text field for over a decade

cczona

hellipthe early crowd at MeFi were often programmers and they hated the idea of dirty data collectionhellip

mdashMatt Haughey founder

Sunday February 24 13

Initially there were some who shuddered at the thought

cczona

All girl

XY

Braid runner

Fella

Fembot

Alto

It depends

MYOB

Dangly bits

Chicklet

Innie not outie

Convex

Sideburns

Ambisextrous

Member of the patriarchy

Sunday February 24 13

For about 5 seconds Then they jumped on board Because they could be creative and silly

cczona

I speak using the male gender when required by language

M but known to be flexible

50 quintessential tomboy 50 total girly-girl

Gender bo bender banana fanna fo lender fee fi mo

Sunday February 24 13

AND because they could express this THING about themselves fully With authentic voice

cczona

hellipit was one of the earliest indications Id landed in the right place

mdashMeFi user

Sunday February 24 13

That text field grew into a beloved institution What you as a user put into that field says something revealing who you are That youre allowed to put in anything -- or put in nothing -- says something revealing about what MetaFilter is meant to be for

cczona

8 years

11 years

4 years

11 years

Sunday February 24 13

That schemas trust in users was the foundation for the users to ASK to share themselves even more

cczona

Sunday February 24 13

Today MetaFilter users are trusted with many free-form fields including ones most developers instinctually constrain or thoroughly validate

cczona

Sunday February 24 13

Nonsensical values Hell yeah go for it Field values that blatantly contradict each other No objection to that either The message is hey user we get that this is YOUR OWN HOME Make it as comfortable personal and messy as you want to WE as developers can work with that

Social Research

Sunday February 24 13

When collecting data on people youre 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 two minimum criteria

ExhaustiveEvery possible option

Sunday February 24 13

A fields values must include every possible option

Mutually ExclusiveNo overlap exists between them

Sunday February 24 13

And the fields options must be mutually exclusive

How many social apps have both of those bare minimum criteria covered

cczona

Sunday February 24 13

Weve seen this one enough At least that set of values seems covered fully

cczona

Sunday February 24 13

But its not

cczona

Sunday February 24 13

Still not

Well never get there by adding more list items But thats fine Because instead we can choose to look at human data from a different perspective

cczona

Data doesnrsquot have to be for analysis

Sunday February 24 13

Its easy to get into the habit of structuring data for easy analysis But step back Wallow in the users perspective

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 12: Schemas for the Real World [RubyConf AU 2013]

cczona

Gender is one of those things everyone thinks they understand but most people dont Like Inception

mdash Sam Killerman

Sunday February 24 13

First a premise that deeply personal stuff about humans can be reduced to lists

cczona

Hey this is just a system I can figure out easily is also a problem among engineers first diving into the stock market

mdashxkcd 592

Sunday February 24 13

Second assumptions that canonical lists for these exist Or are at least SURELY must be creatable

cczona

ltoption value=1gtMrltoptiongt

ltoption value=2gtMrsltoptiongt

ltoption value=3gtMissltoptiongt

ltoption value=4gtMsltoptiongt

ltoption value=5gtDrltoptiongt

ltoption value=6gtProfessorltoptiongt

ltoption value=7gtThe Rt Revd Drltoptiongt

ltoption value=8gtThe Most Revdltoptiongt

ltoption value=9gtThe Rt Revdltoptiongt

ltoption value=10gtThe Revd Canonlt

optiongt

ltoption value=11gtThe Revdltoptiongt

ltoption value=12gtThe Rt Revd

Professorltoptiongt

ltoption value=13gtThe Venltoptiongt

ltoption value=14gtThe Most Revd Drlt

optiongt

ltoption value=16gtRabbiltoptiongt

ltoption value=17gtCanonltoptiongt

ltoption value=18gtDameltoptiongt

ltoption value=19gtChiefltoptiongt

ltoption value=20gtSisterltoptiongt

ltoption value=21gtReverendltoptiongt

ltoption value=22gtMajorltoptiongt

ltoption value=23gtOtherltoptiongt

ltoption value=24gtCllrltoptiongt

ltoption value=25gtSirltoptiongt

ltoption value=26gtRt Hon Lordltoptiongt

ltoption value=27gtRt Honltoptiongt

ltoption value=28gtThe Lord ltoptiongt

ltoption value=29gtViscountltoptiongt

ltoption value=30gtViscountessltoptiongt

ltoption value=31gtBaronessltoptiongt

ltoption value=32gtCaptainltoptiongt

ltoption value=33gtMasterltoptiongt

ltoption value=34gtVery Revdltoptiongt

ltoption value=35gtLadyltoptiongt

ltoption value=38gtMPltoptiongt

ltoption value=39gtKing of Kings and Lord

of Lordsltoptiongt

ltoption value=40gtConquering Lion of the

Tribe of Judahltoptiongt

ltoption value=41gtElect of God and Light

of this Worldltoptiongt

ltoption value=42gtHis Own Divine

Majestyltoptiongt

ltoption value=43gtFirst Ancient King of

Creationltoptiongt

ltoption value=44gtKing Alphaltoptiongt

ltoption value=45gtQueen Omegaltoptiongt

ltoption value=46gtBeginning with Our End

and First with Our Lastltoptiongt

ltoption value=47gtProtector of All Human

Faithltoptiongt

ltoption value=48gtRuler of the

Universeltoptiongt

ltoption value=49gtDudeltoptiongt

Sunday February 24 13

And the third problem is our faith that the first two problems here can be easily solved Just add more list items

cczona

Seeing more than 20 uncategorized options can be bewilderinghellip

mdashSmashing Magazine

Sunday February 24 13

So thats not gonna work

Also it risks looking like a dumbass

Social Networks

Sunday February 24 13

So heres the next flawed premise that we intuitively understand the nature of social networks

Stepping aside from how social networking has come to be implemented as technology -- what IS a social network What is it in purely human terms

cczona

Social network

Individuals and the dyadic ties between them

Interactions within a social group of exactly two people

Sunday February 24 13

[slide] Thats the real life that our apps are meant to replicate and build upon One-on-one As personal as our social selves get In social identity is a dependency

cczona

Developer amp user are in dyad too

How can I be better 11 partner with this person whohellip

bull is a current user

bull I hope will become a user

Sunday February 24 13

As developers we build -- or break -- community with each line of code What 11 relationships are we fostering between the individual and the app What relationships are we inhibiting between individuals

cczona

In real life

I know your personhood better than you

sounds presumptuous

Sunday February 24 13

cczona

In real life

sounds presumptuous

Sunday February 24 13

cczona

In real life

Who you are is invalid

sounds arrogant

Sunday February 24 13

cczona

In real life

sounds arrogant

Sunday February 24 13

cczona

In real life

Your existence isnt possible

sounds clueless

Sunday February 24 13

cczona

In real life

sounds clueless

Sunday February 24 13

cczona

Sunday February 24 13

Its not what we set out to do Its not the community we seek to build We want to create things that feel cutting edge -- not that seem out of touch with modern reality

cczona

Be conservative in what you do be liberal in what you accept from others

-Postels Law

Sunday February 24 13

[READ]

cczona

How do we bring modern realities into the data views logic

Sunday February 24 13

How DO we bring modern realities into the data views and logic We start at the schema

cczona

Sunday February 24 13

As developers were tugged in two directions keep the codebase manageable yet design for modern complexity

cczona

Get schemas into alignment

Sunday February 24 13

cczona

Mental Schema

bullSet of pre-conceived ideas

bullFramework for representing some aspect of the world

bullSystem of organizing amp perceiving new information

Sunday February 24 13

There are two kinds of schema [read]

cczona

Database Schema

bullStructure described in the databases language

bullBlueprint for database construction

bullDescribes how the real world is being modeled

Sunday February 24 13

Database schemas are basically the same thing Its a mental schema translated into blueprints for a database

cczona

create_table users force =gt true do |t| tstring username tstring email tstring passwordend

Sunday February 24 13

When you use Rails generate scaffold or Rails generate model it creates a migration Maybe you created something like this for instance Those migrations ultimately get translated into a unified schema to be used by the environments database

cczona

Sunday February 24 13

These are simply frontend manifestations of someones mental schema

cczona

Schemas are foundation for

expressing

things deeply intimate

Sunday February 24 13

cczona

Schemas are foundation for

expressing

self-image

Sunday February 24 13

cczona

Schemas are foundation for

expressing

identity

Sunday February 24 13

cczona

Schemas are foundation for

expressing

important relationships

Sunday February 24 13

cczona

Schemas are foundation for

expressing

values

Sunday February 24 13

cczona

Schemas are foundation for

expressing

spirit

creativity

uniqueness

Sunday February 24 13

cczona

Schemas define the

user experience

Sunday February 24 13

Schemas define user experience

cczona

Our schemas are leaving people behind

amp UX

Sunday February 24 13

[read]We can fix that

cczona

What benefit will the user notice

Sunday February 24 13

When developing a schema thats going to ask a person about their experiences feelings sense of self there isnt a single right way I can tell to do this What we can do is evaluate tradeoffs and ask What benefit will the user notice Thats not equivalent to How will the user benefit a question that grants too much latitude for assuming that what we want is of course to their benefit because its gonna help us deliver a product thats Awesome

cczona

Evaluating from user perspective gives us focus

Sunday February 24 13

[read]

cczona

Coerced Discretionary

Restricted Freeform

Guided

Corrective

Sunday February 24 13

Theres no point on this chart where everybody is seeing maximum benefit So lets look at the choices

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective Freeform

Sunday February 24 13

Checkboxs radio buttons and select menus imply that all possible values are represented Hey user just pick the right one (or ones) Its real world being rejected because it didnt happen to look like our mental schema

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective TextareaText

Sunday February 24 13

Checking a box is a one step action Entering a text string is not So a freeform solution such as a textarea or text field isnt automatically exciting Nevertheless a freeform field can deliver striking benefit to users

cczona

11 years

11 years

Sunday February 24 13

At MetaFilter gender has been a text field for over a decade

cczona

hellipthe early crowd at MeFi were often programmers and they hated the idea of dirty data collectionhellip

mdashMatt Haughey founder

Sunday February 24 13

Initially there were some who shuddered at the thought

cczona

All girl

XY

Braid runner

Fella

Fembot

Alto

It depends

MYOB

Dangly bits

Chicklet

Innie not outie

Convex

Sideburns

Ambisextrous

Member of the patriarchy

Sunday February 24 13

For about 5 seconds Then they jumped on board Because they could be creative and silly

cczona

I speak using the male gender when required by language

M but known to be flexible

50 quintessential tomboy 50 total girly-girl

Gender bo bender banana fanna fo lender fee fi mo

Sunday February 24 13

AND because they could express this THING about themselves fully With authentic voice

cczona

hellipit was one of the earliest indications Id landed in the right place

mdashMeFi user

Sunday February 24 13

That text field grew into a beloved institution What you as a user put into that field says something revealing who you are That youre allowed to put in anything -- or put in nothing -- says something revealing about what MetaFilter is meant to be for

cczona

8 years

11 years

4 years

11 years

Sunday February 24 13

That schemas trust in users was the foundation for the users to ASK to share themselves even more

cczona

Sunday February 24 13

Today MetaFilter users are trusted with many free-form fields including ones most developers instinctually constrain or thoroughly validate

cczona

Sunday February 24 13

Nonsensical values Hell yeah go for it Field values that blatantly contradict each other No objection to that either The message is hey user we get that this is YOUR OWN HOME Make it as comfortable personal and messy as you want to WE as developers can work with that

Social Research

Sunday February 24 13

When collecting data on people youre 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 two minimum criteria

ExhaustiveEvery possible option

Sunday February 24 13

A fields values must include every possible option

Mutually ExclusiveNo overlap exists between them

Sunday February 24 13

And the fields options must be mutually exclusive

How many social apps have both of those bare minimum criteria covered

cczona

Sunday February 24 13

Weve seen this one enough At least that set of values seems covered fully

cczona

Sunday February 24 13

But its not

cczona

Sunday February 24 13

Still not

Well never get there by adding more list items But thats fine Because instead we can choose to look at human data from a different perspective

cczona

Data doesnrsquot have to be for analysis

Sunday February 24 13

Its easy to get into the habit of structuring data for easy analysis But step back Wallow in the users perspective

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 13: Schemas for the Real World [RubyConf AU 2013]

cczona

Hey this is just a system I can figure out easily is also a problem among engineers first diving into the stock market

mdashxkcd 592

Sunday February 24 13

Second assumptions that canonical lists for these exist Or are at least SURELY must be creatable

cczona

ltoption value=1gtMrltoptiongt

ltoption value=2gtMrsltoptiongt

ltoption value=3gtMissltoptiongt

ltoption value=4gtMsltoptiongt

ltoption value=5gtDrltoptiongt

ltoption value=6gtProfessorltoptiongt

ltoption value=7gtThe Rt Revd Drltoptiongt

ltoption value=8gtThe Most Revdltoptiongt

ltoption value=9gtThe Rt Revdltoptiongt

ltoption value=10gtThe Revd Canonlt

optiongt

ltoption value=11gtThe Revdltoptiongt

ltoption value=12gtThe Rt Revd

Professorltoptiongt

ltoption value=13gtThe Venltoptiongt

ltoption value=14gtThe Most Revd Drlt

optiongt

ltoption value=16gtRabbiltoptiongt

ltoption value=17gtCanonltoptiongt

ltoption value=18gtDameltoptiongt

ltoption value=19gtChiefltoptiongt

ltoption value=20gtSisterltoptiongt

ltoption value=21gtReverendltoptiongt

ltoption value=22gtMajorltoptiongt

ltoption value=23gtOtherltoptiongt

ltoption value=24gtCllrltoptiongt

ltoption value=25gtSirltoptiongt

ltoption value=26gtRt Hon Lordltoptiongt

ltoption value=27gtRt Honltoptiongt

ltoption value=28gtThe Lord ltoptiongt

ltoption value=29gtViscountltoptiongt

ltoption value=30gtViscountessltoptiongt

ltoption value=31gtBaronessltoptiongt

ltoption value=32gtCaptainltoptiongt

ltoption value=33gtMasterltoptiongt

ltoption value=34gtVery Revdltoptiongt

ltoption value=35gtLadyltoptiongt

ltoption value=38gtMPltoptiongt

ltoption value=39gtKing of Kings and Lord

of Lordsltoptiongt

ltoption value=40gtConquering Lion of the

Tribe of Judahltoptiongt

ltoption value=41gtElect of God and Light

of this Worldltoptiongt

ltoption value=42gtHis Own Divine

Majestyltoptiongt

ltoption value=43gtFirst Ancient King of

Creationltoptiongt

ltoption value=44gtKing Alphaltoptiongt

ltoption value=45gtQueen Omegaltoptiongt

ltoption value=46gtBeginning with Our End

and First with Our Lastltoptiongt

ltoption value=47gtProtector of All Human

Faithltoptiongt

ltoption value=48gtRuler of the

Universeltoptiongt

ltoption value=49gtDudeltoptiongt

Sunday February 24 13

And the third problem is our faith that the first two problems here can be easily solved Just add more list items

cczona

Seeing more than 20 uncategorized options can be bewilderinghellip

mdashSmashing Magazine

Sunday February 24 13

So thats not gonna work

Also it risks looking like a dumbass

Social Networks

Sunday February 24 13

So heres the next flawed premise that we intuitively understand the nature of social networks

Stepping aside from how social networking has come to be implemented as technology -- what IS a social network What is it in purely human terms

cczona

Social network

Individuals and the dyadic ties between them

Interactions within a social group of exactly two people

Sunday February 24 13

[slide] Thats the real life that our apps are meant to replicate and build upon One-on-one As personal as our social selves get In social identity is a dependency

cczona

Developer amp user are in dyad too

How can I be better 11 partner with this person whohellip

bull is a current user

bull I hope will become a user

Sunday February 24 13

As developers we build -- or break -- community with each line of code What 11 relationships are we fostering between the individual and the app What relationships are we inhibiting between individuals

cczona

In real life

I know your personhood better than you

sounds presumptuous

Sunday February 24 13

cczona

In real life

sounds presumptuous

Sunday February 24 13

cczona

In real life

Who you are is invalid

sounds arrogant

Sunday February 24 13

cczona

In real life

sounds arrogant

Sunday February 24 13

cczona

In real life

Your existence isnt possible

sounds clueless

Sunday February 24 13

cczona

In real life

sounds clueless

Sunday February 24 13

cczona

Sunday February 24 13

Its not what we set out to do Its not the community we seek to build We want to create things that feel cutting edge -- not that seem out of touch with modern reality

cczona

Be conservative in what you do be liberal in what you accept from others

-Postels Law

Sunday February 24 13

[READ]

cczona

How do we bring modern realities into the data views logic

Sunday February 24 13

How DO we bring modern realities into the data views and logic We start at the schema

cczona

Sunday February 24 13

As developers were tugged in two directions keep the codebase manageable yet design for modern complexity

cczona

Get schemas into alignment

Sunday February 24 13

cczona

Mental Schema

bullSet of pre-conceived ideas

bullFramework for representing some aspect of the world

bullSystem of organizing amp perceiving new information

Sunday February 24 13

There are two kinds of schema [read]

cczona

Database Schema

bullStructure described in the databases language

bullBlueprint for database construction

bullDescribes how the real world is being modeled

Sunday February 24 13

Database schemas are basically the same thing Its a mental schema translated into blueprints for a database

cczona

create_table users force =gt true do |t| tstring username tstring email tstring passwordend

Sunday February 24 13

When you use Rails generate scaffold or Rails generate model it creates a migration Maybe you created something like this for instance Those migrations ultimately get translated into a unified schema to be used by the environments database

cczona

Sunday February 24 13

These are simply frontend manifestations of someones mental schema

cczona

Schemas are foundation for

expressing

things deeply intimate

Sunday February 24 13

cczona

Schemas are foundation for

expressing

self-image

Sunday February 24 13

cczona

Schemas are foundation for

expressing

identity

Sunday February 24 13

cczona

Schemas are foundation for

expressing

important relationships

Sunday February 24 13

cczona

Schemas are foundation for

expressing

values

Sunday February 24 13

cczona

Schemas are foundation for

expressing

spirit

creativity

uniqueness

Sunday February 24 13

cczona

Schemas define the

user experience

Sunday February 24 13

Schemas define user experience

cczona

Our schemas are leaving people behind

amp UX

Sunday February 24 13

[read]We can fix that

cczona

What benefit will the user notice

Sunday February 24 13

When developing a schema thats going to ask a person about their experiences feelings sense of self there isnt a single right way I can tell to do this What we can do is evaluate tradeoffs and ask What benefit will the user notice Thats not equivalent to How will the user benefit a question that grants too much latitude for assuming that what we want is of course to their benefit because its gonna help us deliver a product thats Awesome

cczona

Evaluating from user perspective gives us focus

Sunday February 24 13

[read]

cczona

Coerced Discretionary

Restricted Freeform

Guided

Corrective

Sunday February 24 13

Theres no point on this chart where everybody is seeing maximum benefit So lets look at the choices

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective Freeform

Sunday February 24 13

Checkboxs radio buttons and select menus imply that all possible values are represented Hey user just pick the right one (or ones) Its real world being rejected because it didnt happen to look like our mental schema

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective TextareaText

Sunday February 24 13

Checking a box is a one step action Entering a text string is not So a freeform solution such as a textarea or text field isnt automatically exciting Nevertheless a freeform field can deliver striking benefit to users

cczona

11 years

11 years

Sunday February 24 13

At MetaFilter gender has been a text field for over a decade

cczona

hellipthe early crowd at MeFi were often programmers and they hated the idea of dirty data collectionhellip

mdashMatt Haughey founder

Sunday February 24 13

Initially there were some who shuddered at the thought

cczona

All girl

XY

Braid runner

Fella

Fembot

Alto

It depends

MYOB

Dangly bits

Chicklet

Innie not outie

Convex

Sideburns

Ambisextrous

Member of the patriarchy

Sunday February 24 13

For about 5 seconds Then they jumped on board Because they could be creative and silly

cczona

I speak using the male gender when required by language

M but known to be flexible

50 quintessential tomboy 50 total girly-girl

Gender bo bender banana fanna fo lender fee fi mo

Sunday February 24 13

AND because they could express this THING about themselves fully With authentic voice

cczona

hellipit was one of the earliest indications Id landed in the right place

mdashMeFi user

Sunday February 24 13

That text field grew into a beloved institution What you as a user put into that field says something revealing who you are That youre allowed to put in anything -- or put in nothing -- says something revealing about what MetaFilter is meant to be for

cczona

8 years

11 years

4 years

11 years

Sunday February 24 13

That schemas trust in users was the foundation for the users to ASK to share themselves even more

cczona

Sunday February 24 13

Today MetaFilter users are trusted with many free-form fields including ones most developers instinctually constrain or thoroughly validate

cczona

Sunday February 24 13

Nonsensical values Hell yeah go for it Field values that blatantly contradict each other No objection to that either The message is hey user we get that this is YOUR OWN HOME Make it as comfortable personal and messy as you want to WE as developers can work with that

Social Research

Sunday February 24 13

When collecting data on people youre 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 two minimum criteria

ExhaustiveEvery possible option

Sunday February 24 13

A fields values must include every possible option

Mutually ExclusiveNo overlap exists between them

Sunday February 24 13

And the fields options must be mutually exclusive

How many social apps have both of those bare minimum criteria covered

cczona

Sunday February 24 13

Weve seen this one enough At least that set of values seems covered fully

cczona

Sunday February 24 13

But its not

cczona

Sunday February 24 13

Still not

Well never get there by adding more list items But thats fine Because instead we can choose to look at human data from a different perspective

cczona

Data doesnrsquot have to be for analysis

Sunday February 24 13

Its easy to get into the habit of structuring data for easy analysis But step back Wallow in the users perspective

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 14: Schemas for the Real World [RubyConf AU 2013]

cczona

ltoption value=1gtMrltoptiongt

ltoption value=2gtMrsltoptiongt

ltoption value=3gtMissltoptiongt

ltoption value=4gtMsltoptiongt

ltoption value=5gtDrltoptiongt

ltoption value=6gtProfessorltoptiongt

ltoption value=7gtThe Rt Revd Drltoptiongt

ltoption value=8gtThe Most Revdltoptiongt

ltoption value=9gtThe Rt Revdltoptiongt

ltoption value=10gtThe Revd Canonlt

optiongt

ltoption value=11gtThe Revdltoptiongt

ltoption value=12gtThe Rt Revd

Professorltoptiongt

ltoption value=13gtThe Venltoptiongt

ltoption value=14gtThe Most Revd Drlt

optiongt

ltoption value=16gtRabbiltoptiongt

ltoption value=17gtCanonltoptiongt

ltoption value=18gtDameltoptiongt

ltoption value=19gtChiefltoptiongt

ltoption value=20gtSisterltoptiongt

ltoption value=21gtReverendltoptiongt

ltoption value=22gtMajorltoptiongt

ltoption value=23gtOtherltoptiongt

ltoption value=24gtCllrltoptiongt

ltoption value=25gtSirltoptiongt

ltoption value=26gtRt Hon Lordltoptiongt

ltoption value=27gtRt Honltoptiongt

ltoption value=28gtThe Lord ltoptiongt

ltoption value=29gtViscountltoptiongt

ltoption value=30gtViscountessltoptiongt

ltoption value=31gtBaronessltoptiongt

ltoption value=32gtCaptainltoptiongt

ltoption value=33gtMasterltoptiongt

ltoption value=34gtVery Revdltoptiongt

ltoption value=35gtLadyltoptiongt

ltoption value=38gtMPltoptiongt

ltoption value=39gtKing of Kings and Lord

of Lordsltoptiongt

ltoption value=40gtConquering Lion of the

Tribe of Judahltoptiongt

ltoption value=41gtElect of God and Light

of this Worldltoptiongt

ltoption value=42gtHis Own Divine

Majestyltoptiongt

ltoption value=43gtFirst Ancient King of

Creationltoptiongt

ltoption value=44gtKing Alphaltoptiongt

ltoption value=45gtQueen Omegaltoptiongt

ltoption value=46gtBeginning with Our End

and First with Our Lastltoptiongt

ltoption value=47gtProtector of All Human

Faithltoptiongt

ltoption value=48gtRuler of the

Universeltoptiongt

ltoption value=49gtDudeltoptiongt

Sunday February 24 13

And the third problem is our faith that the first two problems here can be easily solved Just add more list items

cczona

Seeing more than 20 uncategorized options can be bewilderinghellip

mdashSmashing Magazine

Sunday February 24 13

So thats not gonna work

Also it risks looking like a dumbass

Social Networks

Sunday February 24 13

So heres the next flawed premise that we intuitively understand the nature of social networks

Stepping aside from how social networking has come to be implemented as technology -- what IS a social network What is it in purely human terms

cczona

Social network

Individuals and the dyadic ties between them

Interactions within a social group of exactly two people

Sunday February 24 13

[slide] Thats the real life that our apps are meant to replicate and build upon One-on-one As personal as our social selves get In social identity is a dependency

cczona

Developer amp user are in dyad too

How can I be better 11 partner with this person whohellip

bull is a current user

bull I hope will become a user

Sunday February 24 13

As developers we build -- or break -- community with each line of code What 11 relationships are we fostering between the individual and the app What relationships are we inhibiting between individuals

cczona

In real life

I know your personhood better than you

sounds presumptuous

Sunday February 24 13

cczona

In real life

sounds presumptuous

Sunday February 24 13

cczona

In real life

Who you are is invalid

sounds arrogant

Sunday February 24 13

cczona

In real life

sounds arrogant

Sunday February 24 13

cczona

In real life

Your existence isnt possible

sounds clueless

Sunday February 24 13

cczona

In real life

sounds clueless

Sunday February 24 13

cczona

Sunday February 24 13

Its not what we set out to do Its not the community we seek to build We want to create things that feel cutting edge -- not that seem out of touch with modern reality

cczona

Be conservative in what you do be liberal in what you accept from others

-Postels Law

Sunday February 24 13

[READ]

cczona

How do we bring modern realities into the data views logic

Sunday February 24 13

How DO we bring modern realities into the data views and logic We start at the schema

cczona

Sunday February 24 13

As developers were tugged in two directions keep the codebase manageable yet design for modern complexity

cczona

Get schemas into alignment

Sunday February 24 13

cczona

Mental Schema

bullSet of pre-conceived ideas

bullFramework for representing some aspect of the world

bullSystem of organizing amp perceiving new information

Sunday February 24 13

There are two kinds of schema [read]

cczona

Database Schema

bullStructure described in the databases language

bullBlueprint for database construction

bullDescribes how the real world is being modeled

Sunday February 24 13

Database schemas are basically the same thing Its a mental schema translated into blueprints for a database

cczona

create_table users force =gt true do |t| tstring username tstring email tstring passwordend

Sunday February 24 13

When you use Rails generate scaffold or Rails generate model it creates a migration Maybe you created something like this for instance Those migrations ultimately get translated into a unified schema to be used by the environments database

cczona

Sunday February 24 13

These are simply frontend manifestations of someones mental schema

cczona

Schemas are foundation for

expressing

things deeply intimate

Sunday February 24 13

cczona

Schemas are foundation for

expressing

self-image

Sunday February 24 13

cczona

Schemas are foundation for

expressing

identity

Sunday February 24 13

cczona

Schemas are foundation for

expressing

important relationships

Sunday February 24 13

cczona

Schemas are foundation for

expressing

values

Sunday February 24 13

cczona

Schemas are foundation for

expressing

spirit

creativity

uniqueness

Sunday February 24 13

cczona

Schemas define the

user experience

Sunday February 24 13

Schemas define user experience

cczona

Our schemas are leaving people behind

amp UX

Sunday February 24 13

[read]We can fix that

cczona

What benefit will the user notice

Sunday February 24 13

When developing a schema thats going to ask a person about their experiences feelings sense of self there isnt a single right way I can tell to do this What we can do is evaluate tradeoffs and ask What benefit will the user notice Thats not equivalent to How will the user benefit a question that grants too much latitude for assuming that what we want is of course to their benefit because its gonna help us deliver a product thats Awesome

cczona

Evaluating from user perspective gives us focus

Sunday February 24 13

[read]

cczona

Coerced Discretionary

Restricted Freeform

Guided

Corrective

Sunday February 24 13

Theres no point on this chart where everybody is seeing maximum benefit So lets look at the choices

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective Freeform

Sunday February 24 13

Checkboxs radio buttons and select menus imply that all possible values are represented Hey user just pick the right one (or ones) Its real world being rejected because it didnt happen to look like our mental schema

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective TextareaText

Sunday February 24 13

Checking a box is a one step action Entering a text string is not So a freeform solution such as a textarea or text field isnt automatically exciting Nevertheless a freeform field can deliver striking benefit to users

cczona

11 years

11 years

Sunday February 24 13

At MetaFilter gender has been a text field for over a decade

cczona

hellipthe early crowd at MeFi were often programmers and they hated the idea of dirty data collectionhellip

mdashMatt Haughey founder

Sunday February 24 13

Initially there were some who shuddered at the thought

cczona

All girl

XY

Braid runner

Fella

Fembot

Alto

It depends

MYOB

Dangly bits

Chicklet

Innie not outie

Convex

Sideburns

Ambisextrous

Member of the patriarchy

Sunday February 24 13

For about 5 seconds Then they jumped on board Because they could be creative and silly

cczona

I speak using the male gender when required by language

M but known to be flexible

50 quintessential tomboy 50 total girly-girl

Gender bo bender banana fanna fo lender fee fi mo

Sunday February 24 13

AND because they could express this THING about themselves fully With authentic voice

cczona

hellipit was one of the earliest indications Id landed in the right place

mdashMeFi user

Sunday February 24 13

That text field grew into a beloved institution What you as a user put into that field says something revealing who you are That youre allowed to put in anything -- or put in nothing -- says something revealing about what MetaFilter is meant to be for

cczona

8 years

11 years

4 years

11 years

Sunday February 24 13

That schemas trust in users was the foundation for the users to ASK to share themselves even more

cczona

Sunday February 24 13

Today MetaFilter users are trusted with many free-form fields including ones most developers instinctually constrain or thoroughly validate

cczona

Sunday February 24 13

Nonsensical values Hell yeah go for it Field values that blatantly contradict each other No objection to that either The message is hey user we get that this is YOUR OWN HOME Make it as comfortable personal and messy as you want to WE as developers can work with that

Social Research

Sunday February 24 13

When collecting data on people youre 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 two minimum criteria

ExhaustiveEvery possible option

Sunday February 24 13

A fields values must include every possible option

Mutually ExclusiveNo overlap exists between them

Sunday February 24 13

And the fields options must be mutually exclusive

How many social apps have both of those bare minimum criteria covered

cczona

Sunday February 24 13

Weve seen this one enough At least that set of values seems covered fully

cczona

Sunday February 24 13

But its not

cczona

Sunday February 24 13

Still not

Well never get there by adding more list items But thats fine Because instead we can choose to look at human data from a different perspective

cczona

Data doesnrsquot have to be for analysis

Sunday February 24 13

Its easy to get into the habit of structuring data for easy analysis But step back Wallow in the users perspective

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 15: Schemas for the Real World [RubyConf AU 2013]

cczona

Seeing more than 20 uncategorized options can be bewilderinghellip

mdashSmashing Magazine

Sunday February 24 13

So thats not gonna work

Also it risks looking like a dumbass

Social Networks

Sunday February 24 13

So heres the next flawed premise that we intuitively understand the nature of social networks

Stepping aside from how social networking has come to be implemented as technology -- what IS a social network What is it in purely human terms

cczona

Social network

Individuals and the dyadic ties between them

Interactions within a social group of exactly two people

Sunday February 24 13

[slide] Thats the real life that our apps are meant to replicate and build upon One-on-one As personal as our social selves get In social identity is a dependency

cczona

Developer amp user are in dyad too

How can I be better 11 partner with this person whohellip

bull is a current user

bull I hope will become a user

Sunday February 24 13

As developers we build -- or break -- community with each line of code What 11 relationships are we fostering between the individual and the app What relationships are we inhibiting between individuals

cczona

In real life

I know your personhood better than you

sounds presumptuous

Sunday February 24 13

cczona

In real life

sounds presumptuous

Sunday February 24 13

cczona

In real life

Who you are is invalid

sounds arrogant

Sunday February 24 13

cczona

In real life

sounds arrogant

Sunday February 24 13

cczona

In real life

Your existence isnt possible

sounds clueless

Sunday February 24 13

cczona

In real life

sounds clueless

Sunday February 24 13

cczona

Sunday February 24 13

Its not what we set out to do Its not the community we seek to build We want to create things that feel cutting edge -- not that seem out of touch with modern reality

cczona

Be conservative in what you do be liberal in what you accept from others

-Postels Law

Sunday February 24 13

[READ]

cczona

How do we bring modern realities into the data views logic

Sunday February 24 13

How DO we bring modern realities into the data views and logic We start at the schema

cczona

Sunday February 24 13

As developers were tugged in two directions keep the codebase manageable yet design for modern complexity

cczona

Get schemas into alignment

Sunday February 24 13

cczona

Mental Schema

bullSet of pre-conceived ideas

bullFramework for representing some aspect of the world

bullSystem of organizing amp perceiving new information

Sunday February 24 13

There are two kinds of schema [read]

cczona

Database Schema

bullStructure described in the databases language

bullBlueprint for database construction

bullDescribes how the real world is being modeled

Sunday February 24 13

Database schemas are basically the same thing Its a mental schema translated into blueprints for a database

cczona

create_table users force =gt true do |t| tstring username tstring email tstring passwordend

Sunday February 24 13

When you use Rails generate scaffold or Rails generate model it creates a migration Maybe you created something like this for instance Those migrations ultimately get translated into a unified schema to be used by the environments database

cczona

Sunday February 24 13

These are simply frontend manifestations of someones mental schema

cczona

Schemas are foundation for

expressing

things deeply intimate

Sunday February 24 13

cczona

Schemas are foundation for

expressing

self-image

Sunday February 24 13

cczona

Schemas are foundation for

expressing

identity

Sunday February 24 13

cczona

Schemas are foundation for

expressing

important relationships

Sunday February 24 13

cczona

Schemas are foundation for

expressing

values

Sunday February 24 13

cczona

Schemas are foundation for

expressing

spirit

creativity

uniqueness

Sunday February 24 13

cczona

Schemas define the

user experience

Sunday February 24 13

Schemas define user experience

cczona

Our schemas are leaving people behind

amp UX

Sunday February 24 13

[read]We can fix that

cczona

What benefit will the user notice

Sunday February 24 13

When developing a schema thats going to ask a person about their experiences feelings sense of self there isnt a single right way I can tell to do this What we can do is evaluate tradeoffs and ask What benefit will the user notice Thats not equivalent to How will the user benefit a question that grants too much latitude for assuming that what we want is of course to their benefit because its gonna help us deliver a product thats Awesome

cczona

Evaluating from user perspective gives us focus

Sunday February 24 13

[read]

cczona

Coerced Discretionary

Restricted Freeform

Guided

Corrective

Sunday February 24 13

Theres no point on this chart where everybody is seeing maximum benefit So lets look at the choices

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective Freeform

Sunday February 24 13

Checkboxs radio buttons and select menus imply that all possible values are represented Hey user just pick the right one (or ones) Its real world being rejected because it didnt happen to look like our mental schema

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective TextareaText

Sunday February 24 13

Checking a box is a one step action Entering a text string is not So a freeform solution such as a textarea or text field isnt automatically exciting Nevertheless a freeform field can deliver striking benefit to users

cczona

11 years

11 years

Sunday February 24 13

At MetaFilter gender has been a text field for over a decade

cczona

hellipthe early crowd at MeFi were often programmers and they hated the idea of dirty data collectionhellip

mdashMatt Haughey founder

Sunday February 24 13

Initially there were some who shuddered at the thought

cczona

All girl

XY

Braid runner

Fella

Fembot

Alto

It depends

MYOB

Dangly bits

Chicklet

Innie not outie

Convex

Sideburns

Ambisextrous

Member of the patriarchy

Sunday February 24 13

For about 5 seconds Then they jumped on board Because they could be creative and silly

cczona

I speak using the male gender when required by language

M but known to be flexible

50 quintessential tomboy 50 total girly-girl

Gender bo bender banana fanna fo lender fee fi mo

Sunday February 24 13

AND because they could express this THING about themselves fully With authentic voice

cczona

hellipit was one of the earliest indications Id landed in the right place

mdashMeFi user

Sunday February 24 13

That text field grew into a beloved institution What you as a user put into that field says something revealing who you are That youre allowed to put in anything -- or put in nothing -- says something revealing about what MetaFilter is meant to be for

cczona

8 years

11 years

4 years

11 years

Sunday February 24 13

That schemas trust in users was the foundation for the users to ASK to share themselves even more

cczona

Sunday February 24 13

Today MetaFilter users are trusted with many free-form fields including ones most developers instinctually constrain or thoroughly validate

cczona

Sunday February 24 13

Nonsensical values Hell yeah go for it Field values that blatantly contradict each other No objection to that either The message is hey user we get that this is YOUR OWN HOME Make it as comfortable personal and messy as you want to WE as developers can work with that

Social Research

Sunday February 24 13

When collecting data on people youre 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 two minimum criteria

ExhaustiveEvery possible option

Sunday February 24 13

A fields values must include every possible option

Mutually ExclusiveNo overlap exists between them

Sunday February 24 13

And the fields options must be mutually exclusive

How many social apps have both of those bare minimum criteria covered

cczona

Sunday February 24 13

Weve seen this one enough At least that set of values seems covered fully

cczona

Sunday February 24 13

But its not

cczona

Sunday February 24 13

Still not

Well never get there by adding more list items But thats fine Because instead we can choose to look at human data from a different perspective

cczona

Data doesnrsquot have to be for analysis

Sunday February 24 13

Its easy to get into the habit of structuring data for easy analysis But step back Wallow in the users perspective

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 16: Schemas for the Real World [RubyConf AU 2013]

Social Networks

Sunday February 24 13

So heres the next flawed premise that we intuitively understand the nature of social networks

Stepping aside from how social networking has come to be implemented as technology -- what IS a social network What is it in purely human terms

cczona

Social network

Individuals and the dyadic ties between them

Interactions within a social group of exactly two people

Sunday February 24 13

[slide] Thats the real life that our apps are meant to replicate and build upon One-on-one As personal as our social selves get In social identity is a dependency

cczona

Developer amp user are in dyad too

How can I be better 11 partner with this person whohellip

bull is a current user

bull I hope will become a user

Sunday February 24 13

As developers we build -- or break -- community with each line of code What 11 relationships are we fostering between the individual and the app What relationships are we inhibiting between individuals

cczona

In real life

I know your personhood better than you

sounds presumptuous

Sunday February 24 13

cczona

In real life

sounds presumptuous

Sunday February 24 13

cczona

In real life

Who you are is invalid

sounds arrogant

Sunday February 24 13

cczona

In real life

sounds arrogant

Sunday February 24 13

cczona

In real life

Your existence isnt possible

sounds clueless

Sunday February 24 13

cczona

In real life

sounds clueless

Sunday February 24 13

cczona

Sunday February 24 13

Its not what we set out to do Its not the community we seek to build We want to create things that feel cutting edge -- not that seem out of touch with modern reality

cczona

Be conservative in what you do be liberal in what you accept from others

-Postels Law

Sunday February 24 13

[READ]

cczona

How do we bring modern realities into the data views logic

Sunday February 24 13

How DO we bring modern realities into the data views and logic We start at the schema

cczona

Sunday February 24 13

As developers were tugged in two directions keep the codebase manageable yet design for modern complexity

cczona

Get schemas into alignment

Sunday February 24 13

cczona

Mental Schema

bullSet of pre-conceived ideas

bullFramework for representing some aspect of the world

bullSystem of organizing amp perceiving new information

Sunday February 24 13

There are two kinds of schema [read]

cczona

Database Schema

bullStructure described in the databases language

bullBlueprint for database construction

bullDescribes how the real world is being modeled

Sunday February 24 13

Database schemas are basically the same thing Its a mental schema translated into blueprints for a database

cczona

create_table users force =gt true do |t| tstring username tstring email tstring passwordend

Sunday February 24 13

When you use Rails generate scaffold or Rails generate model it creates a migration Maybe you created something like this for instance Those migrations ultimately get translated into a unified schema to be used by the environments database

cczona

Sunday February 24 13

These are simply frontend manifestations of someones mental schema

cczona

Schemas are foundation for

expressing

things deeply intimate

Sunday February 24 13

cczona

Schemas are foundation for

expressing

self-image

Sunday February 24 13

cczona

Schemas are foundation for

expressing

identity

Sunday February 24 13

cczona

Schemas are foundation for

expressing

important relationships

Sunday February 24 13

cczona

Schemas are foundation for

expressing

values

Sunday February 24 13

cczona

Schemas are foundation for

expressing

spirit

creativity

uniqueness

Sunday February 24 13

cczona

Schemas define the

user experience

Sunday February 24 13

Schemas define user experience

cczona

Our schemas are leaving people behind

amp UX

Sunday February 24 13

[read]We can fix that

cczona

What benefit will the user notice

Sunday February 24 13

When developing a schema thats going to ask a person about their experiences feelings sense of self there isnt a single right way I can tell to do this What we can do is evaluate tradeoffs and ask What benefit will the user notice Thats not equivalent to How will the user benefit a question that grants too much latitude for assuming that what we want is of course to their benefit because its gonna help us deliver a product thats Awesome

cczona

Evaluating from user perspective gives us focus

Sunday February 24 13

[read]

cczona

Coerced Discretionary

Restricted Freeform

Guided

Corrective

Sunday February 24 13

Theres no point on this chart where everybody is seeing maximum benefit So lets look at the choices

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective Freeform

Sunday February 24 13

Checkboxs radio buttons and select menus imply that all possible values are represented Hey user just pick the right one (or ones) Its real world being rejected because it didnt happen to look like our mental schema

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective TextareaText

Sunday February 24 13

Checking a box is a one step action Entering a text string is not So a freeform solution such as a textarea or text field isnt automatically exciting Nevertheless a freeform field can deliver striking benefit to users

cczona

11 years

11 years

Sunday February 24 13

At MetaFilter gender has been a text field for over a decade

cczona

hellipthe early crowd at MeFi were often programmers and they hated the idea of dirty data collectionhellip

mdashMatt Haughey founder

Sunday February 24 13

Initially there were some who shuddered at the thought

cczona

All girl

XY

Braid runner

Fella

Fembot

Alto

It depends

MYOB

Dangly bits

Chicklet

Innie not outie

Convex

Sideburns

Ambisextrous

Member of the patriarchy

Sunday February 24 13

For about 5 seconds Then they jumped on board Because they could be creative and silly

cczona

I speak using the male gender when required by language

M but known to be flexible

50 quintessential tomboy 50 total girly-girl

Gender bo bender banana fanna fo lender fee fi mo

Sunday February 24 13

AND because they could express this THING about themselves fully With authentic voice

cczona

hellipit was one of the earliest indications Id landed in the right place

mdashMeFi user

Sunday February 24 13

That text field grew into a beloved institution What you as a user put into that field says something revealing who you are That youre allowed to put in anything -- or put in nothing -- says something revealing about what MetaFilter is meant to be for

cczona

8 years

11 years

4 years

11 years

Sunday February 24 13

That schemas trust in users was the foundation for the users to ASK to share themselves even more

cczona

Sunday February 24 13

Today MetaFilter users are trusted with many free-form fields including ones most developers instinctually constrain or thoroughly validate

cczona

Sunday February 24 13

Nonsensical values Hell yeah go for it Field values that blatantly contradict each other No objection to that either The message is hey user we get that this is YOUR OWN HOME Make it as comfortable personal and messy as you want to WE as developers can work with that

Social Research

Sunday February 24 13

When collecting data on people youre 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 two minimum criteria

ExhaustiveEvery possible option

Sunday February 24 13

A fields values must include every possible option

Mutually ExclusiveNo overlap exists between them

Sunday February 24 13

And the fields options must be mutually exclusive

How many social apps have both of those bare minimum criteria covered

cczona

Sunday February 24 13

Weve seen this one enough At least that set of values seems covered fully

cczona

Sunday February 24 13

But its not

cczona

Sunday February 24 13

Still not

Well never get there by adding more list items But thats fine Because instead we can choose to look at human data from a different perspective

cczona

Data doesnrsquot have to be for analysis

Sunday February 24 13

Its easy to get into the habit of structuring data for easy analysis But step back Wallow in the users perspective

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 17: Schemas for the Real World [RubyConf AU 2013]

cczona

Social network

Individuals and the dyadic ties between them

Interactions within a social group of exactly two people

Sunday February 24 13

[slide] Thats the real life that our apps are meant to replicate and build upon One-on-one As personal as our social selves get In social identity is a dependency

cczona

Developer amp user are in dyad too

How can I be better 11 partner with this person whohellip

bull is a current user

bull I hope will become a user

Sunday February 24 13

As developers we build -- or break -- community with each line of code What 11 relationships are we fostering between the individual and the app What relationships are we inhibiting between individuals

cczona

In real life

I know your personhood better than you

sounds presumptuous

Sunday February 24 13

cczona

In real life

sounds presumptuous

Sunday February 24 13

cczona

In real life

Who you are is invalid

sounds arrogant

Sunday February 24 13

cczona

In real life

sounds arrogant

Sunday February 24 13

cczona

In real life

Your existence isnt possible

sounds clueless

Sunday February 24 13

cczona

In real life

sounds clueless

Sunday February 24 13

cczona

Sunday February 24 13

Its not what we set out to do Its not the community we seek to build We want to create things that feel cutting edge -- not that seem out of touch with modern reality

cczona

Be conservative in what you do be liberal in what you accept from others

-Postels Law

Sunday February 24 13

[READ]

cczona

How do we bring modern realities into the data views logic

Sunday February 24 13

How DO we bring modern realities into the data views and logic We start at the schema

cczona

Sunday February 24 13

As developers were tugged in two directions keep the codebase manageable yet design for modern complexity

cczona

Get schemas into alignment

Sunday February 24 13

cczona

Mental Schema

bullSet of pre-conceived ideas

bullFramework for representing some aspect of the world

bullSystem of organizing amp perceiving new information

Sunday February 24 13

There are two kinds of schema [read]

cczona

Database Schema

bullStructure described in the databases language

bullBlueprint for database construction

bullDescribes how the real world is being modeled

Sunday February 24 13

Database schemas are basically the same thing Its a mental schema translated into blueprints for a database

cczona

create_table users force =gt true do |t| tstring username tstring email tstring passwordend

Sunday February 24 13

When you use Rails generate scaffold or Rails generate model it creates a migration Maybe you created something like this for instance Those migrations ultimately get translated into a unified schema to be used by the environments database

cczona

Sunday February 24 13

These are simply frontend manifestations of someones mental schema

cczona

Schemas are foundation for

expressing

things deeply intimate

Sunday February 24 13

cczona

Schemas are foundation for

expressing

self-image

Sunday February 24 13

cczona

Schemas are foundation for

expressing

identity

Sunday February 24 13

cczona

Schemas are foundation for

expressing

important relationships

Sunday February 24 13

cczona

Schemas are foundation for

expressing

values

Sunday February 24 13

cczona

Schemas are foundation for

expressing

spirit

creativity

uniqueness

Sunday February 24 13

cczona

Schemas define the

user experience

Sunday February 24 13

Schemas define user experience

cczona

Our schemas are leaving people behind

amp UX

Sunday February 24 13

[read]We can fix that

cczona

What benefit will the user notice

Sunday February 24 13

When developing a schema thats going to ask a person about their experiences feelings sense of self there isnt a single right way I can tell to do this What we can do is evaluate tradeoffs and ask What benefit will the user notice Thats not equivalent to How will the user benefit a question that grants too much latitude for assuming that what we want is of course to their benefit because its gonna help us deliver a product thats Awesome

cczona

Evaluating from user perspective gives us focus

Sunday February 24 13

[read]

cczona

Coerced Discretionary

Restricted Freeform

Guided

Corrective

Sunday February 24 13

Theres no point on this chart where everybody is seeing maximum benefit So lets look at the choices

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective Freeform

Sunday February 24 13

Checkboxs radio buttons and select menus imply that all possible values are represented Hey user just pick the right one (or ones) Its real world being rejected because it didnt happen to look like our mental schema

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective TextareaText

Sunday February 24 13

Checking a box is a one step action Entering a text string is not So a freeform solution such as a textarea or text field isnt automatically exciting Nevertheless a freeform field can deliver striking benefit to users

cczona

11 years

11 years

Sunday February 24 13

At MetaFilter gender has been a text field for over a decade

cczona

hellipthe early crowd at MeFi were often programmers and they hated the idea of dirty data collectionhellip

mdashMatt Haughey founder

Sunday February 24 13

Initially there were some who shuddered at the thought

cczona

All girl

XY

Braid runner

Fella

Fembot

Alto

It depends

MYOB

Dangly bits

Chicklet

Innie not outie

Convex

Sideburns

Ambisextrous

Member of the patriarchy

Sunday February 24 13

For about 5 seconds Then they jumped on board Because they could be creative and silly

cczona

I speak using the male gender when required by language

M but known to be flexible

50 quintessential tomboy 50 total girly-girl

Gender bo bender banana fanna fo lender fee fi mo

Sunday February 24 13

AND because they could express this THING about themselves fully With authentic voice

cczona

hellipit was one of the earliest indications Id landed in the right place

mdashMeFi user

Sunday February 24 13

That text field grew into a beloved institution What you as a user put into that field says something revealing who you are That youre allowed to put in anything -- or put in nothing -- says something revealing about what MetaFilter is meant to be for

cczona

8 years

11 years

4 years

11 years

Sunday February 24 13

That schemas trust in users was the foundation for the users to ASK to share themselves even more

cczona

Sunday February 24 13

Today MetaFilter users are trusted with many free-form fields including ones most developers instinctually constrain or thoroughly validate

cczona

Sunday February 24 13

Nonsensical values Hell yeah go for it Field values that blatantly contradict each other No objection to that either The message is hey user we get that this is YOUR OWN HOME Make it as comfortable personal and messy as you want to WE as developers can work with that

Social Research

Sunday February 24 13

When collecting data on people youre 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 two minimum criteria

ExhaustiveEvery possible option

Sunday February 24 13

A fields values must include every possible option

Mutually ExclusiveNo overlap exists between them

Sunday February 24 13

And the fields options must be mutually exclusive

How many social apps have both of those bare minimum criteria covered

cczona

Sunday February 24 13

Weve seen this one enough At least that set of values seems covered fully

cczona

Sunday February 24 13

But its not

cczona

Sunday February 24 13

Still not

Well never get there by adding more list items But thats fine Because instead we can choose to look at human data from a different perspective

cczona

Data doesnrsquot have to be for analysis

Sunday February 24 13

Its easy to get into the habit of structuring data for easy analysis But step back Wallow in the users perspective

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 18: Schemas for the Real World [RubyConf AU 2013]

cczona

Developer amp user are in dyad too

How can I be better 11 partner with this person whohellip

bull is a current user

bull I hope will become a user

Sunday February 24 13

As developers we build -- or break -- community with each line of code What 11 relationships are we fostering between the individual and the app What relationships are we inhibiting between individuals

cczona

In real life

I know your personhood better than you

sounds presumptuous

Sunday February 24 13

cczona

In real life

sounds presumptuous

Sunday February 24 13

cczona

In real life

Who you are is invalid

sounds arrogant

Sunday February 24 13

cczona

In real life

sounds arrogant

Sunday February 24 13

cczona

In real life

Your existence isnt possible

sounds clueless

Sunday February 24 13

cczona

In real life

sounds clueless

Sunday February 24 13

cczona

Sunday February 24 13

Its not what we set out to do Its not the community we seek to build We want to create things that feel cutting edge -- not that seem out of touch with modern reality

cczona

Be conservative in what you do be liberal in what you accept from others

-Postels Law

Sunday February 24 13

[READ]

cczona

How do we bring modern realities into the data views logic

Sunday February 24 13

How DO we bring modern realities into the data views and logic We start at the schema

cczona

Sunday February 24 13

As developers were tugged in two directions keep the codebase manageable yet design for modern complexity

cczona

Get schemas into alignment

Sunday February 24 13

cczona

Mental Schema

bullSet of pre-conceived ideas

bullFramework for representing some aspect of the world

bullSystem of organizing amp perceiving new information

Sunday February 24 13

There are two kinds of schema [read]

cczona

Database Schema

bullStructure described in the databases language

bullBlueprint for database construction

bullDescribes how the real world is being modeled

Sunday February 24 13

Database schemas are basically the same thing Its a mental schema translated into blueprints for a database

cczona

create_table users force =gt true do |t| tstring username tstring email tstring passwordend

Sunday February 24 13

When you use Rails generate scaffold or Rails generate model it creates a migration Maybe you created something like this for instance Those migrations ultimately get translated into a unified schema to be used by the environments database

cczona

Sunday February 24 13

These are simply frontend manifestations of someones mental schema

cczona

Schemas are foundation for

expressing

things deeply intimate

Sunday February 24 13

cczona

Schemas are foundation for

expressing

self-image

Sunday February 24 13

cczona

Schemas are foundation for

expressing

identity

Sunday February 24 13

cczona

Schemas are foundation for

expressing

important relationships

Sunday February 24 13

cczona

Schemas are foundation for

expressing

values

Sunday February 24 13

cczona

Schemas are foundation for

expressing

spirit

creativity

uniqueness

Sunday February 24 13

cczona

Schemas define the

user experience

Sunday February 24 13

Schemas define user experience

cczona

Our schemas are leaving people behind

amp UX

Sunday February 24 13

[read]We can fix that

cczona

What benefit will the user notice

Sunday February 24 13

When developing a schema thats going to ask a person about their experiences feelings sense of self there isnt a single right way I can tell to do this What we can do is evaluate tradeoffs and ask What benefit will the user notice Thats not equivalent to How will the user benefit a question that grants too much latitude for assuming that what we want is of course to their benefit because its gonna help us deliver a product thats Awesome

cczona

Evaluating from user perspective gives us focus

Sunday February 24 13

[read]

cczona

Coerced Discretionary

Restricted Freeform

Guided

Corrective

Sunday February 24 13

Theres no point on this chart where everybody is seeing maximum benefit So lets look at the choices

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective Freeform

Sunday February 24 13

Checkboxs radio buttons and select menus imply that all possible values are represented Hey user just pick the right one (or ones) Its real world being rejected because it didnt happen to look like our mental schema

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective TextareaText

Sunday February 24 13

Checking a box is a one step action Entering a text string is not So a freeform solution such as a textarea or text field isnt automatically exciting Nevertheless a freeform field can deliver striking benefit to users

cczona

11 years

11 years

Sunday February 24 13

At MetaFilter gender has been a text field for over a decade

cczona

hellipthe early crowd at MeFi were often programmers and they hated the idea of dirty data collectionhellip

mdashMatt Haughey founder

Sunday February 24 13

Initially there were some who shuddered at the thought

cczona

All girl

XY

Braid runner

Fella

Fembot

Alto

It depends

MYOB

Dangly bits

Chicklet

Innie not outie

Convex

Sideburns

Ambisextrous

Member of the patriarchy

Sunday February 24 13

For about 5 seconds Then they jumped on board Because they could be creative and silly

cczona

I speak using the male gender when required by language

M but known to be flexible

50 quintessential tomboy 50 total girly-girl

Gender bo bender banana fanna fo lender fee fi mo

Sunday February 24 13

AND because they could express this THING about themselves fully With authentic voice

cczona

hellipit was one of the earliest indications Id landed in the right place

mdashMeFi user

Sunday February 24 13

That text field grew into a beloved institution What you as a user put into that field says something revealing who you are That youre allowed to put in anything -- or put in nothing -- says something revealing about what MetaFilter is meant to be for

cczona

8 years

11 years

4 years

11 years

Sunday February 24 13

That schemas trust in users was the foundation for the users to ASK to share themselves even more

cczona

Sunday February 24 13

Today MetaFilter users are trusted with many free-form fields including ones most developers instinctually constrain or thoroughly validate

cczona

Sunday February 24 13

Nonsensical values Hell yeah go for it Field values that blatantly contradict each other No objection to that either The message is hey user we get that this is YOUR OWN HOME Make it as comfortable personal and messy as you want to WE as developers can work with that

Social Research

Sunday February 24 13

When collecting data on people youre 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 two minimum criteria

ExhaustiveEvery possible option

Sunday February 24 13

A fields values must include every possible option

Mutually ExclusiveNo overlap exists between them

Sunday February 24 13

And the fields options must be mutually exclusive

How many social apps have both of those bare minimum criteria covered

cczona

Sunday February 24 13

Weve seen this one enough At least that set of values seems covered fully

cczona

Sunday February 24 13

But its not

cczona

Sunday February 24 13

Still not

Well never get there by adding more list items But thats fine Because instead we can choose to look at human data from a different perspective

cczona

Data doesnrsquot have to be for analysis

Sunday February 24 13

Its easy to get into the habit of structuring data for easy analysis But step back Wallow in the users perspective

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 19: Schemas for the Real World [RubyConf AU 2013]

cczona

In real life

I know your personhood better than you

sounds presumptuous

Sunday February 24 13

cczona

In real life

sounds presumptuous

Sunday February 24 13

cczona

In real life

Who you are is invalid

sounds arrogant

Sunday February 24 13

cczona

In real life

sounds arrogant

Sunday February 24 13

cczona

In real life

Your existence isnt possible

sounds clueless

Sunday February 24 13

cczona

In real life

sounds clueless

Sunday February 24 13

cczona

Sunday February 24 13

Its not what we set out to do Its not the community we seek to build We want to create things that feel cutting edge -- not that seem out of touch with modern reality

cczona

Be conservative in what you do be liberal in what you accept from others

-Postels Law

Sunday February 24 13

[READ]

cczona

How do we bring modern realities into the data views logic

Sunday February 24 13

How DO we bring modern realities into the data views and logic We start at the schema

cczona

Sunday February 24 13

As developers were tugged in two directions keep the codebase manageable yet design for modern complexity

cczona

Get schemas into alignment

Sunday February 24 13

cczona

Mental Schema

bullSet of pre-conceived ideas

bullFramework for representing some aspect of the world

bullSystem of organizing amp perceiving new information

Sunday February 24 13

There are two kinds of schema [read]

cczona

Database Schema

bullStructure described in the databases language

bullBlueprint for database construction

bullDescribes how the real world is being modeled

Sunday February 24 13

Database schemas are basically the same thing Its a mental schema translated into blueprints for a database

cczona

create_table users force =gt true do |t| tstring username tstring email tstring passwordend

Sunday February 24 13

When you use Rails generate scaffold or Rails generate model it creates a migration Maybe you created something like this for instance Those migrations ultimately get translated into a unified schema to be used by the environments database

cczona

Sunday February 24 13

These are simply frontend manifestations of someones mental schema

cczona

Schemas are foundation for

expressing

things deeply intimate

Sunday February 24 13

cczona

Schemas are foundation for

expressing

self-image

Sunday February 24 13

cczona

Schemas are foundation for

expressing

identity

Sunday February 24 13

cczona

Schemas are foundation for

expressing

important relationships

Sunday February 24 13

cczona

Schemas are foundation for

expressing

values

Sunday February 24 13

cczona

Schemas are foundation for

expressing

spirit

creativity

uniqueness

Sunday February 24 13

cczona

Schemas define the

user experience

Sunday February 24 13

Schemas define user experience

cczona

Our schemas are leaving people behind

amp UX

Sunday February 24 13

[read]We can fix that

cczona

What benefit will the user notice

Sunday February 24 13

When developing a schema thats going to ask a person about their experiences feelings sense of self there isnt a single right way I can tell to do this What we can do is evaluate tradeoffs and ask What benefit will the user notice Thats not equivalent to How will the user benefit a question that grants too much latitude for assuming that what we want is of course to their benefit because its gonna help us deliver a product thats Awesome

cczona

Evaluating from user perspective gives us focus

Sunday February 24 13

[read]

cczona

Coerced Discretionary

Restricted Freeform

Guided

Corrective

Sunday February 24 13

Theres no point on this chart where everybody is seeing maximum benefit So lets look at the choices

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective Freeform

Sunday February 24 13

Checkboxs radio buttons and select menus imply that all possible values are represented Hey user just pick the right one (or ones) Its real world being rejected because it didnt happen to look like our mental schema

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective TextareaText

Sunday February 24 13

Checking a box is a one step action Entering a text string is not So a freeform solution such as a textarea or text field isnt automatically exciting Nevertheless a freeform field can deliver striking benefit to users

cczona

11 years

11 years

Sunday February 24 13

At MetaFilter gender has been a text field for over a decade

cczona

hellipthe early crowd at MeFi were often programmers and they hated the idea of dirty data collectionhellip

mdashMatt Haughey founder

Sunday February 24 13

Initially there were some who shuddered at the thought

cczona

All girl

XY

Braid runner

Fella

Fembot

Alto

It depends

MYOB

Dangly bits

Chicklet

Innie not outie

Convex

Sideburns

Ambisextrous

Member of the patriarchy

Sunday February 24 13

For about 5 seconds Then they jumped on board Because they could be creative and silly

cczona

I speak using the male gender when required by language

M but known to be flexible

50 quintessential tomboy 50 total girly-girl

Gender bo bender banana fanna fo lender fee fi mo

Sunday February 24 13

AND because they could express this THING about themselves fully With authentic voice

cczona

hellipit was one of the earliest indications Id landed in the right place

mdashMeFi user

Sunday February 24 13

That text field grew into a beloved institution What you as a user put into that field says something revealing who you are That youre allowed to put in anything -- or put in nothing -- says something revealing about what MetaFilter is meant to be for

cczona

8 years

11 years

4 years

11 years

Sunday February 24 13

That schemas trust in users was the foundation for the users to ASK to share themselves even more

cczona

Sunday February 24 13

Today MetaFilter users are trusted with many free-form fields including ones most developers instinctually constrain or thoroughly validate

cczona

Sunday February 24 13

Nonsensical values Hell yeah go for it Field values that blatantly contradict each other No objection to that either The message is hey user we get that this is YOUR OWN HOME Make it as comfortable personal and messy as you want to WE as developers can work with that

Social Research

Sunday February 24 13

When collecting data on people youre 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 two minimum criteria

ExhaustiveEvery possible option

Sunday February 24 13

A fields values must include every possible option

Mutually ExclusiveNo overlap exists between them

Sunday February 24 13

And the fields options must be mutually exclusive

How many social apps have both of those bare minimum criteria covered

cczona

Sunday February 24 13

Weve seen this one enough At least that set of values seems covered fully

cczona

Sunday February 24 13

But its not

cczona

Sunday February 24 13

Still not

Well never get there by adding more list items But thats fine Because instead we can choose to look at human data from a different perspective

cczona

Data doesnrsquot have to be for analysis

Sunday February 24 13

Its easy to get into the habit of structuring data for easy analysis But step back Wallow in the users perspective

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 20: Schemas for the Real World [RubyConf AU 2013]

cczona

In real life

sounds presumptuous

Sunday February 24 13

cczona

In real life

Who you are is invalid

sounds arrogant

Sunday February 24 13

cczona

In real life

sounds arrogant

Sunday February 24 13

cczona

In real life

Your existence isnt possible

sounds clueless

Sunday February 24 13

cczona

In real life

sounds clueless

Sunday February 24 13

cczona

Sunday February 24 13

Its not what we set out to do Its not the community we seek to build We want to create things that feel cutting edge -- not that seem out of touch with modern reality

cczona

Be conservative in what you do be liberal in what you accept from others

-Postels Law

Sunday February 24 13

[READ]

cczona

How do we bring modern realities into the data views logic

Sunday February 24 13

How DO we bring modern realities into the data views and logic We start at the schema

cczona

Sunday February 24 13

As developers were tugged in two directions keep the codebase manageable yet design for modern complexity

cczona

Get schemas into alignment

Sunday February 24 13

cczona

Mental Schema

bullSet of pre-conceived ideas

bullFramework for representing some aspect of the world

bullSystem of organizing amp perceiving new information

Sunday February 24 13

There are two kinds of schema [read]

cczona

Database Schema

bullStructure described in the databases language

bullBlueprint for database construction

bullDescribes how the real world is being modeled

Sunday February 24 13

Database schemas are basically the same thing Its a mental schema translated into blueprints for a database

cczona

create_table users force =gt true do |t| tstring username tstring email tstring passwordend

Sunday February 24 13

When you use Rails generate scaffold or Rails generate model it creates a migration Maybe you created something like this for instance Those migrations ultimately get translated into a unified schema to be used by the environments database

cczona

Sunday February 24 13

These are simply frontend manifestations of someones mental schema

cczona

Schemas are foundation for

expressing

things deeply intimate

Sunday February 24 13

cczona

Schemas are foundation for

expressing

self-image

Sunday February 24 13

cczona

Schemas are foundation for

expressing

identity

Sunday February 24 13

cczona

Schemas are foundation for

expressing

important relationships

Sunday February 24 13

cczona

Schemas are foundation for

expressing

values

Sunday February 24 13

cczona

Schemas are foundation for

expressing

spirit

creativity

uniqueness

Sunday February 24 13

cczona

Schemas define the

user experience

Sunday February 24 13

Schemas define user experience

cczona

Our schemas are leaving people behind

amp UX

Sunday February 24 13

[read]We can fix that

cczona

What benefit will the user notice

Sunday February 24 13

When developing a schema thats going to ask a person about their experiences feelings sense of self there isnt a single right way I can tell to do this What we can do is evaluate tradeoffs and ask What benefit will the user notice Thats not equivalent to How will the user benefit a question that grants too much latitude for assuming that what we want is of course to their benefit because its gonna help us deliver a product thats Awesome

cczona

Evaluating from user perspective gives us focus

Sunday February 24 13

[read]

cczona

Coerced Discretionary

Restricted Freeform

Guided

Corrective

Sunday February 24 13

Theres no point on this chart where everybody is seeing maximum benefit So lets look at the choices

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective Freeform

Sunday February 24 13

Checkboxs radio buttons and select menus imply that all possible values are represented Hey user just pick the right one (or ones) Its real world being rejected because it didnt happen to look like our mental schema

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective TextareaText

Sunday February 24 13

Checking a box is a one step action Entering a text string is not So a freeform solution such as a textarea or text field isnt automatically exciting Nevertheless a freeform field can deliver striking benefit to users

cczona

11 years

11 years

Sunday February 24 13

At MetaFilter gender has been a text field for over a decade

cczona

hellipthe early crowd at MeFi were often programmers and they hated the idea of dirty data collectionhellip

mdashMatt Haughey founder

Sunday February 24 13

Initially there were some who shuddered at the thought

cczona

All girl

XY

Braid runner

Fella

Fembot

Alto

It depends

MYOB

Dangly bits

Chicklet

Innie not outie

Convex

Sideburns

Ambisextrous

Member of the patriarchy

Sunday February 24 13

For about 5 seconds Then they jumped on board Because they could be creative and silly

cczona

I speak using the male gender when required by language

M but known to be flexible

50 quintessential tomboy 50 total girly-girl

Gender bo bender banana fanna fo lender fee fi mo

Sunday February 24 13

AND because they could express this THING about themselves fully With authentic voice

cczona

hellipit was one of the earliest indications Id landed in the right place

mdashMeFi user

Sunday February 24 13

That text field grew into a beloved institution What you as a user put into that field says something revealing who you are That youre allowed to put in anything -- or put in nothing -- says something revealing about what MetaFilter is meant to be for

cczona

8 years

11 years

4 years

11 years

Sunday February 24 13

That schemas trust in users was the foundation for the users to ASK to share themselves even more

cczona

Sunday February 24 13

Today MetaFilter users are trusted with many free-form fields including ones most developers instinctually constrain or thoroughly validate

cczona

Sunday February 24 13

Nonsensical values Hell yeah go for it Field values that blatantly contradict each other No objection to that either The message is hey user we get that this is YOUR OWN HOME Make it as comfortable personal and messy as you want to WE as developers can work with that

Social Research

Sunday February 24 13

When collecting data on people youre 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 two minimum criteria

ExhaustiveEvery possible option

Sunday February 24 13

A fields values must include every possible option

Mutually ExclusiveNo overlap exists between them

Sunday February 24 13

And the fields options must be mutually exclusive

How many social apps have both of those bare minimum criteria covered

cczona

Sunday February 24 13

Weve seen this one enough At least that set of values seems covered fully

cczona

Sunday February 24 13

But its not

cczona

Sunday February 24 13

Still not

Well never get there by adding more list items But thats fine Because instead we can choose to look at human data from a different perspective

cczona

Data doesnrsquot have to be for analysis

Sunday February 24 13

Its easy to get into the habit of structuring data for easy analysis But step back Wallow in the users perspective

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 21: Schemas for the Real World [RubyConf AU 2013]

cczona

In real life

Who you are is invalid

sounds arrogant

Sunday February 24 13

cczona

In real life

sounds arrogant

Sunday February 24 13

cczona

In real life

Your existence isnt possible

sounds clueless

Sunday February 24 13

cczona

In real life

sounds clueless

Sunday February 24 13

cczona

Sunday February 24 13

Its not what we set out to do Its not the community we seek to build We want to create things that feel cutting edge -- not that seem out of touch with modern reality

cczona

Be conservative in what you do be liberal in what you accept from others

-Postels Law

Sunday February 24 13

[READ]

cczona

How do we bring modern realities into the data views logic

Sunday February 24 13

How DO we bring modern realities into the data views and logic We start at the schema

cczona

Sunday February 24 13

As developers were tugged in two directions keep the codebase manageable yet design for modern complexity

cczona

Get schemas into alignment

Sunday February 24 13

cczona

Mental Schema

bullSet of pre-conceived ideas

bullFramework for representing some aspect of the world

bullSystem of organizing amp perceiving new information

Sunday February 24 13

There are two kinds of schema [read]

cczona

Database Schema

bullStructure described in the databases language

bullBlueprint for database construction

bullDescribes how the real world is being modeled

Sunday February 24 13

Database schemas are basically the same thing Its a mental schema translated into blueprints for a database

cczona

create_table users force =gt true do |t| tstring username tstring email tstring passwordend

Sunday February 24 13

When you use Rails generate scaffold or Rails generate model it creates a migration Maybe you created something like this for instance Those migrations ultimately get translated into a unified schema to be used by the environments database

cczona

Sunday February 24 13

These are simply frontend manifestations of someones mental schema

cczona

Schemas are foundation for

expressing

things deeply intimate

Sunday February 24 13

cczona

Schemas are foundation for

expressing

self-image

Sunday February 24 13

cczona

Schemas are foundation for

expressing

identity

Sunday February 24 13

cczona

Schemas are foundation for

expressing

important relationships

Sunday February 24 13

cczona

Schemas are foundation for

expressing

values

Sunday February 24 13

cczona

Schemas are foundation for

expressing

spirit

creativity

uniqueness

Sunday February 24 13

cczona

Schemas define the

user experience

Sunday February 24 13

Schemas define user experience

cczona

Our schemas are leaving people behind

amp UX

Sunday February 24 13

[read]We can fix that

cczona

What benefit will the user notice

Sunday February 24 13

When developing a schema thats going to ask a person about their experiences feelings sense of self there isnt a single right way I can tell to do this What we can do is evaluate tradeoffs and ask What benefit will the user notice Thats not equivalent to How will the user benefit a question that grants too much latitude for assuming that what we want is of course to their benefit because its gonna help us deliver a product thats Awesome

cczona

Evaluating from user perspective gives us focus

Sunday February 24 13

[read]

cczona

Coerced Discretionary

Restricted Freeform

Guided

Corrective

Sunday February 24 13

Theres no point on this chart where everybody is seeing maximum benefit So lets look at the choices

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective Freeform

Sunday February 24 13

Checkboxs radio buttons and select menus imply that all possible values are represented Hey user just pick the right one (or ones) Its real world being rejected because it didnt happen to look like our mental schema

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective TextareaText

Sunday February 24 13

Checking a box is a one step action Entering a text string is not So a freeform solution such as a textarea or text field isnt automatically exciting Nevertheless a freeform field can deliver striking benefit to users

cczona

11 years

11 years

Sunday February 24 13

At MetaFilter gender has been a text field for over a decade

cczona

hellipthe early crowd at MeFi were often programmers and they hated the idea of dirty data collectionhellip

mdashMatt Haughey founder

Sunday February 24 13

Initially there were some who shuddered at the thought

cczona

All girl

XY

Braid runner

Fella

Fembot

Alto

It depends

MYOB

Dangly bits

Chicklet

Innie not outie

Convex

Sideburns

Ambisextrous

Member of the patriarchy

Sunday February 24 13

For about 5 seconds Then they jumped on board Because they could be creative and silly

cczona

I speak using the male gender when required by language

M but known to be flexible

50 quintessential tomboy 50 total girly-girl

Gender bo bender banana fanna fo lender fee fi mo

Sunday February 24 13

AND because they could express this THING about themselves fully With authentic voice

cczona

hellipit was one of the earliest indications Id landed in the right place

mdashMeFi user

Sunday February 24 13

That text field grew into a beloved institution What you as a user put into that field says something revealing who you are That youre allowed to put in anything -- or put in nothing -- says something revealing about what MetaFilter is meant to be for

cczona

8 years

11 years

4 years

11 years

Sunday February 24 13

That schemas trust in users was the foundation for the users to ASK to share themselves even more

cczona

Sunday February 24 13

Today MetaFilter users are trusted with many free-form fields including ones most developers instinctually constrain or thoroughly validate

cczona

Sunday February 24 13

Nonsensical values Hell yeah go for it Field values that blatantly contradict each other No objection to that either The message is hey user we get that this is YOUR OWN HOME Make it as comfortable personal and messy as you want to WE as developers can work with that

Social Research

Sunday February 24 13

When collecting data on people youre 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 two minimum criteria

ExhaustiveEvery possible option

Sunday February 24 13

A fields values must include every possible option

Mutually ExclusiveNo overlap exists between them

Sunday February 24 13

And the fields options must be mutually exclusive

How many social apps have both of those bare minimum criteria covered

cczona

Sunday February 24 13

Weve seen this one enough At least that set of values seems covered fully

cczona

Sunday February 24 13

But its not

cczona

Sunday February 24 13

Still not

Well never get there by adding more list items But thats fine Because instead we can choose to look at human data from a different perspective

cczona

Data doesnrsquot have to be for analysis

Sunday February 24 13

Its easy to get into the habit of structuring data for easy analysis But step back Wallow in the users perspective

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 22: Schemas for the Real World [RubyConf AU 2013]

cczona

In real life

sounds arrogant

Sunday February 24 13

cczona

In real life

Your existence isnt possible

sounds clueless

Sunday February 24 13

cczona

In real life

sounds clueless

Sunday February 24 13

cczona

Sunday February 24 13

Its not what we set out to do Its not the community we seek to build We want to create things that feel cutting edge -- not that seem out of touch with modern reality

cczona

Be conservative in what you do be liberal in what you accept from others

-Postels Law

Sunday February 24 13

[READ]

cczona

How do we bring modern realities into the data views logic

Sunday February 24 13

How DO we bring modern realities into the data views and logic We start at the schema

cczona

Sunday February 24 13

As developers were tugged in two directions keep the codebase manageable yet design for modern complexity

cczona

Get schemas into alignment

Sunday February 24 13

cczona

Mental Schema

bullSet of pre-conceived ideas

bullFramework for representing some aspect of the world

bullSystem of organizing amp perceiving new information

Sunday February 24 13

There are two kinds of schema [read]

cczona

Database Schema

bullStructure described in the databases language

bullBlueprint for database construction

bullDescribes how the real world is being modeled

Sunday February 24 13

Database schemas are basically the same thing Its a mental schema translated into blueprints for a database

cczona

create_table users force =gt true do |t| tstring username tstring email tstring passwordend

Sunday February 24 13

When you use Rails generate scaffold or Rails generate model it creates a migration Maybe you created something like this for instance Those migrations ultimately get translated into a unified schema to be used by the environments database

cczona

Sunday February 24 13

These are simply frontend manifestations of someones mental schema

cczona

Schemas are foundation for

expressing

things deeply intimate

Sunday February 24 13

cczona

Schemas are foundation for

expressing

self-image

Sunday February 24 13

cczona

Schemas are foundation for

expressing

identity

Sunday February 24 13

cczona

Schemas are foundation for

expressing

important relationships

Sunday February 24 13

cczona

Schemas are foundation for

expressing

values

Sunday February 24 13

cczona

Schemas are foundation for

expressing

spirit

creativity

uniqueness

Sunday February 24 13

cczona

Schemas define the

user experience

Sunday February 24 13

Schemas define user experience

cczona

Our schemas are leaving people behind

amp UX

Sunday February 24 13

[read]We can fix that

cczona

What benefit will the user notice

Sunday February 24 13

When developing a schema thats going to ask a person about their experiences feelings sense of self there isnt a single right way I can tell to do this What we can do is evaluate tradeoffs and ask What benefit will the user notice Thats not equivalent to How will the user benefit a question that grants too much latitude for assuming that what we want is of course to their benefit because its gonna help us deliver a product thats Awesome

cczona

Evaluating from user perspective gives us focus

Sunday February 24 13

[read]

cczona

Coerced Discretionary

Restricted Freeform

Guided

Corrective

Sunday February 24 13

Theres no point on this chart where everybody is seeing maximum benefit So lets look at the choices

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective Freeform

Sunday February 24 13

Checkboxs radio buttons and select menus imply that all possible values are represented Hey user just pick the right one (or ones) Its real world being rejected because it didnt happen to look like our mental schema

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective TextareaText

Sunday February 24 13

Checking a box is a one step action Entering a text string is not So a freeform solution such as a textarea or text field isnt automatically exciting Nevertheless a freeform field can deliver striking benefit to users

cczona

11 years

11 years

Sunday February 24 13

At MetaFilter gender has been a text field for over a decade

cczona

hellipthe early crowd at MeFi were often programmers and they hated the idea of dirty data collectionhellip

mdashMatt Haughey founder

Sunday February 24 13

Initially there were some who shuddered at the thought

cczona

All girl

XY

Braid runner

Fella

Fembot

Alto

It depends

MYOB

Dangly bits

Chicklet

Innie not outie

Convex

Sideburns

Ambisextrous

Member of the patriarchy

Sunday February 24 13

For about 5 seconds Then they jumped on board Because they could be creative and silly

cczona

I speak using the male gender when required by language

M but known to be flexible

50 quintessential tomboy 50 total girly-girl

Gender bo bender banana fanna fo lender fee fi mo

Sunday February 24 13

AND because they could express this THING about themselves fully With authentic voice

cczona

hellipit was one of the earliest indications Id landed in the right place

mdashMeFi user

Sunday February 24 13

That text field grew into a beloved institution What you as a user put into that field says something revealing who you are That youre allowed to put in anything -- or put in nothing -- says something revealing about what MetaFilter is meant to be for

cczona

8 years

11 years

4 years

11 years

Sunday February 24 13

That schemas trust in users was the foundation for the users to ASK to share themselves even more

cczona

Sunday February 24 13

Today MetaFilter users are trusted with many free-form fields including ones most developers instinctually constrain or thoroughly validate

cczona

Sunday February 24 13

Nonsensical values Hell yeah go for it Field values that blatantly contradict each other No objection to that either The message is hey user we get that this is YOUR OWN HOME Make it as comfortable personal and messy as you want to WE as developers can work with that

Social Research

Sunday February 24 13

When collecting data on people youre 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 two minimum criteria

ExhaustiveEvery possible option

Sunday February 24 13

A fields values must include every possible option

Mutually ExclusiveNo overlap exists between them

Sunday February 24 13

And the fields options must be mutually exclusive

How many social apps have both of those bare minimum criteria covered

cczona

Sunday February 24 13

Weve seen this one enough At least that set of values seems covered fully

cczona

Sunday February 24 13

But its not

cczona

Sunday February 24 13

Still not

Well never get there by adding more list items But thats fine Because instead we can choose to look at human data from a different perspective

cczona

Data doesnrsquot have to be for analysis

Sunday February 24 13

Its easy to get into the habit of structuring data for easy analysis But step back Wallow in the users perspective

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 23: Schemas for the Real World [RubyConf AU 2013]

cczona

In real life

Your existence isnt possible

sounds clueless

Sunday February 24 13

cczona

In real life

sounds clueless

Sunday February 24 13

cczona

Sunday February 24 13

Its not what we set out to do Its not the community we seek to build We want to create things that feel cutting edge -- not that seem out of touch with modern reality

cczona

Be conservative in what you do be liberal in what you accept from others

-Postels Law

Sunday February 24 13

[READ]

cczona

How do we bring modern realities into the data views logic

Sunday February 24 13

How DO we bring modern realities into the data views and logic We start at the schema

cczona

Sunday February 24 13

As developers were tugged in two directions keep the codebase manageable yet design for modern complexity

cczona

Get schemas into alignment

Sunday February 24 13

cczona

Mental Schema

bullSet of pre-conceived ideas

bullFramework for representing some aspect of the world

bullSystem of organizing amp perceiving new information

Sunday February 24 13

There are two kinds of schema [read]

cczona

Database Schema

bullStructure described in the databases language

bullBlueprint for database construction

bullDescribes how the real world is being modeled

Sunday February 24 13

Database schemas are basically the same thing Its a mental schema translated into blueprints for a database

cczona

create_table users force =gt true do |t| tstring username tstring email tstring passwordend

Sunday February 24 13

When you use Rails generate scaffold or Rails generate model it creates a migration Maybe you created something like this for instance Those migrations ultimately get translated into a unified schema to be used by the environments database

cczona

Sunday February 24 13

These are simply frontend manifestations of someones mental schema

cczona

Schemas are foundation for

expressing

things deeply intimate

Sunday February 24 13

cczona

Schemas are foundation for

expressing

self-image

Sunday February 24 13

cczona

Schemas are foundation for

expressing

identity

Sunday February 24 13

cczona

Schemas are foundation for

expressing

important relationships

Sunday February 24 13

cczona

Schemas are foundation for

expressing

values

Sunday February 24 13

cczona

Schemas are foundation for

expressing

spirit

creativity

uniqueness

Sunday February 24 13

cczona

Schemas define the

user experience

Sunday February 24 13

Schemas define user experience

cczona

Our schemas are leaving people behind

amp UX

Sunday February 24 13

[read]We can fix that

cczona

What benefit will the user notice

Sunday February 24 13

When developing a schema thats going to ask a person about their experiences feelings sense of self there isnt a single right way I can tell to do this What we can do is evaluate tradeoffs and ask What benefit will the user notice Thats not equivalent to How will the user benefit a question that grants too much latitude for assuming that what we want is of course to their benefit because its gonna help us deliver a product thats Awesome

cczona

Evaluating from user perspective gives us focus

Sunday February 24 13

[read]

cczona

Coerced Discretionary

Restricted Freeform

Guided

Corrective

Sunday February 24 13

Theres no point on this chart where everybody is seeing maximum benefit So lets look at the choices

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective Freeform

Sunday February 24 13

Checkboxs radio buttons and select menus imply that all possible values are represented Hey user just pick the right one (or ones) Its real world being rejected because it didnt happen to look like our mental schema

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective TextareaText

Sunday February 24 13

Checking a box is a one step action Entering a text string is not So a freeform solution such as a textarea or text field isnt automatically exciting Nevertheless a freeform field can deliver striking benefit to users

cczona

11 years

11 years

Sunday February 24 13

At MetaFilter gender has been a text field for over a decade

cczona

hellipthe early crowd at MeFi were often programmers and they hated the idea of dirty data collectionhellip

mdashMatt Haughey founder

Sunday February 24 13

Initially there were some who shuddered at the thought

cczona

All girl

XY

Braid runner

Fella

Fembot

Alto

It depends

MYOB

Dangly bits

Chicklet

Innie not outie

Convex

Sideburns

Ambisextrous

Member of the patriarchy

Sunday February 24 13

For about 5 seconds Then they jumped on board Because they could be creative and silly

cczona

I speak using the male gender when required by language

M but known to be flexible

50 quintessential tomboy 50 total girly-girl

Gender bo bender banana fanna fo lender fee fi mo

Sunday February 24 13

AND because they could express this THING about themselves fully With authentic voice

cczona

hellipit was one of the earliest indications Id landed in the right place

mdashMeFi user

Sunday February 24 13

That text field grew into a beloved institution What you as a user put into that field says something revealing who you are That youre allowed to put in anything -- or put in nothing -- says something revealing about what MetaFilter is meant to be for

cczona

8 years

11 years

4 years

11 years

Sunday February 24 13

That schemas trust in users was the foundation for the users to ASK to share themselves even more

cczona

Sunday February 24 13

Today MetaFilter users are trusted with many free-form fields including ones most developers instinctually constrain or thoroughly validate

cczona

Sunday February 24 13

Nonsensical values Hell yeah go for it Field values that blatantly contradict each other No objection to that either The message is hey user we get that this is YOUR OWN HOME Make it as comfortable personal and messy as you want to WE as developers can work with that

Social Research

Sunday February 24 13

When collecting data on people youre 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 two minimum criteria

ExhaustiveEvery possible option

Sunday February 24 13

A fields values must include every possible option

Mutually ExclusiveNo overlap exists between them

Sunday February 24 13

And the fields options must be mutually exclusive

How many social apps have both of those bare minimum criteria covered

cczona

Sunday February 24 13

Weve seen this one enough At least that set of values seems covered fully

cczona

Sunday February 24 13

But its not

cczona

Sunday February 24 13

Still not

Well never get there by adding more list items But thats fine Because instead we can choose to look at human data from a different perspective

cczona

Data doesnrsquot have to be for analysis

Sunday February 24 13

Its easy to get into the habit of structuring data for easy analysis But step back Wallow in the users perspective

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 24: Schemas for the Real World [RubyConf AU 2013]

cczona

In real life

sounds clueless

Sunday February 24 13

cczona

Sunday February 24 13

Its not what we set out to do Its not the community we seek to build We want to create things that feel cutting edge -- not that seem out of touch with modern reality

cczona

Be conservative in what you do be liberal in what you accept from others

-Postels Law

Sunday February 24 13

[READ]

cczona

How do we bring modern realities into the data views logic

Sunday February 24 13

How DO we bring modern realities into the data views and logic We start at the schema

cczona

Sunday February 24 13

As developers were tugged in two directions keep the codebase manageable yet design for modern complexity

cczona

Get schemas into alignment

Sunday February 24 13

cczona

Mental Schema

bullSet of pre-conceived ideas

bullFramework for representing some aspect of the world

bullSystem of organizing amp perceiving new information

Sunday February 24 13

There are two kinds of schema [read]

cczona

Database Schema

bullStructure described in the databases language

bullBlueprint for database construction

bullDescribes how the real world is being modeled

Sunday February 24 13

Database schemas are basically the same thing Its a mental schema translated into blueprints for a database

cczona

create_table users force =gt true do |t| tstring username tstring email tstring passwordend

Sunday February 24 13

When you use Rails generate scaffold or Rails generate model it creates a migration Maybe you created something like this for instance Those migrations ultimately get translated into a unified schema to be used by the environments database

cczona

Sunday February 24 13

These are simply frontend manifestations of someones mental schema

cczona

Schemas are foundation for

expressing

things deeply intimate

Sunday February 24 13

cczona

Schemas are foundation for

expressing

self-image

Sunday February 24 13

cczona

Schemas are foundation for

expressing

identity

Sunday February 24 13

cczona

Schemas are foundation for

expressing

important relationships

Sunday February 24 13

cczona

Schemas are foundation for

expressing

values

Sunday February 24 13

cczona

Schemas are foundation for

expressing

spirit

creativity

uniqueness

Sunday February 24 13

cczona

Schemas define the

user experience

Sunday February 24 13

Schemas define user experience

cczona

Our schemas are leaving people behind

amp UX

Sunday February 24 13

[read]We can fix that

cczona

What benefit will the user notice

Sunday February 24 13

When developing a schema thats going to ask a person about their experiences feelings sense of self there isnt a single right way I can tell to do this What we can do is evaluate tradeoffs and ask What benefit will the user notice Thats not equivalent to How will the user benefit a question that grants too much latitude for assuming that what we want is of course to their benefit because its gonna help us deliver a product thats Awesome

cczona

Evaluating from user perspective gives us focus

Sunday February 24 13

[read]

cczona

Coerced Discretionary

Restricted Freeform

Guided

Corrective

Sunday February 24 13

Theres no point on this chart where everybody is seeing maximum benefit So lets look at the choices

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective Freeform

Sunday February 24 13

Checkboxs radio buttons and select menus imply that all possible values are represented Hey user just pick the right one (or ones) Its real world being rejected because it didnt happen to look like our mental schema

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective TextareaText

Sunday February 24 13

Checking a box is a one step action Entering a text string is not So a freeform solution such as a textarea or text field isnt automatically exciting Nevertheless a freeform field can deliver striking benefit to users

cczona

11 years

11 years

Sunday February 24 13

At MetaFilter gender has been a text field for over a decade

cczona

hellipthe early crowd at MeFi were often programmers and they hated the idea of dirty data collectionhellip

mdashMatt Haughey founder

Sunday February 24 13

Initially there were some who shuddered at the thought

cczona

All girl

XY

Braid runner

Fella

Fembot

Alto

It depends

MYOB

Dangly bits

Chicklet

Innie not outie

Convex

Sideburns

Ambisextrous

Member of the patriarchy

Sunday February 24 13

For about 5 seconds Then they jumped on board Because they could be creative and silly

cczona

I speak using the male gender when required by language

M but known to be flexible

50 quintessential tomboy 50 total girly-girl

Gender bo bender banana fanna fo lender fee fi mo

Sunday February 24 13

AND because they could express this THING about themselves fully With authentic voice

cczona

hellipit was one of the earliest indications Id landed in the right place

mdashMeFi user

Sunday February 24 13

That text field grew into a beloved institution What you as a user put into that field says something revealing who you are That youre allowed to put in anything -- or put in nothing -- says something revealing about what MetaFilter is meant to be for

cczona

8 years

11 years

4 years

11 years

Sunday February 24 13

That schemas trust in users was the foundation for the users to ASK to share themselves even more

cczona

Sunday February 24 13

Today MetaFilter users are trusted with many free-form fields including ones most developers instinctually constrain or thoroughly validate

cczona

Sunday February 24 13

Nonsensical values Hell yeah go for it Field values that blatantly contradict each other No objection to that either The message is hey user we get that this is YOUR OWN HOME Make it as comfortable personal and messy as you want to WE as developers can work with that

Social Research

Sunday February 24 13

When collecting data on people youre 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 two minimum criteria

ExhaustiveEvery possible option

Sunday February 24 13

A fields values must include every possible option

Mutually ExclusiveNo overlap exists between them

Sunday February 24 13

And the fields options must be mutually exclusive

How many social apps have both of those bare minimum criteria covered

cczona

Sunday February 24 13

Weve seen this one enough At least that set of values seems covered fully

cczona

Sunday February 24 13

But its not

cczona

Sunday February 24 13

Still not

Well never get there by adding more list items But thats fine Because instead we can choose to look at human data from a different perspective

cczona

Data doesnrsquot have to be for analysis

Sunday February 24 13

Its easy to get into the habit of structuring data for easy analysis But step back Wallow in the users perspective

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 25: Schemas for the Real World [RubyConf AU 2013]

cczona

Sunday February 24 13

Its not what we set out to do Its not the community we seek to build We want to create things that feel cutting edge -- not that seem out of touch with modern reality

cczona

Be conservative in what you do be liberal in what you accept from others

-Postels Law

Sunday February 24 13

[READ]

cczona

How do we bring modern realities into the data views logic

Sunday February 24 13

How DO we bring modern realities into the data views and logic We start at the schema

cczona

Sunday February 24 13

As developers were tugged in two directions keep the codebase manageable yet design for modern complexity

cczona

Get schemas into alignment

Sunday February 24 13

cczona

Mental Schema

bullSet of pre-conceived ideas

bullFramework for representing some aspect of the world

bullSystem of organizing amp perceiving new information

Sunday February 24 13

There are two kinds of schema [read]

cczona

Database Schema

bullStructure described in the databases language

bullBlueprint for database construction

bullDescribes how the real world is being modeled

Sunday February 24 13

Database schemas are basically the same thing Its a mental schema translated into blueprints for a database

cczona

create_table users force =gt true do |t| tstring username tstring email tstring passwordend

Sunday February 24 13

When you use Rails generate scaffold or Rails generate model it creates a migration Maybe you created something like this for instance Those migrations ultimately get translated into a unified schema to be used by the environments database

cczona

Sunday February 24 13

These are simply frontend manifestations of someones mental schema

cczona

Schemas are foundation for

expressing

things deeply intimate

Sunday February 24 13

cczona

Schemas are foundation for

expressing

self-image

Sunday February 24 13

cczona

Schemas are foundation for

expressing

identity

Sunday February 24 13

cczona

Schemas are foundation for

expressing

important relationships

Sunday February 24 13

cczona

Schemas are foundation for

expressing

values

Sunday February 24 13

cczona

Schemas are foundation for

expressing

spirit

creativity

uniqueness

Sunday February 24 13

cczona

Schemas define the

user experience

Sunday February 24 13

Schemas define user experience

cczona

Our schemas are leaving people behind

amp UX

Sunday February 24 13

[read]We can fix that

cczona

What benefit will the user notice

Sunday February 24 13

When developing a schema thats going to ask a person about their experiences feelings sense of self there isnt a single right way I can tell to do this What we can do is evaluate tradeoffs and ask What benefit will the user notice Thats not equivalent to How will the user benefit a question that grants too much latitude for assuming that what we want is of course to their benefit because its gonna help us deliver a product thats Awesome

cczona

Evaluating from user perspective gives us focus

Sunday February 24 13

[read]

cczona

Coerced Discretionary

Restricted Freeform

Guided

Corrective

Sunday February 24 13

Theres no point on this chart where everybody is seeing maximum benefit So lets look at the choices

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective Freeform

Sunday February 24 13

Checkboxs radio buttons and select menus imply that all possible values are represented Hey user just pick the right one (or ones) Its real world being rejected because it didnt happen to look like our mental schema

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective TextareaText

Sunday February 24 13

Checking a box is a one step action Entering a text string is not So a freeform solution such as a textarea or text field isnt automatically exciting Nevertheless a freeform field can deliver striking benefit to users

cczona

11 years

11 years

Sunday February 24 13

At MetaFilter gender has been a text field for over a decade

cczona

hellipthe early crowd at MeFi were often programmers and they hated the idea of dirty data collectionhellip

mdashMatt Haughey founder

Sunday February 24 13

Initially there were some who shuddered at the thought

cczona

All girl

XY

Braid runner

Fella

Fembot

Alto

It depends

MYOB

Dangly bits

Chicklet

Innie not outie

Convex

Sideburns

Ambisextrous

Member of the patriarchy

Sunday February 24 13

For about 5 seconds Then they jumped on board Because they could be creative and silly

cczona

I speak using the male gender when required by language

M but known to be flexible

50 quintessential tomboy 50 total girly-girl

Gender bo bender banana fanna fo lender fee fi mo

Sunday February 24 13

AND because they could express this THING about themselves fully With authentic voice

cczona

hellipit was one of the earliest indications Id landed in the right place

mdashMeFi user

Sunday February 24 13

That text field grew into a beloved institution What you as a user put into that field says something revealing who you are That youre allowed to put in anything -- or put in nothing -- says something revealing about what MetaFilter is meant to be for

cczona

8 years

11 years

4 years

11 years

Sunday February 24 13

That schemas trust in users was the foundation for the users to ASK to share themselves even more

cczona

Sunday February 24 13

Today MetaFilter users are trusted with many free-form fields including ones most developers instinctually constrain or thoroughly validate

cczona

Sunday February 24 13

Nonsensical values Hell yeah go for it Field values that blatantly contradict each other No objection to that either The message is hey user we get that this is YOUR OWN HOME Make it as comfortable personal and messy as you want to WE as developers can work with that

Social Research

Sunday February 24 13

When collecting data on people youre 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 two minimum criteria

ExhaustiveEvery possible option

Sunday February 24 13

A fields values must include every possible option

Mutually ExclusiveNo overlap exists between them

Sunday February 24 13

And the fields options must be mutually exclusive

How many social apps have both of those bare minimum criteria covered

cczona

Sunday February 24 13

Weve seen this one enough At least that set of values seems covered fully

cczona

Sunday February 24 13

But its not

cczona

Sunday February 24 13

Still not

Well never get there by adding more list items But thats fine Because instead we can choose to look at human data from a different perspective

cczona

Data doesnrsquot have to be for analysis

Sunday February 24 13

Its easy to get into the habit of structuring data for easy analysis But step back Wallow in the users perspective

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 26: Schemas for the Real World [RubyConf AU 2013]

cczona

Be conservative in what you do be liberal in what you accept from others

-Postels Law

Sunday February 24 13

[READ]

cczona

How do we bring modern realities into the data views logic

Sunday February 24 13

How DO we bring modern realities into the data views and logic We start at the schema

cczona

Sunday February 24 13

As developers were tugged in two directions keep the codebase manageable yet design for modern complexity

cczona

Get schemas into alignment

Sunday February 24 13

cczona

Mental Schema

bullSet of pre-conceived ideas

bullFramework for representing some aspect of the world

bullSystem of organizing amp perceiving new information

Sunday February 24 13

There are two kinds of schema [read]

cczona

Database Schema

bullStructure described in the databases language

bullBlueprint for database construction

bullDescribes how the real world is being modeled

Sunday February 24 13

Database schemas are basically the same thing Its a mental schema translated into blueprints for a database

cczona

create_table users force =gt true do |t| tstring username tstring email tstring passwordend

Sunday February 24 13

When you use Rails generate scaffold or Rails generate model it creates a migration Maybe you created something like this for instance Those migrations ultimately get translated into a unified schema to be used by the environments database

cczona

Sunday February 24 13

These are simply frontend manifestations of someones mental schema

cczona

Schemas are foundation for

expressing

things deeply intimate

Sunday February 24 13

cczona

Schemas are foundation for

expressing

self-image

Sunday February 24 13

cczona

Schemas are foundation for

expressing

identity

Sunday February 24 13

cczona

Schemas are foundation for

expressing

important relationships

Sunday February 24 13

cczona

Schemas are foundation for

expressing

values

Sunday February 24 13

cczona

Schemas are foundation for

expressing

spirit

creativity

uniqueness

Sunday February 24 13

cczona

Schemas define the

user experience

Sunday February 24 13

Schemas define user experience

cczona

Our schemas are leaving people behind

amp UX

Sunday February 24 13

[read]We can fix that

cczona

What benefit will the user notice

Sunday February 24 13

When developing a schema thats going to ask a person about their experiences feelings sense of self there isnt a single right way I can tell to do this What we can do is evaluate tradeoffs and ask What benefit will the user notice Thats not equivalent to How will the user benefit a question that grants too much latitude for assuming that what we want is of course to their benefit because its gonna help us deliver a product thats Awesome

cczona

Evaluating from user perspective gives us focus

Sunday February 24 13

[read]

cczona

Coerced Discretionary

Restricted Freeform

Guided

Corrective

Sunday February 24 13

Theres no point on this chart where everybody is seeing maximum benefit So lets look at the choices

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective Freeform

Sunday February 24 13

Checkboxs radio buttons and select menus imply that all possible values are represented Hey user just pick the right one (or ones) Its real world being rejected because it didnt happen to look like our mental schema

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective TextareaText

Sunday February 24 13

Checking a box is a one step action Entering a text string is not So a freeform solution such as a textarea or text field isnt automatically exciting Nevertheless a freeform field can deliver striking benefit to users

cczona

11 years

11 years

Sunday February 24 13

At MetaFilter gender has been a text field for over a decade

cczona

hellipthe early crowd at MeFi were often programmers and they hated the idea of dirty data collectionhellip

mdashMatt Haughey founder

Sunday February 24 13

Initially there were some who shuddered at the thought

cczona

All girl

XY

Braid runner

Fella

Fembot

Alto

It depends

MYOB

Dangly bits

Chicklet

Innie not outie

Convex

Sideburns

Ambisextrous

Member of the patriarchy

Sunday February 24 13

For about 5 seconds Then they jumped on board Because they could be creative and silly

cczona

I speak using the male gender when required by language

M but known to be flexible

50 quintessential tomboy 50 total girly-girl

Gender bo bender banana fanna fo lender fee fi mo

Sunday February 24 13

AND because they could express this THING about themselves fully With authentic voice

cczona

hellipit was one of the earliest indications Id landed in the right place

mdashMeFi user

Sunday February 24 13

That text field grew into a beloved institution What you as a user put into that field says something revealing who you are That youre allowed to put in anything -- or put in nothing -- says something revealing about what MetaFilter is meant to be for

cczona

8 years

11 years

4 years

11 years

Sunday February 24 13

That schemas trust in users was the foundation for the users to ASK to share themselves even more

cczona

Sunday February 24 13

Today MetaFilter users are trusted with many free-form fields including ones most developers instinctually constrain or thoroughly validate

cczona

Sunday February 24 13

Nonsensical values Hell yeah go for it Field values that blatantly contradict each other No objection to that either The message is hey user we get that this is YOUR OWN HOME Make it as comfortable personal and messy as you want to WE as developers can work with that

Social Research

Sunday February 24 13

When collecting data on people youre 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 two minimum criteria

ExhaustiveEvery possible option

Sunday February 24 13

A fields values must include every possible option

Mutually ExclusiveNo overlap exists between them

Sunday February 24 13

And the fields options must be mutually exclusive

How many social apps have both of those bare minimum criteria covered

cczona

Sunday February 24 13

Weve seen this one enough At least that set of values seems covered fully

cczona

Sunday February 24 13

But its not

cczona

Sunday February 24 13

Still not

Well never get there by adding more list items But thats fine Because instead we can choose to look at human data from a different perspective

cczona

Data doesnrsquot have to be for analysis

Sunday February 24 13

Its easy to get into the habit of structuring data for easy analysis But step back Wallow in the users perspective

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 27: Schemas for the Real World [RubyConf AU 2013]

cczona

How do we bring modern realities into the data views logic

Sunday February 24 13

How DO we bring modern realities into the data views and logic We start at the schema

cczona

Sunday February 24 13

As developers were tugged in two directions keep the codebase manageable yet design for modern complexity

cczona

Get schemas into alignment

Sunday February 24 13

cczona

Mental Schema

bullSet of pre-conceived ideas

bullFramework for representing some aspect of the world

bullSystem of organizing amp perceiving new information

Sunday February 24 13

There are two kinds of schema [read]

cczona

Database Schema

bullStructure described in the databases language

bullBlueprint for database construction

bullDescribes how the real world is being modeled

Sunday February 24 13

Database schemas are basically the same thing Its a mental schema translated into blueprints for a database

cczona

create_table users force =gt true do |t| tstring username tstring email tstring passwordend

Sunday February 24 13

When you use Rails generate scaffold or Rails generate model it creates a migration Maybe you created something like this for instance Those migrations ultimately get translated into a unified schema to be used by the environments database

cczona

Sunday February 24 13

These are simply frontend manifestations of someones mental schema

cczona

Schemas are foundation for

expressing

things deeply intimate

Sunday February 24 13

cczona

Schemas are foundation for

expressing

self-image

Sunday February 24 13

cczona

Schemas are foundation for

expressing

identity

Sunday February 24 13

cczona

Schemas are foundation for

expressing

important relationships

Sunday February 24 13

cczona

Schemas are foundation for

expressing

values

Sunday February 24 13

cczona

Schemas are foundation for

expressing

spirit

creativity

uniqueness

Sunday February 24 13

cczona

Schemas define the

user experience

Sunday February 24 13

Schemas define user experience

cczona

Our schemas are leaving people behind

amp UX

Sunday February 24 13

[read]We can fix that

cczona

What benefit will the user notice

Sunday February 24 13

When developing a schema thats going to ask a person about their experiences feelings sense of self there isnt a single right way I can tell to do this What we can do is evaluate tradeoffs and ask What benefit will the user notice Thats not equivalent to How will the user benefit a question that grants too much latitude for assuming that what we want is of course to their benefit because its gonna help us deliver a product thats Awesome

cczona

Evaluating from user perspective gives us focus

Sunday February 24 13

[read]

cczona

Coerced Discretionary

Restricted Freeform

Guided

Corrective

Sunday February 24 13

Theres no point on this chart where everybody is seeing maximum benefit So lets look at the choices

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective Freeform

Sunday February 24 13

Checkboxs radio buttons and select menus imply that all possible values are represented Hey user just pick the right one (or ones) Its real world being rejected because it didnt happen to look like our mental schema

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective TextareaText

Sunday February 24 13

Checking a box is a one step action Entering a text string is not So a freeform solution such as a textarea or text field isnt automatically exciting Nevertheless a freeform field can deliver striking benefit to users

cczona

11 years

11 years

Sunday February 24 13

At MetaFilter gender has been a text field for over a decade

cczona

hellipthe early crowd at MeFi were often programmers and they hated the idea of dirty data collectionhellip

mdashMatt Haughey founder

Sunday February 24 13

Initially there were some who shuddered at the thought

cczona

All girl

XY

Braid runner

Fella

Fembot

Alto

It depends

MYOB

Dangly bits

Chicklet

Innie not outie

Convex

Sideburns

Ambisextrous

Member of the patriarchy

Sunday February 24 13

For about 5 seconds Then they jumped on board Because they could be creative and silly

cczona

I speak using the male gender when required by language

M but known to be flexible

50 quintessential tomboy 50 total girly-girl

Gender bo bender banana fanna fo lender fee fi mo

Sunday February 24 13

AND because they could express this THING about themselves fully With authentic voice

cczona

hellipit was one of the earliest indications Id landed in the right place

mdashMeFi user

Sunday February 24 13

That text field grew into a beloved institution What you as a user put into that field says something revealing who you are That youre allowed to put in anything -- or put in nothing -- says something revealing about what MetaFilter is meant to be for

cczona

8 years

11 years

4 years

11 years

Sunday February 24 13

That schemas trust in users was the foundation for the users to ASK to share themselves even more

cczona

Sunday February 24 13

Today MetaFilter users are trusted with many free-form fields including ones most developers instinctually constrain or thoroughly validate

cczona

Sunday February 24 13

Nonsensical values Hell yeah go for it Field values that blatantly contradict each other No objection to that either The message is hey user we get that this is YOUR OWN HOME Make it as comfortable personal and messy as you want to WE as developers can work with that

Social Research

Sunday February 24 13

When collecting data on people youre 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 two minimum criteria

ExhaustiveEvery possible option

Sunday February 24 13

A fields values must include every possible option

Mutually ExclusiveNo overlap exists between them

Sunday February 24 13

And the fields options must be mutually exclusive

How many social apps have both of those bare minimum criteria covered

cczona

Sunday February 24 13

Weve seen this one enough At least that set of values seems covered fully

cczona

Sunday February 24 13

But its not

cczona

Sunday February 24 13

Still not

Well never get there by adding more list items But thats fine Because instead we can choose to look at human data from a different perspective

cczona

Data doesnrsquot have to be for analysis

Sunday February 24 13

Its easy to get into the habit of structuring data for easy analysis But step back Wallow in the users perspective

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 28: Schemas for the Real World [RubyConf AU 2013]

cczona

Sunday February 24 13

As developers were tugged in two directions keep the codebase manageable yet design for modern complexity

cczona

Get schemas into alignment

Sunday February 24 13

cczona

Mental Schema

bullSet of pre-conceived ideas

bullFramework for representing some aspect of the world

bullSystem of organizing amp perceiving new information

Sunday February 24 13

There are two kinds of schema [read]

cczona

Database Schema

bullStructure described in the databases language

bullBlueprint for database construction

bullDescribes how the real world is being modeled

Sunday February 24 13

Database schemas are basically the same thing Its a mental schema translated into blueprints for a database

cczona

create_table users force =gt true do |t| tstring username tstring email tstring passwordend

Sunday February 24 13

When you use Rails generate scaffold or Rails generate model it creates a migration Maybe you created something like this for instance Those migrations ultimately get translated into a unified schema to be used by the environments database

cczona

Sunday February 24 13

These are simply frontend manifestations of someones mental schema

cczona

Schemas are foundation for

expressing

things deeply intimate

Sunday February 24 13

cczona

Schemas are foundation for

expressing

self-image

Sunday February 24 13

cczona

Schemas are foundation for

expressing

identity

Sunday February 24 13

cczona

Schemas are foundation for

expressing

important relationships

Sunday February 24 13

cczona

Schemas are foundation for

expressing

values

Sunday February 24 13

cczona

Schemas are foundation for

expressing

spirit

creativity

uniqueness

Sunday February 24 13

cczona

Schemas define the

user experience

Sunday February 24 13

Schemas define user experience

cczona

Our schemas are leaving people behind

amp UX

Sunday February 24 13

[read]We can fix that

cczona

What benefit will the user notice

Sunday February 24 13

When developing a schema thats going to ask a person about their experiences feelings sense of self there isnt a single right way I can tell to do this What we can do is evaluate tradeoffs and ask What benefit will the user notice Thats not equivalent to How will the user benefit a question that grants too much latitude for assuming that what we want is of course to their benefit because its gonna help us deliver a product thats Awesome

cczona

Evaluating from user perspective gives us focus

Sunday February 24 13

[read]

cczona

Coerced Discretionary

Restricted Freeform

Guided

Corrective

Sunday February 24 13

Theres no point on this chart where everybody is seeing maximum benefit So lets look at the choices

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective Freeform

Sunday February 24 13

Checkboxs radio buttons and select menus imply that all possible values are represented Hey user just pick the right one (or ones) Its real world being rejected because it didnt happen to look like our mental schema

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective TextareaText

Sunday February 24 13

Checking a box is a one step action Entering a text string is not So a freeform solution such as a textarea or text field isnt automatically exciting Nevertheless a freeform field can deliver striking benefit to users

cczona

11 years

11 years

Sunday February 24 13

At MetaFilter gender has been a text field for over a decade

cczona

hellipthe early crowd at MeFi were often programmers and they hated the idea of dirty data collectionhellip

mdashMatt Haughey founder

Sunday February 24 13

Initially there were some who shuddered at the thought

cczona

All girl

XY

Braid runner

Fella

Fembot

Alto

It depends

MYOB

Dangly bits

Chicklet

Innie not outie

Convex

Sideburns

Ambisextrous

Member of the patriarchy

Sunday February 24 13

For about 5 seconds Then they jumped on board Because they could be creative and silly

cczona

I speak using the male gender when required by language

M but known to be flexible

50 quintessential tomboy 50 total girly-girl

Gender bo bender banana fanna fo lender fee fi mo

Sunday February 24 13

AND because they could express this THING about themselves fully With authentic voice

cczona

hellipit was one of the earliest indications Id landed in the right place

mdashMeFi user

Sunday February 24 13

That text field grew into a beloved institution What you as a user put into that field says something revealing who you are That youre allowed to put in anything -- or put in nothing -- says something revealing about what MetaFilter is meant to be for

cczona

8 years

11 years

4 years

11 years

Sunday February 24 13

That schemas trust in users was the foundation for the users to ASK to share themselves even more

cczona

Sunday February 24 13

Today MetaFilter users are trusted with many free-form fields including ones most developers instinctually constrain or thoroughly validate

cczona

Sunday February 24 13

Nonsensical values Hell yeah go for it Field values that blatantly contradict each other No objection to that either The message is hey user we get that this is YOUR OWN HOME Make it as comfortable personal and messy as you want to WE as developers can work with that

Social Research

Sunday February 24 13

When collecting data on people youre 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 two minimum criteria

ExhaustiveEvery possible option

Sunday February 24 13

A fields values must include every possible option

Mutually ExclusiveNo overlap exists between them

Sunday February 24 13

And the fields options must be mutually exclusive

How many social apps have both of those bare minimum criteria covered

cczona

Sunday February 24 13

Weve seen this one enough At least that set of values seems covered fully

cczona

Sunday February 24 13

But its not

cczona

Sunday February 24 13

Still not

Well never get there by adding more list items But thats fine Because instead we can choose to look at human data from a different perspective

cczona

Data doesnrsquot have to be for analysis

Sunday February 24 13

Its easy to get into the habit of structuring data for easy analysis But step back Wallow in the users perspective

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 29: Schemas for the Real World [RubyConf AU 2013]

cczona

Get schemas into alignment

Sunday February 24 13

cczona

Mental Schema

bullSet of pre-conceived ideas

bullFramework for representing some aspect of the world

bullSystem of organizing amp perceiving new information

Sunday February 24 13

There are two kinds of schema [read]

cczona

Database Schema

bullStructure described in the databases language

bullBlueprint for database construction

bullDescribes how the real world is being modeled

Sunday February 24 13

Database schemas are basically the same thing Its a mental schema translated into blueprints for a database

cczona

create_table users force =gt true do |t| tstring username tstring email tstring passwordend

Sunday February 24 13

When you use Rails generate scaffold or Rails generate model it creates a migration Maybe you created something like this for instance Those migrations ultimately get translated into a unified schema to be used by the environments database

cczona

Sunday February 24 13

These are simply frontend manifestations of someones mental schema

cczona

Schemas are foundation for

expressing

things deeply intimate

Sunday February 24 13

cczona

Schemas are foundation for

expressing

self-image

Sunday February 24 13

cczona

Schemas are foundation for

expressing

identity

Sunday February 24 13

cczona

Schemas are foundation for

expressing

important relationships

Sunday February 24 13

cczona

Schemas are foundation for

expressing

values

Sunday February 24 13

cczona

Schemas are foundation for

expressing

spirit

creativity

uniqueness

Sunday February 24 13

cczona

Schemas define the

user experience

Sunday February 24 13

Schemas define user experience

cczona

Our schemas are leaving people behind

amp UX

Sunday February 24 13

[read]We can fix that

cczona

What benefit will the user notice

Sunday February 24 13

When developing a schema thats going to ask a person about their experiences feelings sense of self there isnt a single right way I can tell to do this What we can do is evaluate tradeoffs and ask What benefit will the user notice Thats not equivalent to How will the user benefit a question that grants too much latitude for assuming that what we want is of course to their benefit because its gonna help us deliver a product thats Awesome

cczona

Evaluating from user perspective gives us focus

Sunday February 24 13

[read]

cczona

Coerced Discretionary

Restricted Freeform

Guided

Corrective

Sunday February 24 13

Theres no point on this chart where everybody is seeing maximum benefit So lets look at the choices

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective Freeform

Sunday February 24 13

Checkboxs radio buttons and select menus imply that all possible values are represented Hey user just pick the right one (or ones) Its real world being rejected because it didnt happen to look like our mental schema

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective TextareaText

Sunday February 24 13

Checking a box is a one step action Entering a text string is not So a freeform solution such as a textarea or text field isnt automatically exciting Nevertheless a freeform field can deliver striking benefit to users

cczona

11 years

11 years

Sunday February 24 13

At MetaFilter gender has been a text field for over a decade

cczona

hellipthe early crowd at MeFi were often programmers and they hated the idea of dirty data collectionhellip

mdashMatt Haughey founder

Sunday February 24 13

Initially there were some who shuddered at the thought

cczona

All girl

XY

Braid runner

Fella

Fembot

Alto

It depends

MYOB

Dangly bits

Chicklet

Innie not outie

Convex

Sideburns

Ambisextrous

Member of the patriarchy

Sunday February 24 13

For about 5 seconds Then they jumped on board Because they could be creative and silly

cczona

I speak using the male gender when required by language

M but known to be flexible

50 quintessential tomboy 50 total girly-girl

Gender bo bender banana fanna fo lender fee fi mo

Sunday February 24 13

AND because they could express this THING about themselves fully With authentic voice

cczona

hellipit was one of the earliest indications Id landed in the right place

mdashMeFi user

Sunday February 24 13

That text field grew into a beloved institution What you as a user put into that field says something revealing who you are That youre allowed to put in anything -- or put in nothing -- says something revealing about what MetaFilter is meant to be for

cczona

8 years

11 years

4 years

11 years

Sunday February 24 13

That schemas trust in users was the foundation for the users to ASK to share themselves even more

cczona

Sunday February 24 13

Today MetaFilter users are trusted with many free-form fields including ones most developers instinctually constrain or thoroughly validate

cczona

Sunday February 24 13

Nonsensical values Hell yeah go for it Field values that blatantly contradict each other No objection to that either The message is hey user we get that this is YOUR OWN HOME Make it as comfortable personal and messy as you want to WE as developers can work with that

Social Research

Sunday February 24 13

When collecting data on people youre 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 two minimum criteria

ExhaustiveEvery possible option

Sunday February 24 13

A fields values must include every possible option

Mutually ExclusiveNo overlap exists between them

Sunday February 24 13

And the fields options must be mutually exclusive

How many social apps have both of those bare minimum criteria covered

cczona

Sunday February 24 13

Weve seen this one enough At least that set of values seems covered fully

cczona

Sunday February 24 13

But its not

cczona

Sunday February 24 13

Still not

Well never get there by adding more list items But thats fine Because instead we can choose to look at human data from a different perspective

cczona

Data doesnrsquot have to be for analysis

Sunday February 24 13

Its easy to get into the habit of structuring data for easy analysis But step back Wallow in the users perspective

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 30: Schemas for the Real World [RubyConf AU 2013]

cczona

Mental Schema

bullSet of pre-conceived ideas

bullFramework for representing some aspect of the world

bullSystem of organizing amp perceiving new information

Sunday February 24 13

There are two kinds of schema [read]

cczona

Database Schema

bullStructure described in the databases language

bullBlueprint for database construction

bullDescribes how the real world is being modeled

Sunday February 24 13

Database schemas are basically the same thing Its a mental schema translated into blueprints for a database

cczona

create_table users force =gt true do |t| tstring username tstring email tstring passwordend

Sunday February 24 13

When you use Rails generate scaffold or Rails generate model it creates a migration Maybe you created something like this for instance Those migrations ultimately get translated into a unified schema to be used by the environments database

cczona

Sunday February 24 13

These are simply frontend manifestations of someones mental schema

cczona

Schemas are foundation for

expressing

things deeply intimate

Sunday February 24 13

cczona

Schemas are foundation for

expressing

self-image

Sunday February 24 13

cczona

Schemas are foundation for

expressing

identity

Sunday February 24 13

cczona

Schemas are foundation for

expressing

important relationships

Sunday February 24 13

cczona

Schemas are foundation for

expressing

values

Sunday February 24 13

cczona

Schemas are foundation for

expressing

spirit

creativity

uniqueness

Sunday February 24 13

cczona

Schemas define the

user experience

Sunday February 24 13

Schemas define user experience

cczona

Our schemas are leaving people behind

amp UX

Sunday February 24 13

[read]We can fix that

cczona

What benefit will the user notice

Sunday February 24 13

When developing a schema thats going to ask a person about their experiences feelings sense of self there isnt a single right way I can tell to do this What we can do is evaluate tradeoffs and ask What benefit will the user notice Thats not equivalent to How will the user benefit a question that grants too much latitude for assuming that what we want is of course to their benefit because its gonna help us deliver a product thats Awesome

cczona

Evaluating from user perspective gives us focus

Sunday February 24 13

[read]

cczona

Coerced Discretionary

Restricted Freeform

Guided

Corrective

Sunday February 24 13

Theres no point on this chart where everybody is seeing maximum benefit So lets look at the choices

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective Freeform

Sunday February 24 13

Checkboxs radio buttons and select menus imply that all possible values are represented Hey user just pick the right one (or ones) Its real world being rejected because it didnt happen to look like our mental schema

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective TextareaText

Sunday February 24 13

Checking a box is a one step action Entering a text string is not So a freeform solution such as a textarea or text field isnt automatically exciting Nevertheless a freeform field can deliver striking benefit to users

cczona

11 years

11 years

Sunday February 24 13

At MetaFilter gender has been a text field for over a decade

cczona

hellipthe early crowd at MeFi were often programmers and they hated the idea of dirty data collectionhellip

mdashMatt Haughey founder

Sunday February 24 13

Initially there were some who shuddered at the thought

cczona

All girl

XY

Braid runner

Fella

Fembot

Alto

It depends

MYOB

Dangly bits

Chicklet

Innie not outie

Convex

Sideburns

Ambisextrous

Member of the patriarchy

Sunday February 24 13

For about 5 seconds Then they jumped on board Because they could be creative and silly

cczona

I speak using the male gender when required by language

M but known to be flexible

50 quintessential tomboy 50 total girly-girl

Gender bo bender banana fanna fo lender fee fi mo

Sunday February 24 13

AND because they could express this THING about themselves fully With authentic voice

cczona

hellipit was one of the earliest indications Id landed in the right place

mdashMeFi user

Sunday February 24 13

That text field grew into a beloved institution What you as a user put into that field says something revealing who you are That youre allowed to put in anything -- or put in nothing -- says something revealing about what MetaFilter is meant to be for

cczona

8 years

11 years

4 years

11 years

Sunday February 24 13

That schemas trust in users was the foundation for the users to ASK to share themselves even more

cczona

Sunday February 24 13

Today MetaFilter users are trusted with many free-form fields including ones most developers instinctually constrain or thoroughly validate

cczona

Sunday February 24 13

Nonsensical values Hell yeah go for it Field values that blatantly contradict each other No objection to that either The message is hey user we get that this is YOUR OWN HOME Make it as comfortable personal and messy as you want to WE as developers can work with that

Social Research

Sunday February 24 13

When collecting data on people youre 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 two minimum criteria

ExhaustiveEvery possible option

Sunday February 24 13

A fields values must include every possible option

Mutually ExclusiveNo overlap exists between them

Sunday February 24 13

And the fields options must be mutually exclusive

How many social apps have both of those bare minimum criteria covered

cczona

Sunday February 24 13

Weve seen this one enough At least that set of values seems covered fully

cczona

Sunday February 24 13

But its not

cczona

Sunday February 24 13

Still not

Well never get there by adding more list items But thats fine Because instead we can choose to look at human data from a different perspective

cczona

Data doesnrsquot have to be for analysis

Sunday February 24 13

Its easy to get into the habit of structuring data for easy analysis But step back Wallow in the users perspective

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 31: Schemas for the Real World [RubyConf AU 2013]

cczona

Database Schema

bullStructure described in the databases language

bullBlueprint for database construction

bullDescribes how the real world is being modeled

Sunday February 24 13

Database schemas are basically the same thing Its a mental schema translated into blueprints for a database

cczona

create_table users force =gt true do |t| tstring username tstring email tstring passwordend

Sunday February 24 13

When you use Rails generate scaffold or Rails generate model it creates a migration Maybe you created something like this for instance Those migrations ultimately get translated into a unified schema to be used by the environments database

cczona

Sunday February 24 13

These are simply frontend manifestations of someones mental schema

cczona

Schemas are foundation for

expressing

things deeply intimate

Sunday February 24 13

cczona

Schemas are foundation for

expressing

self-image

Sunday February 24 13

cczona

Schemas are foundation for

expressing

identity

Sunday February 24 13

cczona

Schemas are foundation for

expressing

important relationships

Sunday February 24 13

cczona

Schemas are foundation for

expressing

values

Sunday February 24 13

cczona

Schemas are foundation for

expressing

spirit

creativity

uniqueness

Sunday February 24 13

cczona

Schemas define the

user experience

Sunday February 24 13

Schemas define user experience

cczona

Our schemas are leaving people behind

amp UX

Sunday February 24 13

[read]We can fix that

cczona

What benefit will the user notice

Sunday February 24 13

When developing a schema thats going to ask a person about their experiences feelings sense of self there isnt a single right way I can tell to do this What we can do is evaluate tradeoffs and ask What benefit will the user notice Thats not equivalent to How will the user benefit a question that grants too much latitude for assuming that what we want is of course to their benefit because its gonna help us deliver a product thats Awesome

cczona

Evaluating from user perspective gives us focus

Sunday February 24 13

[read]

cczona

Coerced Discretionary

Restricted Freeform

Guided

Corrective

Sunday February 24 13

Theres no point on this chart where everybody is seeing maximum benefit So lets look at the choices

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective Freeform

Sunday February 24 13

Checkboxs radio buttons and select menus imply that all possible values are represented Hey user just pick the right one (or ones) Its real world being rejected because it didnt happen to look like our mental schema

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective TextareaText

Sunday February 24 13

Checking a box is a one step action Entering a text string is not So a freeform solution such as a textarea or text field isnt automatically exciting Nevertheless a freeform field can deliver striking benefit to users

cczona

11 years

11 years

Sunday February 24 13

At MetaFilter gender has been a text field for over a decade

cczona

hellipthe early crowd at MeFi were often programmers and they hated the idea of dirty data collectionhellip

mdashMatt Haughey founder

Sunday February 24 13

Initially there were some who shuddered at the thought

cczona

All girl

XY

Braid runner

Fella

Fembot

Alto

It depends

MYOB

Dangly bits

Chicklet

Innie not outie

Convex

Sideburns

Ambisextrous

Member of the patriarchy

Sunday February 24 13

For about 5 seconds Then they jumped on board Because they could be creative and silly

cczona

I speak using the male gender when required by language

M but known to be flexible

50 quintessential tomboy 50 total girly-girl

Gender bo bender banana fanna fo lender fee fi mo

Sunday February 24 13

AND because they could express this THING about themselves fully With authentic voice

cczona

hellipit was one of the earliest indications Id landed in the right place

mdashMeFi user

Sunday February 24 13

That text field grew into a beloved institution What you as a user put into that field says something revealing who you are That youre allowed to put in anything -- or put in nothing -- says something revealing about what MetaFilter is meant to be for

cczona

8 years

11 years

4 years

11 years

Sunday February 24 13

That schemas trust in users was the foundation for the users to ASK to share themselves even more

cczona

Sunday February 24 13

Today MetaFilter users are trusted with many free-form fields including ones most developers instinctually constrain or thoroughly validate

cczona

Sunday February 24 13

Nonsensical values Hell yeah go for it Field values that blatantly contradict each other No objection to that either The message is hey user we get that this is YOUR OWN HOME Make it as comfortable personal and messy as you want to WE as developers can work with that

Social Research

Sunday February 24 13

When collecting data on people youre 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 two minimum criteria

ExhaustiveEvery possible option

Sunday February 24 13

A fields values must include every possible option

Mutually ExclusiveNo overlap exists between them

Sunday February 24 13

And the fields options must be mutually exclusive

How many social apps have both of those bare minimum criteria covered

cczona

Sunday February 24 13

Weve seen this one enough At least that set of values seems covered fully

cczona

Sunday February 24 13

But its not

cczona

Sunday February 24 13

Still not

Well never get there by adding more list items But thats fine Because instead we can choose to look at human data from a different perspective

cczona

Data doesnrsquot have to be for analysis

Sunday February 24 13

Its easy to get into the habit of structuring data for easy analysis But step back Wallow in the users perspective

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 32: Schemas for the Real World [RubyConf AU 2013]

cczona

create_table users force =gt true do |t| tstring username tstring email tstring passwordend

Sunday February 24 13

When you use Rails generate scaffold or Rails generate model it creates a migration Maybe you created something like this for instance Those migrations ultimately get translated into a unified schema to be used by the environments database

cczona

Sunday February 24 13

These are simply frontend manifestations of someones mental schema

cczona

Schemas are foundation for

expressing

things deeply intimate

Sunday February 24 13

cczona

Schemas are foundation for

expressing

self-image

Sunday February 24 13

cczona

Schemas are foundation for

expressing

identity

Sunday February 24 13

cczona

Schemas are foundation for

expressing

important relationships

Sunday February 24 13

cczona

Schemas are foundation for

expressing

values

Sunday February 24 13

cczona

Schemas are foundation for

expressing

spirit

creativity

uniqueness

Sunday February 24 13

cczona

Schemas define the

user experience

Sunday February 24 13

Schemas define user experience

cczona

Our schemas are leaving people behind

amp UX

Sunday February 24 13

[read]We can fix that

cczona

What benefit will the user notice

Sunday February 24 13

When developing a schema thats going to ask a person about their experiences feelings sense of self there isnt a single right way I can tell to do this What we can do is evaluate tradeoffs and ask What benefit will the user notice Thats not equivalent to How will the user benefit a question that grants too much latitude for assuming that what we want is of course to their benefit because its gonna help us deliver a product thats Awesome

cczona

Evaluating from user perspective gives us focus

Sunday February 24 13

[read]

cczona

Coerced Discretionary

Restricted Freeform

Guided

Corrective

Sunday February 24 13

Theres no point on this chart where everybody is seeing maximum benefit So lets look at the choices

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective Freeform

Sunday February 24 13

Checkboxs radio buttons and select menus imply that all possible values are represented Hey user just pick the right one (or ones) Its real world being rejected because it didnt happen to look like our mental schema

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective TextareaText

Sunday February 24 13

Checking a box is a one step action Entering a text string is not So a freeform solution such as a textarea or text field isnt automatically exciting Nevertheless a freeform field can deliver striking benefit to users

cczona

11 years

11 years

Sunday February 24 13

At MetaFilter gender has been a text field for over a decade

cczona

hellipthe early crowd at MeFi were often programmers and they hated the idea of dirty data collectionhellip

mdashMatt Haughey founder

Sunday February 24 13

Initially there were some who shuddered at the thought

cczona

All girl

XY

Braid runner

Fella

Fembot

Alto

It depends

MYOB

Dangly bits

Chicklet

Innie not outie

Convex

Sideburns

Ambisextrous

Member of the patriarchy

Sunday February 24 13

For about 5 seconds Then they jumped on board Because they could be creative and silly

cczona

I speak using the male gender when required by language

M but known to be flexible

50 quintessential tomboy 50 total girly-girl

Gender bo bender banana fanna fo lender fee fi mo

Sunday February 24 13

AND because they could express this THING about themselves fully With authentic voice

cczona

hellipit was one of the earliest indications Id landed in the right place

mdashMeFi user

Sunday February 24 13

That text field grew into a beloved institution What you as a user put into that field says something revealing who you are That youre allowed to put in anything -- or put in nothing -- says something revealing about what MetaFilter is meant to be for

cczona

8 years

11 years

4 years

11 years

Sunday February 24 13

That schemas trust in users was the foundation for the users to ASK to share themselves even more

cczona

Sunday February 24 13

Today MetaFilter users are trusted with many free-form fields including ones most developers instinctually constrain or thoroughly validate

cczona

Sunday February 24 13

Nonsensical values Hell yeah go for it Field values that blatantly contradict each other No objection to that either The message is hey user we get that this is YOUR OWN HOME Make it as comfortable personal and messy as you want to WE as developers can work with that

Social Research

Sunday February 24 13

When collecting data on people youre 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 two minimum criteria

ExhaustiveEvery possible option

Sunday February 24 13

A fields values must include every possible option

Mutually ExclusiveNo overlap exists between them

Sunday February 24 13

And the fields options must be mutually exclusive

How many social apps have both of those bare minimum criteria covered

cczona

Sunday February 24 13

Weve seen this one enough At least that set of values seems covered fully

cczona

Sunday February 24 13

But its not

cczona

Sunday February 24 13

Still not

Well never get there by adding more list items But thats fine Because instead we can choose to look at human data from a different perspective

cczona

Data doesnrsquot have to be for analysis

Sunday February 24 13

Its easy to get into the habit of structuring data for easy analysis But step back Wallow in the users perspective

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 33: Schemas for the Real World [RubyConf AU 2013]

cczona

Sunday February 24 13

These are simply frontend manifestations of someones mental schema

cczona

Schemas are foundation for

expressing

things deeply intimate

Sunday February 24 13

cczona

Schemas are foundation for

expressing

self-image

Sunday February 24 13

cczona

Schemas are foundation for

expressing

identity

Sunday February 24 13

cczona

Schemas are foundation for

expressing

important relationships

Sunday February 24 13

cczona

Schemas are foundation for

expressing

values

Sunday February 24 13

cczona

Schemas are foundation for

expressing

spirit

creativity

uniqueness

Sunday February 24 13

cczona

Schemas define the

user experience

Sunday February 24 13

Schemas define user experience

cczona

Our schemas are leaving people behind

amp UX

Sunday February 24 13

[read]We can fix that

cczona

What benefit will the user notice

Sunday February 24 13

When developing a schema thats going to ask a person about their experiences feelings sense of self there isnt a single right way I can tell to do this What we can do is evaluate tradeoffs and ask What benefit will the user notice Thats not equivalent to How will the user benefit a question that grants too much latitude for assuming that what we want is of course to their benefit because its gonna help us deliver a product thats Awesome

cczona

Evaluating from user perspective gives us focus

Sunday February 24 13

[read]

cczona

Coerced Discretionary

Restricted Freeform

Guided

Corrective

Sunday February 24 13

Theres no point on this chart where everybody is seeing maximum benefit So lets look at the choices

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective Freeform

Sunday February 24 13

Checkboxs radio buttons and select menus imply that all possible values are represented Hey user just pick the right one (or ones) Its real world being rejected because it didnt happen to look like our mental schema

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective TextareaText

Sunday February 24 13

Checking a box is a one step action Entering a text string is not So a freeform solution such as a textarea or text field isnt automatically exciting Nevertheless a freeform field can deliver striking benefit to users

cczona

11 years

11 years

Sunday February 24 13

At MetaFilter gender has been a text field for over a decade

cczona

hellipthe early crowd at MeFi were often programmers and they hated the idea of dirty data collectionhellip

mdashMatt Haughey founder

Sunday February 24 13

Initially there were some who shuddered at the thought

cczona

All girl

XY

Braid runner

Fella

Fembot

Alto

It depends

MYOB

Dangly bits

Chicklet

Innie not outie

Convex

Sideburns

Ambisextrous

Member of the patriarchy

Sunday February 24 13

For about 5 seconds Then they jumped on board Because they could be creative and silly

cczona

I speak using the male gender when required by language

M but known to be flexible

50 quintessential tomboy 50 total girly-girl

Gender bo bender banana fanna fo lender fee fi mo

Sunday February 24 13

AND because they could express this THING about themselves fully With authentic voice

cczona

hellipit was one of the earliest indications Id landed in the right place

mdashMeFi user

Sunday February 24 13

That text field grew into a beloved institution What you as a user put into that field says something revealing who you are That youre allowed to put in anything -- or put in nothing -- says something revealing about what MetaFilter is meant to be for

cczona

8 years

11 years

4 years

11 years

Sunday February 24 13

That schemas trust in users was the foundation for the users to ASK to share themselves even more

cczona

Sunday February 24 13

Today MetaFilter users are trusted with many free-form fields including ones most developers instinctually constrain or thoroughly validate

cczona

Sunday February 24 13

Nonsensical values Hell yeah go for it Field values that blatantly contradict each other No objection to that either The message is hey user we get that this is YOUR OWN HOME Make it as comfortable personal and messy as you want to WE as developers can work with that

Social Research

Sunday February 24 13

When collecting data on people youre 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 two minimum criteria

ExhaustiveEvery possible option

Sunday February 24 13

A fields values must include every possible option

Mutually ExclusiveNo overlap exists between them

Sunday February 24 13

And the fields options must be mutually exclusive

How many social apps have both of those bare minimum criteria covered

cczona

Sunday February 24 13

Weve seen this one enough At least that set of values seems covered fully

cczona

Sunday February 24 13

But its not

cczona

Sunday February 24 13

Still not

Well never get there by adding more list items But thats fine Because instead we can choose to look at human data from a different perspective

cczona

Data doesnrsquot have to be for analysis

Sunday February 24 13

Its easy to get into the habit of structuring data for easy analysis But step back Wallow in the users perspective

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 34: Schemas for the Real World [RubyConf AU 2013]

cczona

Schemas are foundation for

expressing

things deeply intimate

Sunday February 24 13

cczona

Schemas are foundation for

expressing

self-image

Sunday February 24 13

cczona

Schemas are foundation for

expressing

identity

Sunday February 24 13

cczona

Schemas are foundation for

expressing

important relationships

Sunday February 24 13

cczona

Schemas are foundation for

expressing

values

Sunday February 24 13

cczona

Schemas are foundation for

expressing

spirit

creativity

uniqueness

Sunday February 24 13

cczona

Schemas define the

user experience

Sunday February 24 13

Schemas define user experience

cczona

Our schemas are leaving people behind

amp UX

Sunday February 24 13

[read]We can fix that

cczona

What benefit will the user notice

Sunday February 24 13

When developing a schema thats going to ask a person about their experiences feelings sense of self there isnt a single right way I can tell to do this What we can do is evaluate tradeoffs and ask What benefit will the user notice Thats not equivalent to How will the user benefit a question that grants too much latitude for assuming that what we want is of course to their benefit because its gonna help us deliver a product thats Awesome

cczona

Evaluating from user perspective gives us focus

Sunday February 24 13

[read]

cczona

Coerced Discretionary

Restricted Freeform

Guided

Corrective

Sunday February 24 13

Theres no point on this chart where everybody is seeing maximum benefit So lets look at the choices

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective Freeform

Sunday February 24 13

Checkboxs radio buttons and select menus imply that all possible values are represented Hey user just pick the right one (or ones) Its real world being rejected because it didnt happen to look like our mental schema

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective TextareaText

Sunday February 24 13

Checking a box is a one step action Entering a text string is not So a freeform solution such as a textarea or text field isnt automatically exciting Nevertheless a freeform field can deliver striking benefit to users

cczona

11 years

11 years

Sunday February 24 13

At MetaFilter gender has been a text field for over a decade

cczona

hellipthe early crowd at MeFi were often programmers and they hated the idea of dirty data collectionhellip

mdashMatt Haughey founder

Sunday February 24 13

Initially there were some who shuddered at the thought

cczona

All girl

XY

Braid runner

Fella

Fembot

Alto

It depends

MYOB

Dangly bits

Chicklet

Innie not outie

Convex

Sideburns

Ambisextrous

Member of the patriarchy

Sunday February 24 13

For about 5 seconds Then they jumped on board Because they could be creative and silly

cczona

I speak using the male gender when required by language

M but known to be flexible

50 quintessential tomboy 50 total girly-girl

Gender bo bender banana fanna fo lender fee fi mo

Sunday February 24 13

AND because they could express this THING about themselves fully With authentic voice

cczona

hellipit was one of the earliest indications Id landed in the right place

mdashMeFi user

Sunday February 24 13

That text field grew into a beloved institution What you as a user put into that field says something revealing who you are That youre allowed to put in anything -- or put in nothing -- says something revealing about what MetaFilter is meant to be for

cczona

8 years

11 years

4 years

11 years

Sunday February 24 13

That schemas trust in users was the foundation for the users to ASK to share themselves even more

cczona

Sunday February 24 13

Today MetaFilter users are trusted with many free-form fields including ones most developers instinctually constrain or thoroughly validate

cczona

Sunday February 24 13

Nonsensical values Hell yeah go for it Field values that blatantly contradict each other No objection to that either The message is hey user we get that this is YOUR OWN HOME Make it as comfortable personal and messy as you want to WE as developers can work with that

Social Research

Sunday February 24 13

When collecting data on people youre 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 two minimum criteria

ExhaustiveEvery possible option

Sunday February 24 13

A fields values must include every possible option

Mutually ExclusiveNo overlap exists between them

Sunday February 24 13

And the fields options must be mutually exclusive

How many social apps have both of those bare minimum criteria covered

cczona

Sunday February 24 13

Weve seen this one enough At least that set of values seems covered fully

cczona

Sunday February 24 13

But its not

cczona

Sunday February 24 13

Still not

Well never get there by adding more list items But thats fine Because instead we can choose to look at human data from a different perspective

cczona

Data doesnrsquot have to be for analysis

Sunday February 24 13

Its easy to get into the habit of structuring data for easy analysis But step back Wallow in the users perspective

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 35: Schemas for the Real World [RubyConf AU 2013]

cczona

Schemas are foundation for

expressing

self-image

Sunday February 24 13

cczona

Schemas are foundation for

expressing

identity

Sunday February 24 13

cczona

Schemas are foundation for

expressing

important relationships

Sunday February 24 13

cczona

Schemas are foundation for

expressing

values

Sunday February 24 13

cczona

Schemas are foundation for

expressing

spirit

creativity

uniqueness

Sunday February 24 13

cczona

Schemas define the

user experience

Sunday February 24 13

Schemas define user experience

cczona

Our schemas are leaving people behind

amp UX

Sunday February 24 13

[read]We can fix that

cczona

What benefit will the user notice

Sunday February 24 13

When developing a schema thats going to ask a person about their experiences feelings sense of self there isnt a single right way I can tell to do this What we can do is evaluate tradeoffs and ask What benefit will the user notice Thats not equivalent to How will the user benefit a question that grants too much latitude for assuming that what we want is of course to their benefit because its gonna help us deliver a product thats Awesome

cczona

Evaluating from user perspective gives us focus

Sunday February 24 13

[read]

cczona

Coerced Discretionary

Restricted Freeform

Guided

Corrective

Sunday February 24 13

Theres no point on this chart where everybody is seeing maximum benefit So lets look at the choices

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective Freeform

Sunday February 24 13

Checkboxs radio buttons and select menus imply that all possible values are represented Hey user just pick the right one (or ones) Its real world being rejected because it didnt happen to look like our mental schema

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective TextareaText

Sunday February 24 13

Checking a box is a one step action Entering a text string is not So a freeform solution such as a textarea or text field isnt automatically exciting Nevertheless a freeform field can deliver striking benefit to users

cczona

11 years

11 years

Sunday February 24 13

At MetaFilter gender has been a text field for over a decade

cczona

hellipthe early crowd at MeFi were often programmers and they hated the idea of dirty data collectionhellip

mdashMatt Haughey founder

Sunday February 24 13

Initially there were some who shuddered at the thought

cczona

All girl

XY

Braid runner

Fella

Fembot

Alto

It depends

MYOB

Dangly bits

Chicklet

Innie not outie

Convex

Sideburns

Ambisextrous

Member of the patriarchy

Sunday February 24 13

For about 5 seconds Then they jumped on board Because they could be creative and silly

cczona

I speak using the male gender when required by language

M but known to be flexible

50 quintessential tomboy 50 total girly-girl

Gender bo bender banana fanna fo lender fee fi mo

Sunday February 24 13

AND because they could express this THING about themselves fully With authentic voice

cczona

hellipit was one of the earliest indications Id landed in the right place

mdashMeFi user

Sunday February 24 13

That text field grew into a beloved institution What you as a user put into that field says something revealing who you are That youre allowed to put in anything -- or put in nothing -- says something revealing about what MetaFilter is meant to be for

cczona

8 years

11 years

4 years

11 years

Sunday February 24 13

That schemas trust in users was the foundation for the users to ASK to share themselves even more

cczona

Sunday February 24 13

Today MetaFilter users are trusted with many free-form fields including ones most developers instinctually constrain or thoroughly validate

cczona

Sunday February 24 13

Nonsensical values Hell yeah go for it Field values that blatantly contradict each other No objection to that either The message is hey user we get that this is YOUR OWN HOME Make it as comfortable personal and messy as you want to WE as developers can work with that

Social Research

Sunday February 24 13

When collecting data on people youre 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 two minimum criteria

ExhaustiveEvery possible option

Sunday February 24 13

A fields values must include every possible option

Mutually ExclusiveNo overlap exists between them

Sunday February 24 13

And the fields options must be mutually exclusive

How many social apps have both of those bare minimum criteria covered

cczona

Sunday February 24 13

Weve seen this one enough At least that set of values seems covered fully

cczona

Sunday February 24 13

But its not

cczona

Sunday February 24 13

Still not

Well never get there by adding more list items But thats fine Because instead we can choose to look at human data from a different perspective

cczona

Data doesnrsquot have to be for analysis

Sunday February 24 13

Its easy to get into the habit of structuring data for easy analysis But step back Wallow in the users perspective

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 36: Schemas for the Real World [RubyConf AU 2013]

cczona

Schemas are foundation for

expressing

identity

Sunday February 24 13

cczona

Schemas are foundation for

expressing

important relationships

Sunday February 24 13

cczona

Schemas are foundation for

expressing

values

Sunday February 24 13

cczona

Schemas are foundation for

expressing

spirit

creativity

uniqueness

Sunday February 24 13

cczona

Schemas define the

user experience

Sunday February 24 13

Schemas define user experience

cczona

Our schemas are leaving people behind

amp UX

Sunday February 24 13

[read]We can fix that

cczona

What benefit will the user notice

Sunday February 24 13

When developing a schema thats going to ask a person about their experiences feelings sense of self there isnt a single right way I can tell to do this What we can do is evaluate tradeoffs and ask What benefit will the user notice Thats not equivalent to How will the user benefit a question that grants too much latitude for assuming that what we want is of course to their benefit because its gonna help us deliver a product thats Awesome

cczona

Evaluating from user perspective gives us focus

Sunday February 24 13

[read]

cczona

Coerced Discretionary

Restricted Freeform

Guided

Corrective

Sunday February 24 13

Theres no point on this chart where everybody is seeing maximum benefit So lets look at the choices

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective Freeform

Sunday February 24 13

Checkboxs radio buttons and select menus imply that all possible values are represented Hey user just pick the right one (or ones) Its real world being rejected because it didnt happen to look like our mental schema

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective TextareaText

Sunday February 24 13

Checking a box is a one step action Entering a text string is not So a freeform solution such as a textarea or text field isnt automatically exciting Nevertheless a freeform field can deliver striking benefit to users

cczona

11 years

11 years

Sunday February 24 13

At MetaFilter gender has been a text field for over a decade

cczona

hellipthe early crowd at MeFi were often programmers and they hated the idea of dirty data collectionhellip

mdashMatt Haughey founder

Sunday February 24 13

Initially there were some who shuddered at the thought

cczona

All girl

XY

Braid runner

Fella

Fembot

Alto

It depends

MYOB

Dangly bits

Chicklet

Innie not outie

Convex

Sideburns

Ambisextrous

Member of the patriarchy

Sunday February 24 13

For about 5 seconds Then they jumped on board Because they could be creative and silly

cczona

I speak using the male gender when required by language

M but known to be flexible

50 quintessential tomboy 50 total girly-girl

Gender bo bender banana fanna fo lender fee fi mo

Sunday February 24 13

AND because they could express this THING about themselves fully With authentic voice

cczona

hellipit was one of the earliest indications Id landed in the right place

mdashMeFi user

Sunday February 24 13

That text field grew into a beloved institution What you as a user put into that field says something revealing who you are That youre allowed to put in anything -- or put in nothing -- says something revealing about what MetaFilter is meant to be for

cczona

8 years

11 years

4 years

11 years

Sunday February 24 13

That schemas trust in users was the foundation for the users to ASK to share themselves even more

cczona

Sunday February 24 13

Today MetaFilter users are trusted with many free-form fields including ones most developers instinctually constrain or thoroughly validate

cczona

Sunday February 24 13

Nonsensical values Hell yeah go for it Field values that blatantly contradict each other No objection to that either The message is hey user we get that this is YOUR OWN HOME Make it as comfortable personal and messy as you want to WE as developers can work with that

Social Research

Sunday February 24 13

When collecting data on people youre 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 two minimum criteria

ExhaustiveEvery possible option

Sunday February 24 13

A fields values must include every possible option

Mutually ExclusiveNo overlap exists between them

Sunday February 24 13

And the fields options must be mutually exclusive

How many social apps have both of those bare minimum criteria covered

cczona

Sunday February 24 13

Weve seen this one enough At least that set of values seems covered fully

cczona

Sunday February 24 13

But its not

cczona

Sunday February 24 13

Still not

Well never get there by adding more list items But thats fine Because instead we can choose to look at human data from a different perspective

cczona

Data doesnrsquot have to be for analysis

Sunday February 24 13

Its easy to get into the habit of structuring data for easy analysis But step back Wallow in the users perspective

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 37: Schemas for the Real World [RubyConf AU 2013]

cczona

Schemas are foundation for

expressing

important relationships

Sunday February 24 13

cczona

Schemas are foundation for

expressing

values

Sunday February 24 13

cczona

Schemas are foundation for

expressing

spirit

creativity

uniqueness

Sunday February 24 13

cczona

Schemas define the

user experience

Sunday February 24 13

Schemas define user experience

cczona

Our schemas are leaving people behind

amp UX

Sunday February 24 13

[read]We can fix that

cczona

What benefit will the user notice

Sunday February 24 13

When developing a schema thats going to ask a person about their experiences feelings sense of self there isnt a single right way I can tell to do this What we can do is evaluate tradeoffs and ask What benefit will the user notice Thats not equivalent to How will the user benefit a question that grants too much latitude for assuming that what we want is of course to their benefit because its gonna help us deliver a product thats Awesome

cczona

Evaluating from user perspective gives us focus

Sunday February 24 13

[read]

cczona

Coerced Discretionary

Restricted Freeform

Guided

Corrective

Sunday February 24 13

Theres no point on this chart where everybody is seeing maximum benefit So lets look at the choices

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective Freeform

Sunday February 24 13

Checkboxs radio buttons and select menus imply that all possible values are represented Hey user just pick the right one (or ones) Its real world being rejected because it didnt happen to look like our mental schema

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective TextareaText

Sunday February 24 13

Checking a box is a one step action Entering a text string is not So a freeform solution such as a textarea or text field isnt automatically exciting Nevertheless a freeform field can deliver striking benefit to users

cczona

11 years

11 years

Sunday February 24 13

At MetaFilter gender has been a text field for over a decade

cczona

hellipthe early crowd at MeFi were often programmers and they hated the idea of dirty data collectionhellip

mdashMatt Haughey founder

Sunday February 24 13

Initially there were some who shuddered at the thought

cczona

All girl

XY

Braid runner

Fella

Fembot

Alto

It depends

MYOB

Dangly bits

Chicklet

Innie not outie

Convex

Sideburns

Ambisextrous

Member of the patriarchy

Sunday February 24 13

For about 5 seconds Then they jumped on board Because they could be creative and silly

cczona

I speak using the male gender when required by language

M but known to be flexible

50 quintessential tomboy 50 total girly-girl

Gender bo bender banana fanna fo lender fee fi mo

Sunday February 24 13

AND because they could express this THING about themselves fully With authentic voice

cczona

hellipit was one of the earliest indications Id landed in the right place

mdashMeFi user

Sunday February 24 13

That text field grew into a beloved institution What you as a user put into that field says something revealing who you are That youre allowed to put in anything -- or put in nothing -- says something revealing about what MetaFilter is meant to be for

cczona

8 years

11 years

4 years

11 years

Sunday February 24 13

That schemas trust in users was the foundation for the users to ASK to share themselves even more

cczona

Sunday February 24 13

Today MetaFilter users are trusted with many free-form fields including ones most developers instinctually constrain or thoroughly validate

cczona

Sunday February 24 13

Nonsensical values Hell yeah go for it Field values that blatantly contradict each other No objection to that either The message is hey user we get that this is YOUR OWN HOME Make it as comfortable personal and messy as you want to WE as developers can work with that

Social Research

Sunday February 24 13

When collecting data on people youre 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 two minimum criteria

ExhaustiveEvery possible option

Sunday February 24 13

A fields values must include every possible option

Mutually ExclusiveNo overlap exists between them

Sunday February 24 13

And the fields options must be mutually exclusive

How many social apps have both of those bare minimum criteria covered

cczona

Sunday February 24 13

Weve seen this one enough At least that set of values seems covered fully

cczona

Sunday February 24 13

But its not

cczona

Sunday February 24 13

Still not

Well never get there by adding more list items But thats fine Because instead we can choose to look at human data from a different perspective

cczona

Data doesnrsquot have to be for analysis

Sunday February 24 13

Its easy to get into the habit of structuring data for easy analysis But step back Wallow in the users perspective

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 38: Schemas for the Real World [RubyConf AU 2013]

cczona

Schemas are foundation for

expressing

values

Sunday February 24 13

cczona

Schemas are foundation for

expressing

spirit

creativity

uniqueness

Sunday February 24 13

cczona

Schemas define the

user experience

Sunday February 24 13

Schemas define user experience

cczona

Our schemas are leaving people behind

amp UX

Sunday February 24 13

[read]We can fix that

cczona

What benefit will the user notice

Sunday February 24 13

When developing a schema thats going to ask a person about their experiences feelings sense of self there isnt a single right way I can tell to do this What we can do is evaluate tradeoffs and ask What benefit will the user notice Thats not equivalent to How will the user benefit a question that grants too much latitude for assuming that what we want is of course to their benefit because its gonna help us deliver a product thats Awesome

cczona

Evaluating from user perspective gives us focus

Sunday February 24 13

[read]

cczona

Coerced Discretionary

Restricted Freeform

Guided

Corrective

Sunday February 24 13

Theres no point on this chart where everybody is seeing maximum benefit So lets look at the choices

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective Freeform

Sunday February 24 13

Checkboxs radio buttons and select menus imply that all possible values are represented Hey user just pick the right one (or ones) Its real world being rejected because it didnt happen to look like our mental schema

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective TextareaText

Sunday February 24 13

Checking a box is a one step action Entering a text string is not So a freeform solution such as a textarea or text field isnt automatically exciting Nevertheless a freeform field can deliver striking benefit to users

cczona

11 years

11 years

Sunday February 24 13

At MetaFilter gender has been a text field for over a decade

cczona

hellipthe early crowd at MeFi were often programmers and they hated the idea of dirty data collectionhellip

mdashMatt Haughey founder

Sunday February 24 13

Initially there were some who shuddered at the thought

cczona

All girl

XY

Braid runner

Fella

Fembot

Alto

It depends

MYOB

Dangly bits

Chicklet

Innie not outie

Convex

Sideburns

Ambisextrous

Member of the patriarchy

Sunday February 24 13

For about 5 seconds Then they jumped on board Because they could be creative and silly

cczona

I speak using the male gender when required by language

M but known to be flexible

50 quintessential tomboy 50 total girly-girl

Gender bo bender banana fanna fo lender fee fi mo

Sunday February 24 13

AND because they could express this THING about themselves fully With authentic voice

cczona

hellipit was one of the earliest indications Id landed in the right place

mdashMeFi user

Sunday February 24 13

That text field grew into a beloved institution What you as a user put into that field says something revealing who you are That youre allowed to put in anything -- or put in nothing -- says something revealing about what MetaFilter is meant to be for

cczona

8 years

11 years

4 years

11 years

Sunday February 24 13

That schemas trust in users was the foundation for the users to ASK to share themselves even more

cczona

Sunday February 24 13

Today MetaFilter users are trusted with many free-form fields including ones most developers instinctually constrain or thoroughly validate

cczona

Sunday February 24 13

Nonsensical values Hell yeah go for it Field values that blatantly contradict each other No objection to that either The message is hey user we get that this is YOUR OWN HOME Make it as comfortable personal and messy as you want to WE as developers can work with that

Social Research

Sunday February 24 13

When collecting data on people youre 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 two minimum criteria

ExhaustiveEvery possible option

Sunday February 24 13

A fields values must include every possible option

Mutually ExclusiveNo overlap exists between them

Sunday February 24 13

And the fields options must be mutually exclusive

How many social apps have both of those bare minimum criteria covered

cczona

Sunday February 24 13

Weve seen this one enough At least that set of values seems covered fully

cczona

Sunday February 24 13

But its not

cczona

Sunday February 24 13

Still not

Well never get there by adding more list items But thats fine Because instead we can choose to look at human data from a different perspective

cczona

Data doesnrsquot have to be for analysis

Sunday February 24 13

Its easy to get into the habit of structuring data for easy analysis But step back Wallow in the users perspective

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 39: Schemas for the Real World [RubyConf AU 2013]

cczona

Schemas are foundation for

expressing

spirit

creativity

uniqueness

Sunday February 24 13

cczona

Schemas define the

user experience

Sunday February 24 13

Schemas define user experience

cczona

Our schemas are leaving people behind

amp UX

Sunday February 24 13

[read]We can fix that

cczona

What benefit will the user notice

Sunday February 24 13

When developing a schema thats going to ask a person about their experiences feelings sense of self there isnt a single right way I can tell to do this What we can do is evaluate tradeoffs and ask What benefit will the user notice Thats not equivalent to How will the user benefit a question that grants too much latitude for assuming that what we want is of course to their benefit because its gonna help us deliver a product thats Awesome

cczona

Evaluating from user perspective gives us focus

Sunday February 24 13

[read]

cczona

Coerced Discretionary

Restricted Freeform

Guided

Corrective

Sunday February 24 13

Theres no point on this chart where everybody is seeing maximum benefit So lets look at the choices

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective Freeform

Sunday February 24 13

Checkboxs radio buttons and select menus imply that all possible values are represented Hey user just pick the right one (or ones) Its real world being rejected because it didnt happen to look like our mental schema

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective TextareaText

Sunday February 24 13

Checking a box is a one step action Entering a text string is not So a freeform solution such as a textarea or text field isnt automatically exciting Nevertheless a freeform field can deliver striking benefit to users

cczona

11 years

11 years

Sunday February 24 13

At MetaFilter gender has been a text field for over a decade

cczona

hellipthe early crowd at MeFi were often programmers and they hated the idea of dirty data collectionhellip

mdashMatt Haughey founder

Sunday February 24 13

Initially there were some who shuddered at the thought

cczona

All girl

XY

Braid runner

Fella

Fembot

Alto

It depends

MYOB

Dangly bits

Chicklet

Innie not outie

Convex

Sideburns

Ambisextrous

Member of the patriarchy

Sunday February 24 13

For about 5 seconds Then they jumped on board Because they could be creative and silly

cczona

I speak using the male gender when required by language

M but known to be flexible

50 quintessential tomboy 50 total girly-girl

Gender bo bender banana fanna fo lender fee fi mo

Sunday February 24 13

AND because they could express this THING about themselves fully With authentic voice

cczona

hellipit was one of the earliest indications Id landed in the right place

mdashMeFi user

Sunday February 24 13

That text field grew into a beloved institution What you as a user put into that field says something revealing who you are That youre allowed to put in anything -- or put in nothing -- says something revealing about what MetaFilter is meant to be for

cczona

8 years

11 years

4 years

11 years

Sunday February 24 13

That schemas trust in users was the foundation for the users to ASK to share themselves even more

cczona

Sunday February 24 13

Today MetaFilter users are trusted with many free-form fields including ones most developers instinctually constrain or thoroughly validate

cczona

Sunday February 24 13

Nonsensical values Hell yeah go for it Field values that blatantly contradict each other No objection to that either The message is hey user we get that this is YOUR OWN HOME Make it as comfortable personal and messy as you want to WE as developers can work with that

Social Research

Sunday February 24 13

When collecting data on people youre 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 two minimum criteria

ExhaustiveEvery possible option

Sunday February 24 13

A fields values must include every possible option

Mutually ExclusiveNo overlap exists between them

Sunday February 24 13

And the fields options must be mutually exclusive

How many social apps have both of those bare minimum criteria covered

cczona

Sunday February 24 13

Weve seen this one enough At least that set of values seems covered fully

cczona

Sunday February 24 13

But its not

cczona

Sunday February 24 13

Still not

Well never get there by adding more list items But thats fine Because instead we can choose to look at human data from a different perspective

cczona

Data doesnrsquot have to be for analysis

Sunday February 24 13

Its easy to get into the habit of structuring data for easy analysis But step back Wallow in the users perspective

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 40: Schemas for the Real World [RubyConf AU 2013]

cczona

Schemas define the

user experience

Sunday February 24 13

Schemas define user experience

cczona

Our schemas are leaving people behind

amp UX

Sunday February 24 13

[read]We can fix that

cczona

What benefit will the user notice

Sunday February 24 13

When developing a schema thats going to ask a person about their experiences feelings sense of self there isnt a single right way I can tell to do this What we can do is evaluate tradeoffs and ask What benefit will the user notice Thats not equivalent to How will the user benefit a question that grants too much latitude for assuming that what we want is of course to their benefit because its gonna help us deliver a product thats Awesome

cczona

Evaluating from user perspective gives us focus

Sunday February 24 13

[read]

cczona

Coerced Discretionary

Restricted Freeform

Guided

Corrective

Sunday February 24 13

Theres no point on this chart where everybody is seeing maximum benefit So lets look at the choices

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective Freeform

Sunday February 24 13

Checkboxs radio buttons and select menus imply that all possible values are represented Hey user just pick the right one (or ones) Its real world being rejected because it didnt happen to look like our mental schema

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective TextareaText

Sunday February 24 13

Checking a box is a one step action Entering a text string is not So a freeform solution such as a textarea or text field isnt automatically exciting Nevertheless a freeform field can deliver striking benefit to users

cczona

11 years

11 years

Sunday February 24 13

At MetaFilter gender has been a text field for over a decade

cczona

hellipthe early crowd at MeFi were often programmers and they hated the idea of dirty data collectionhellip

mdashMatt Haughey founder

Sunday February 24 13

Initially there were some who shuddered at the thought

cczona

All girl

XY

Braid runner

Fella

Fembot

Alto

It depends

MYOB

Dangly bits

Chicklet

Innie not outie

Convex

Sideburns

Ambisextrous

Member of the patriarchy

Sunday February 24 13

For about 5 seconds Then they jumped on board Because they could be creative and silly

cczona

I speak using the male gender when required by language

M but known to be flexible

50 quintessential tomboy 50 total girly-girl

Gender bo bender banana fanna fo lender fee fi mo

Sunday February 24 13

AND because they could express this THING about themselves fully With authentic voice

cczona

hellipit was one of the earliest indications Id landed in the right place

mdashMeFi user

Sunday February 24 13

That text field grew into a beloved institution What you as a user put into that field says something revealing who you are That youre allowed to put in anything -- or put in nothing -- says something revealing about what MetaFilter is meant to be for

cczona

8 years

11 years

4 years

11 years

Sunday February 24 13

That schemas trust in users was the foundation for the users to ASK to share themselves even more

cczona

Sunday February 24 13

Today MetaFilter users are trusted with many free-form fields including ones most developers instinctually constrain or thoroughly validate

cczona

Sunday February 24 13

Nonsensical values Hell yeah go for it Field values that blatantly contradict each other No objection to that either The message is hey user we get that this is YOUR OWN HOME Make it as comfortable personal and messy as you want to WE as developers can work with that

Social Research

Sunday February 24 13

When collecting data on people youre 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 two minimum criteria

ExhaustiveEvery possible option

Sunday February 24 13

A fields values must include every possible option

Mutually ExclusiveNo overlap exists between them

Sunday February 24 13

And the fields options must be mutually exclusive

How many social apps have both of those bare minimum criteria covered

cczona

Sunday February 24 13

Weve seen this one enough At least that set of values seems covered fully

cczona

Sunday February 24 13

But its not

cczona

Sunday February 24 13

Still not

Well never get there by adding more list items But thats fine Because instead we can choose to look at human data from a different perspective

cczona

Data doesnrsquot have to be for analysis

Sunday February 24 13

Its easy to get into the habit of structuring data for easy analysis But step back Wallow in the users perspective

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 41: Schemas for the Real World [RubyConf AU 2013]

cczona

Our schemas are leaving people behind

amp UX

Sunday February 24 13

[read]We can fix that

cczona

What benefit will the user notice

Sunday February 24 13

When developing a schema thats going to ask a person about their experiences feelings sense of self there isnt a single right way I can tell to do this What we can do is evaluate tradeoffs and ask What benefit will the user notice Thats not equivalent to How will the user benefit a question that grants too much latitude for assuming that what we want is of course to their benefit because its gonna help us deliver a product thats Awesome

cczona

Evaluating from user perspective gives us focus

Sunday February 24 13

[read]

cczona

Coerced Discretionary

Restricted Freeform

Guided

Corrective

Sunday February 24 13

Theres no point on this chart where everybody is seeing maximum benefit So lets look at the choices

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective Freeform

Sunday February 24 13

Checkboxs radio buttons and select menus imply that all possible values are represented Hey user just pick the right one (or ones) Its real world being rejected because it didnt happen to look like our mental schema

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective TextareaText

Sunday February 24 13

Checking a box is a one step action Entering a text string is not So a freeform solution such as a textarea or text field isnt automatically exciting Nevertheless a freeform field can deliver striking benefit to users

cczona

11 years

11 years

Sunday February 24 13

At MetaFilter gender has been a text field for over a decade

cczona

hellipthe early crowd at MeFi were often programmers and they hated the idea of dirty data collectionhellip

mdashMatt Haughey founder

Sunday February 24 13

Initially there were some who shuddered at the thought

cczona

All girl

XY

Braid runner

Fella

Fembot

Alto

It depends

MYOB

Dangly bits

Chicklet

Innie not outie

Convex

Sideburns

Ambisextrous

Member of the patriarchy

Sunday February 24 13

For about 5 seconds Then they jumped on board Because they could be creative and silly

cczona

I speak using the male gender when required by language

M but known to be flexible

50 quintessential tomboy 50 total girly-girl

Gender bo bender banana fanna fo lender fee fi mo

Sunday February 24 13

AND because they could express this THING about themselves fully With authentic voice

cczona

hellipit was one of the earliest indications Id landed in the right place

mdashMeFi user

Sunday February 24 13

That text field grew into a beloved institution What you as a user put into that field says something revealing who you are That youre allowed to put in anything -- or put in nothing -- says something revealing about what MetaFilter is meant to be for

cczona

8 years

11 years

4 years

11 years

Sunday February 24 13

That schemas trust in users was the foundation for the users to ASK to share themselves even more

cczona

Sunday February 24 13

Today MetaFilter users are trusted with many free-form fields including ones most developers instinctually constrain or thoroughly validate

cczona

Sunday February 24 13

Nonsensical values Hell yeah go for it Field values that blatantly contradict each other No objection to that either The message is hey user we get that this is YOUR OWN HOME Make it as comfortable personal and messy as you want to WE as developers can work with that

Social Research

Sunday February 24 13

When collecting data on people youre 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 two minimum criteria

ExhaustiveEvery possible option

Sunday February 24 13

A fields values must include every possible option

Mutually ExclusiveNo overlap exists between them

Sunday February 24 13

And the fields options must be mutually exclusive

How many social apps have both of those bare minimum criteria covered

cczona

Sunday February 24 13

Weve seen this one enough At least that set of values seems covered fully

cczona

Sunday February 24 13

But its not

cczona

Sunday February 24 13

Still not

Well never get there by adding more list items But thats fine Because instead we can choose to look at human data from a different perspective

cczona

Data doesnrsquot have to be for analysis

Sunday February 24 13

Its easy to get into the habit of structuring data for easy analysis But step back Wallow in the users perspective

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 42: Schemas for the Real World [RubyConf AU 2013]

cczona

What benefit will the user notice

Sunday February 24 13

When developing a schema thats going to ask a person about their experiences feelings sense of self there isnt a single right way I can tell to do this What we can do is evaluate tradeoffs and ask What benefit will the user notice Thats not equivalent to How will the user benefit a question that grants too much latitude for assuming that what we want is of course to their benefit because its gonna help us deliver a product thats Awesome

cczona

Evaluating from user perspective gives us focus

Sunday February 24 13

[read]

cczona

Coerced Discretionary

Restricted Freeform

Guided

Corrective

Sunday February 24 13

Theres no point on this chart where everybody is seeing maximum benefit So lets look at the choices

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective Freeform

Sunday February 24 13

Checkboxs radio buttons and select menus imply that all possible values are represented Hey user just pick the right one (or ones) Its real world being rejected because it didnt happen to look like our mental schema

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective TextareaText

Sunday February 24 13

Checking a box is a one step action Entering a text string is not So a freeform solution such as a textarea or text field isnt automatically exciting Nevertheless a freeform field can deliver striking benefit to users

cczona

11 years

11 years

Sunday February 24 13

At MetaFilter gender has been a text field for over a decade

cczona

hellipthe early crowd at MeFi were often programmers and they hated the idea of dirty data collectionhellip

mdashMatt Haughey founder

Sunday February 24 13

Initially there were some who shuddered at the thought

cczona

All girl

XY

Braid runner

Fella

Fembot

Alto

It depends

MYOB

Dangly bits

Chicklet

Innie not outie

Convex

Sideburns

Ambisextrous

Member of the patriarchy

Sunday February 24 13

For about 5 seconds Then they jumped on board Because they could be creative and silly

cczona

I speak using the male gender when required by language

M but known to be flexible

50 quintessential tomboy 50 total girly-girl

Gender bo bender banana fanna fo lender fee fi mo

Sunday February 24 13

AND because they could express this THING about themselves fully With authentic voice

cczona

hellipit was one of the earliest indications Id landed in the right place

mdashMeFi user

Sunday February 24 13

That text field grew into a beloved institution What you as a user put into that field says something revealing who you are That youre allowed to put in anything -- or put in nothing -- says something revealing about what MetaFilter is meant to be for

cczona

8 years

11 years

4 years

11 years

Sunday February 24 13

That schemas trust in users was the foundation for the users to ASK to share themselves even more

cczona

Sunday February 24 13

Today MetaFilter users are trusted with many free-form fields including ones most developers instinctually constrain or thoroughly validate

cczona

Sunday February 24 13

Nonsensical values Hell yeah go for it Field values that blatantly contradict each other No objection to that either The message is hey user we get that this is YOUR OWN HOME Make it as comfortable personal and messy as you want to WE as developers can work with that

Social Research

Sunday February 24 13

When collecting data on people youre 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 two minimum criteria

ExhaustiveEvery possible option

Sunday February 24 13

A fields values must include every possible option

Mutually ExclusiveNo overlap exists between them

Sunday February 24 13

And the fields options must be mutually exclusive

How many social apps have both of those bare minimum criteria covered

cczona

Sunday February 24 13

Weve seen this one enough At least that set of values seems covered fully

cczona

Sunday February 24 13

But its not

cczona

Sunday February 24 13

Still not

Well never get there by adding more list items But thats fine Because instead we can choose to look at human data from a different perspective

cczona

Data doesnrsquot have to be for analysis

Sunday February 24 13

Its easy to get into the habit of structuring data for easy analysis But step back Wallow in the users perspective

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 43: Schemas for the Real World [RubyConf AU 2013]

cczona

Evaluating from user perspective gives us focus

Sunday February 24 13

[read]

cczona

Coerced Discretionary

Restricted Freeform

Guided

Corrective

Sunday February 24 13

Theres no point on this chart where everybody is seeing maximum benefit So lets look at the choices

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective Freeform

Sunday February 24 13

Checkboxs radio buttons and select menus imply that all possible values are represented Hey user just pick the right one (or ones) Its real world being rejected because it didnt happen to look like our mental schema

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective TextareaText

Sunday February 24 13

Checking a box is a one step action Entering a text string is not So a freeform solution such as a textarea or text field isnt automatically exciting Nevertheless a freeform field can deliver striking benefit to users

cczona

11 years

11 years

Sunday February 24 13

At MetaFilter gender has been a text field for over a decade

cczona

hellipthe early crowd at MeFi were often programmers and they hated the idea of dirty data collectionhellip

mdashMatt Haughey founder

Sunday February 24 13

Initially there were some who shuddered at the thought

cczona

All girl

XY

Braid runner

Fella

Fembot

Alto

It depends

MYOB

Dangly bits

Chicklet

Innie not outie

Convex

Sideburns

Ambisextrous

Member of the patriarchy

Sunday February 24 13

For about 5 seconds Then they jumped on board Because they could be creative and silly

cczona

I speak using the male gender when required by language

M but known to be flexible

50 quintessential tomboy 50 total girly-girl

Gender bo bender banana fanna fo lender fee fi mo

Sunday February 24 13

AND because they could express this THING about themselves fully With authentic voice

cczona

hellipit was one of the earliest indications Id landed in the right place

mdashMeFi user

Sunday February 24 13

That text field grew into a beloved institution What you as a user put into that field says something revealing who you are That youre allowed to put in anything -- or put in nothing -- says something revealing about what MetaFilter is meant to be for

cczona

8 years

11 years

4 years

11 years

Sunday February 24 13

That schemas trust in users was the foundation for the users to ASK to share themselves even more

cczona

Sunday February 24 13

Today MetaFilter users are trusted with many free-form fields including ones most developers instinctually constrain or thoroughly validate

cczona

Sunday February 24 13

Nonsensical values Hell yeah go for it Field values that blatantly contradict each other No objection to that either The message is hey user we get that this is YOUR OWN HOME Make it as comfortable personal and messy as you want to WE as developers can work with that

Social Research

Sunday February 24 13

When collecting data on people youre 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 two minimum criteria

ExhaustiveEvery possible option

Sunday February 24 13

A fields values must include every possible option

Mutually ExclusiveNo overlap exists between them

Sunday February 24 13

And the fields options must be mutually exclusive

How many social apps have both of those bare minimum criteria covered

cczona

Sunday February 24 13

Weve seen this one enough At least that set of values seems covered fully

cczona

Sunday February 24 13

But its not

cczona

Sunday February 24 13

Still not

Well never get there by adding more list items But thats fine Because instead we can choose to look at human data from a different perspective

cczona

Data doesnrsquot have to be for analysis

Sunday February 24 13

Its easy to get into the habit of structuring data for easy analysis But step back Wallow in the users perspective

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 44: Schemas for the Real World [RubyConf AU 2013]

cczona

Coerced Discretionary

Restricted Freeform

Guided

Corrective

Sunday February 24 13

Theres no point on this chart where everybody is seeing maximum benefit So lets look at the choices

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective Freeform

Sunday February 24 13

Checkboxs radio buttons and select menus imply that all possible values are represented Hey user just pick the right one (or ones) Its real world being rejected because it didnt happen to look like our mental schema

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective TextareaText

Sunday February 24 13

Checking a box is a one step action Entering a text string is not So a freeform solution such as a textarea or text field isnt automatically exciting Nevertheless a freeform field can deliver striking benefit to users

cczona

11 years

11 years

Sunday February 24 13

At MetaFilter gender has been a text field for over a decade

cczona

hellipthe early crowd at MeFi were often programmers and they hated the idea of dirty data collectionhellip

mdashMatt Haughey founder

Sunday February 24 13

Initially there were some who shuddered at the thought

cczona

All girl

XY

Braid runner

Fella

Fembot

Alto

It depends

MYOB

Dangly bits

Chicklet

Innie not outie

Convex

Sideburns

Ambisextrous

Member of the patriarchy

Sunday February 24 13

For about 5 seconds Then they jumped on board Because they could be creative and silly

cczona

I speak using the male gender when required by language

M but known to be flexible

50 quintessential tomboy 50 total girly-girl

Gender bo bender banana fanna fo lender fee fi mo

Sunday February 24 13

AND because they could express this THING about themselves fully With authentic voice

cczona

hellipit was one of the earliest indications Id landed in the right place

mdashMeFi user

Sunday February 24 13

That text field grew into a beloved institution What you as a user put into that field says something revealing who you are That youre allowed to put in anything -- or put in nothing -- says something revealing about what MetaFilter is meant to be for

cczona

8 years

11 years

4 years

11 years

Sunday February 24 13

That schemas trust in users was the foundation for the users to ASK to share themselves even more

cczona

Sunday February 24 13

Today MetaFilter users are trusted with many free-form fields including ones most developers instinctually constrain or thoroughly validate

cczona

Sunday February 24 13

Nonsensical values Hell yeah go for it Field values that blatantly contradict each other No objection to that either The message is hey user we get that this is YOUR OWN HOME Make it as comfortable personal and messy as you want to WE as developers can work with that

Social Research

Sunday February 24 13

When collecting data on people youre 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 two minimum criteria

ExhaustiveEvery possible option

Sunday February 24 13

A fields values must include every possible option

Mutually ExclusiveNo overlap exists between them

Sunday February 24 13

And the fields options must be mutually exclusive

How many social apps have both of those bare minimum criteria covered

cczona

Sunday February 24 13

Weve seen this one enough At least that set of values seems covered fully

cczona

Sunday February 24 13

But its not

cczona

Sunday February 24 13

Still not

Well never get there by adding more list items But thats fine Because instead we can choose to look at human data from a different perspective

cczona

Data doesnrsquot have to be for analysis

Sunday February 24 13

Its easy to get into the habit of structuring data for easy analysis But step back Wallow in the users perspective

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 45: Schemas for the Real World [RubyConf AU 2013]

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective Freeform

Sunday February 24 13

Checkboxs radio buttons and select menus imply that all possible values are represented Hey user just pick the right one (or ones) Its real world being rejected because it didnt happen to look like our mental schema

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective TextareaText

Sunday February 24 13

Checking a box is a one step action Entering a text string is not So a freeform solution such as a textarea or text field isnt automatically exciting Nevertheless a freeform field can deliver striking benefit to users

cczona

11 years

11 years

Sunday February 24 13

At MetaFilter gender has been a text field for over a decade

cczona

hellipthe early crowd at MeFi were often programmers and they hated the idea of dirty data collectionhellip

mdashMatt Haughey founder

Sunday February 24 13

Initially there were some who shuddered at the thought

cczona

All girl

XY

Braid runner

Fella

Fembot

Alto

It depends

MYOB

Dangly bits

Chicklet

Innie not outie

Convex

Sideburns

Ambisextrous

Member of the patriarchy

Sunday February 24 13

For about 5 seconds Then they jumped on board Because they could be creative and silly

cczona

I speak using the male gender when required by language

M but known to be flexible

50 quintessential tomboy 50 total girly-girl

Gender bo bender banana fanna fo lender fee fi mo

Sunday February 24 13

AND because they could express this THING about themselves fully With authentic voice

cczona

hellipit was one of the earliest indications Id landed in the right place

mdashMeFi user

Sunday February 24 13

That text field grew into a beloved institution What you as a user put into that field says something revealing who you are That youre allowed to put in anything -- or put in nothing -- says something revealing about what MetaFilter is meant to be for

cczona

8 years

11 years

4 years

11 years

Sunday February 24 13

That schemas trust in users was the foundation for the users to ASK to share themselves even more

cczona

Sunday February 24 13

Today MetaFilter users are trusted with many free-form fields including ones most developers instinctually constrain or thoroughly validate

cczona

Sunday February 24 13

Nonsensical values Hell yeah go for it Field values that blatantly contradict each other No objection to that either The message is hey user we get that this is YOUR OWN HOME Make it as comfortable personal and messy as you want to WE as developers can work with that

Social Research

Sunday February 24 13

When collecting data on people youre 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 two minimum criteria

ExhaustiveEvery possible option

Sunday February 24 13

A fields values must include every possible option

Mutually ExclusiveNo overlap exists between them

Sunday February 24 13

And the fields options must be mutually exclusive

How many social apps have both of those bare minimum criteria covered

cczona

Sunday February 24 13

Weve seen this one enough At least that set of values seems covered fully

cczona

Sunday February 24 13

But its not

cczona

Sunday February 24 13

Still not

Well never get there by adding more list items But thats fine Because instead we can choose to look at human data from a different perspective

cczona

Data doesnrsquot have to be for analysis

Sunday February 24 13

Its easy to get into the habit of structuring data for easy analysis But step back Wallow in the users perspective

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 46: Schemas for the Real World [RubyConf AU 2013]

cczona

CheckboxRadioSelect

Coerced DiscretionaryGuided

Corrective TextareaText

Sunday February 24 13

Checking a box is a one step action Entering a text string is not So a freeform solution such as a textarea or text field isnt automatically exciting Nevertheless a freeform field can deliver striking benefit to users

cczona

11 years

11 years

Sunday February 24 13

At MetaFilter gender has been a text field for over a decade

cczona

hellipthe early crowd at MeFi were often programmers and they hated the idea of dirty data collectionhellip

mdashMatt Haughey founder

Sunday February 24 13

Initially there were some who shuddered at the thought

cczona

All girl

XY

Braid runner

Fella

Fembot

Alto

It depends

MYOB

Dangly bits

Chicklet

Innie not outie

Convex

Sideburns

Ambisextrous

Member of the patriarchy

Sunday February 24 13

For about 5 seconds Then they jumped on board Because they could be creative and silly

cczona

I speak using the male gender when required by language

M but known to be flexible

50 quintessential tomboy 50 total girly-girl

Gender bo bender banana fanna fo lender fee fi mo

Sunday February 24 13

AND because they could express this THING about themselves fully With authentic voice

cczona

hellipit was one of the earliest indications Id landed in the right place

mdashMeFi user

Sunday February 24 13

That text field grew into a beloved institution What you as a user put into that field says something revealing who you are That youre allowed to put in anything -- or put in nothing -- says something revealing about what MetaFilter is meant to be for

cczona

8 years

11 years

4 years

11 years

Sunday February 24 13

That schemas trust in users was the foundation for the users to ASK to share themselves even more

cczona

Sunday February 24 13

Today MetaFilter users are trusted with many free-form fields including ones most developers instinctually constrain or thoroughly validate

cczona

Sunday February 24 13

Nonsensical values Hell yeah go for it Field values that blatantly contradict each other No objection to that either The message is hey user we get that this is YOUR OWN HOME Make it as comfortable personal and messy as you want to WE as developers can work with that

Social Research

Sunday February 24 13

When collecting data on people youre 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 two minimum criteria

ExhaustiveEvery possible option

Sunday February 24 13

A fields values must include every possible option

Mutually ExclusiveNo overlap exists between them

Sunday February 24 13

And the fields options must be mutually exclusive

How many social apps have both of those bare minimum criteria covered

cczona

Sunday February 24 13

Weve seen this one enough At least that set of values seems covered fully

cczona

Sunday February 24 13

But its not

cczona

Sunday February 24 13

Still not

Well never get there by adding more list items But thats fine Because instead we can choose to look at human data from a different perspective

cczona

Data doesnrsquot have to be for analysis

Sunday February 24 13

Its easy to get into the habit of structuring data for easy analysis But step back Wallow in the users perspective

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 47: Schemas for the Real World [RubyConf AU 2013]

cczona

11 years

11 years

Sunday February 24 13

At MetaFilter gender has been a text field for over a decade

cczona

hellipthe early crowd at MeFi were often programmers and they hated the idea of dirty data collectionhellip

mdashMatt Haughey founder

Sunday February 24 13

Initially there were some who shuddered at the thought

cczona

All girl

XY

Braid runner

Fella

Fembot

Alto

It depends

MYOB

Dangly bits

Chicklet

Innie not outie

Convex

Sideburns

Ambisextrous

Member of the patriarchy

Sunday February 24 13

For about 5 seconds Then they jumped on board Because they could be creative and silly

cczona

I speak using the male gender when required by language

M but known to be flexible

50 quintessential tomboy 50 total girly-girl

Gender bo bender banana fanna fo lender fee fi mo

Sunday February 24 13

AND because they could express this THING about themselves fully With authentic voice

cczona

hellipit was one of the earliest indications Id landed in the right place

mdashMeFi user

Sunday February 24 13

That text field grew into a beloved institution What you as a user put into that field says something revealing who you are That youre allowed to put in anything -- or put in nothing -- says something revealing about what MetaFilter is meant to be for

cczona

8 years

11 years

4 years

11 years

Sunday February 24 13

That schemas trust in users was the foundation for the users to ASK to share themselves even more

cczona

Sunday February 24 13

Today MetaFilter users are trusted with many free-form fields including ones most developers instinctually constrain or thoroughly validate

cczona

Sunday February 24 13

Nonsensical values Hell yeah go for it Field values that blatantly contradict each other No objection to that either The message is hey user we get that this is YOUR OWN HOME Make it as comfortable personal and messy as you want to WE as developers can work with that

Social Research

Sunday February 24 13

When collecting data on people youre 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 two minimum criteria

ExhaustiveEvery possible option

Sunday February 24 13

A fields values must include every possible option

Mutually ExclusiveNo overlap exists between them

Sunday February 24 13

And the fields options must be mutually exclusive

How many social apps have both of those bare minimum criteria covered

cczona

Sunday February 24 13

Weve seen this one enough At least that set of values seems covered fully

cczona

Sunday February 24 13

But its not

cczona

Sunday February 24 13

Still not

Well never get there by adding more list items But thats fine Because instead we can choose to look at human data from a different perspective

cczona

Data doesnrsquot have to be for analysis

Sunday February 24 13

Its easy to get into the habit of structuring data for easy analysis But step back Wallow in the users perspective

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 48: Schemas for the Real World [RubyConf AU 2013]

cczona

hellipthe early crowd at MeFi were often programmers and they hated the idea of dirty data collectionhellip

mdashMatt Haughey founder

Sunday February 24 13

Initially there were some who shuddered at the thought

cczona

All girl

XY

Braid runner

Fella

Fembot

Alto

It depends

MYOB

Dangly bits

Chicklet

Innie not outie

Convex

Sideburns

Ambisextrous

Member of the patriarchy

Sunday February 24 13

For about 5 seconds Then they jumped on board Because they could be creative and silly

cczona

I speak using the male gender when required by language

M but known to be flexible

50 quintessential tomboy 50 total girly-girl

Gender bo bender banana fanna fo lender fee fi mo

Sunday February 24 13

AND because they could express this THING about themselves fully With authentic voice

cczona

hellipit was one of the earliest indications Id landed in the right place

mdashMeFi user

Sunday February 24 13

That text field grew into a beloved institution What you as a user put into that field says something revealing who you are That youre allowed to put in anything -- or put in nothing -- says something revealing about what MetaFilter is meant to be for

cczona

8 years

11 years

4 years

11 years

Sunday February 24 13

That schemas trust in users was the foundation for the users to ASK to share themselves even more

cczona

Sunday February 24 13

Today MetaFilter users are trusted with many free-form fields including ones most developers instinctually constrain or thoroughly validate

cczona

Sunday February 24 13

Nonsensical values Hell yeah go for it Field values that blatantly contradict each other No objection to that either The message is hey user we get that this is YOUR OWN HOME Make it as comfortable personal and messy as you want to WE as developers can work with that

Social Research

Sunday February 24 13

When collecting data on people youre 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 two minimum criteria

ExhaustiveEvery possible option

Sunday February 24 13

A fields values must include every possible option

Mutually ExclusiveNo overlap exists between them

Sunday February 24 13

And the fields options must be mutually exclusive

How many social apps have both of those bare minimum criteria covered

cczona

Sunday February 24 13

Weve seen this one enough At least that set of values seems covered fully

cczona

Sunday February 24 13

But its not

cczona

Sunday February 24 13

Still not

Well never get there by adding more list items But thats fine Because instead we can choose to look at human data from a different perspective

cczona

Data doesnrsquot have to be for analysis

Sunday February 24 13

Its easy to get into the habit of structuring data for easy analysis But step back Wallow in the users perspective

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 49: Schemas for the Real World [RubyConf AU 2013]

cczona

All girl

XY

Braid runner

Fella

Fembot

Alto

It depends

MYOB

Dangly bits

Chicklet

Innie not outie

Convex

Sideburns

Ambisextrous

Member of the patriarchy

Sunday February 24 13

For about 5 seconds Then they jumped on board Because they could be creative and silly

cczona

I speak using the male gender when required by language

M but known to be flexible

50 quintessential tomboy 50 total girly-girl

Gender bo bender banana fanna fo lender fee fi mo

Sunday February 24 13

AND because they could express this THING about themselves fully With authentic voice

cczona

hellipit was one of the earliest indications Id landed in the right place

mdashMeFi user

Sunday February 24 13

That text field grew into a beloved institution What you as a user put into that field says something revealing who you are That youre allowed to put in anything -- or put in nothing -- says something revealing about what MetaFilter is meant to be for

cczona

8 years

11 years

4 years

11 years

Sunday February 24 13

That schemas trust in users was the foundation for the users to ASK to share themselves even more

cczona

Sunday February 24 13

Today MetaFilter users are trusted with many free-form fields including ones most developers instinctually constrain or thoroughly validate

cczona

Sunday February 24 13

Nonsensical values Hell yeah go for it Field values that blatantly contradict each other No objection to that either The message is hey user we get that this is YOUR OWN HOME Make it as comfortable personal and messy as you want to WE as developers can work with that

Social Research

Sunday February 24 13

When collecting data on people youre 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 two minimum criteria

ExhaustiveEvery possible option

Sunday February 24 13

A fields values must include every possible option

Mutually ExclusiveNo overlap exists between them

Sunday February 24 13

And the fields options must be mutually exclusive

How many social apps have both of those bare minimum criteria covered

cczona

Sunday February 24 13

Weve seen this one enough At least that set of values seems covered fully

cczona

Sunday February 24 13

But its not

cczona

Sunday February 24 13

Still not

Well never get there by adding more list items But thats fine Because instead we can choose to look at human data from a different perspective

cczona

Data doesnrsquot have to be for analysis

Sunday February 24 13

Its easy to get into the habit of structuring data for easy analysis But step back Wallow in the users perspective

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 50: Schemas for the Real World [RubyConf AU 2013]

cczona

I speak using the male gender when required by language

M but known to be flexible

50 quintessential tomboy 50 total girly-girl

Gender bo bender banana fanna fo lender fee fi mo

Sunday February 24 13

AND because they could express this THING about themselves fully With authentic voice

cczona

hellipit was one of the earliest indications Id landed in the right place

mdashMeFi user

Sunday February 24 13

That text field grew into a beloved institution What you as a user put into that field says something revealing who you are That youre allowed to put in anything -- or put in nothing -- says something revealing about what MetaFilter is meant to be for

cczona

8 years

11 years

4 years

11 years

Sunday February 24 13

That schemas trust in users was the foundation for the users to ASK to share themselves even more

cczona

Sunday February 24 13

Today MetaFilter users are trusted with many free-form fields including ones most developers instinctually constrain or thoroughly validate

cczona

Sunday February 24 13

Nonsensical values Hell yeah go for it Field values that blatantly contradict each other No objection to that either The message is hey user we get that this is YOUR OWN HOME Make it as comfortable personal and messy as you want to WE as developers can work with that

Social Research

Sunday February 24 13

When collecting data on people youre 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 two minimum criteria

ExhaustiveEvery possible option

Sunday February 24 13

A fields values must include every possible option

Mutually ExclusiveNo overlap exists between them

Sunday February 24 13

And the fields options must be mutually exclusive

How many social apps have both of those bare minimum criteria covered

cczona

Sunday February 24 13

Weve seen this one enough At least that set of values seems covered fully

cczona

Sunday February 24 13

But its not

cczona

Sunday February 24 13

Still not

Well never get there by adding more list items But thats fine Because instead we can choose to look at human data from a different perspective

cczona

Data doesnrsquot have to be for analysis

Sunday February 24 13

Its easy to get into the habit of structuring data for easy analysis But step back Wallow in the users perspective

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 51: Schemas for the Real World [RubyConf AU 2013]

cczona

hellipit was one of the earliest indications Id landed in the right place

mdashMeFi user

Sunday February 24 13

That text field grew into a beloved institution What you as a user put into that field says something revealing who you are That youre allowed to put in anything -- or put in nothing -- says something revealing about what MetaFilter is meant to be for

cczona

8 years

11 years

4 years

11 years

Sunday February 24 13

That schemas trust in users was the foundation for the users to ASK to share themselves even more

cczona

Sunday February 24 13

Today MetaFilter users are trusted with many free-form fields including ones most developers instinctually constrain or thoroughly validate

cczona

Sunday February 24 13

Nonsensical values Hell yeah go for it Field values that blatantly contradict each other No objection to that either The message is hey user we get that this is YOUR OWN HOME Make it as comfortable personal and messy as you want to WE as developers can work with that

Social Research

Sunday February 24 13

When collecting data on people youre 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 two minimum criteria

ExhaustiveEvery possible option

Sunday February 24 13

A fields values must include every possible option

Mutually ExclusiveNo overlap exists between them

Sunday February 24 13

And the fields options must be mutually exclusive

How many social apps have both of those bare minimum criteria covered

cczona

Sunday February 24 13

Weve seen this one enough At least that set of values seems covered fully

cczona

Sunday February 24 13

But its not

cczona

Sunday February 24 13

Still not

Well never get there by adding more list items But thats fine Because instead we can choose to look at human data from a different perspective

cczona

Data doesnrsquot have to be for analysis

Sunday February 24 13

Its easy to get into the habit of structuring data for easy analysis But step back Wallow in the users perspective

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 52: Schemas for the Real World [RubyConf AU 2013]

cczona

8 years

11 years

4 years

11 years

Sunday February 24 13

That schemas trust in users was the foundation for the users to ASK to share themselves even more

cczona

Sunday February 24 13

Today MetaFilter users are trusted with many free-form fields including ones most developers instinctually constrain or thoroughly validate

cczona

Sunday February 24 13

Nonsensical values Hell yeah go for it Field values that blatantly contradict each other No objection to that either The message is hey user we get that this is YOUR OWN HOME Make it as comfortable personal and messy as you want to WE as developers can work with that

Social Research

Sunday February 24 13

When collecting data on people youre 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 two minimum criteria

ExhaustiveEvery possible option

Sunday February 24 13

A fields values must include every possible option

Mutually ExclusiveNo overlap exists between them

Sunday February 24 13

And the fields options must be mutually exclusive

How many social apps have both of those bare minimum criteria covered

cczona

Sunday February 24 13

Weve seen this one enough At least that set of values seems covered fully

cczona

Sunday February 24 13

But its not

cczona

Sunday February 24 13

Still not

Well never get there by adding more list items But thats fine Because instead we can choose to look at human data from a different perspective

cczona

Data doesnrsquot have to be for analysis

Sunday February 24 13

Its easy to get into the habit of structuring data for easy analysis But step back Wallow in the users perspective

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 53: Schemas for the Real World [RubyConf AU 2013]

cczona

Sunday February 24 13

Today MetaFilter users are trusted with many free-form fields including ones most developers instinctually constrain or thoroughly validate

cczona

Sunday February 24 13

Nonsensical values Hell yeah go for it Field values that blatantly contradict each other No objection to that either The message is hey user we get that this is YOUR OWN HOME Make it as comfortable personal and messy as you want to WE as developers can work with that

Social Research

Sunday February 24 13

When collecting data on people youre 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 two minimum criteria

ExhaustiveEvery possible option

Sunday February 24 13

A fields values must include every possible option

Mutually ExclusiveNo overlap exists between them

Sunday February 24 13

And the fields options must be mutually exclusive

How many social apps have both of those bare minimum criteria covered

cczona

Sunday February 24 13

Weve seen this one enough At least that set of values seems covered fully

cczona

Sunday February 24 13

But its not

cczona

Sunday February 24 13

Still not

Well never get there by adding more list items But thats fine Because instead we can choose to look at human data from a different perspective

cczona

Data doesnrsquot have to be for analysis

Sunday February 24 13

Its easy to get into the habit of structuring data for easy analysis But step back Wallow in the users perspective

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 54: Schemas for the Real World [RubyConf AU 2013]

cczona

Sunday February 24 13

Nonsensical values Hell yeah go for it Field values that blatantly contradict each other No objection to that either The message is hey user we get that this is YOUR OWN HOME Make it as comfortable personal and messy as you want to WE as developers can work with that

Social Research

Sunday February 24 13

When collecting data on people youre 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 two minimum criteria

ExhaustiveEvery possible option

Sunday February 24 13

A fields values must include every possible option

Mutually ExclusiveNo overlap exists between them

Sunday February 24 13

And the fields options must be mutually exclusive

How many social apps have both of those bare minimum criteria covered

cczona

Sunday February 24 13

Weve seen this one enough At least that set of values seems covered fully

cczona

Sunday February 24 13

But its not

cczona

Sunday February 24 13

Still not

Well never get there by adding more list items But thats fine Because instead we can choose to look at human data from a different perspective

cczona

Data doesnrsquot have to be for analysis

Sunday February 24 13

Its easy to get into the habit of structuring data for easy analysis But step back Wallow in the users perspective

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 55: Schemas for the Real World [RubyConf AU 2013]

Social Research

Sunday February 24 13

When collecting data on people youre 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 two minimum criteria

ExhaustiveEvery possible option

Sunday February 24 13

A fields values must include every possible option

Mutually ExclusiveNo overlap exists between them

Sunday February 24 13

And the fields options must be mutually exclusive

How many social apps have both of those bare minimum criteria covered

cczona

Sunday February 24 13

Weve seen this one enough At least that set of values seems covered fully

cczona

Sunday February 24 13

But its not

cczona

Sunday February 24 13

Still not

Well never get there by adding more list items But thats fine Because instead we can choose to look at human data from a different perspective

cczona

Data doesnrsquot have to be for analysis

Sunday February 24 13

Its easy to get into the habit of structuring data for easy analysis But step back Wallow in the users perspective

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 56: Schemas for the Real World [RubyConf AU 2013]

ExhaustiveEvery possible option

Sunday February 24 13

A fields values must include every possible option

Mutually ExclusiveNo overlap exists between them

Sunday February 24 13

And the fields options must be mutually exclusive

How many social apps have both of those bare minimum criteria covered

cczona

Sunday February 24 13

Weve seen this one enough At least that set of values seems covered fully

cczona

Sunday February 24 13

But its not

cczona

Sunday February 24 13

Still not

Well never get there by adding more list items But thats fine Because instead we can choose to look at human data from a different perspective

cczona

Data doesnrsquot have to be for analysis

Sunday February 24 13

Its easy to get into the habit of structuring data for easy analysis But step back Wallow in the users perspective

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 57: Schemas for the Real World [RubyConf AU 2013]

Mutually ExclusiveNo overlap exists between them

Sunday February 24 13

And the fields options must be mutually exclusive

How many social apps have both of those bare minimum criteria covered

cczona

Sunday February 24 13

Weve seen this one enough At least that set of values seems covered fully

cczona

Sunday February 24 13

But its not

cczona

Sunday February 24 13

Still not

Well never get there by adding more list items But thats fine Because instead we can choose to look at human data from a different perspective

cczona

Data doesnrsquot have to be for analysis

Sunday February 24 13

Its easy to get into the habit of structuring data for easy analysis But step back Wallow in the users perspective

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 58: Schemas for the Real World [RubyConf AU 2013]

cczona

Sunday February 24 13

Weve seen this one enough At least that set of values seems covered fully

cczona

Sunday February 24 13

But its not

cczona

Sunday February 24 13

Still not

Well never get there by adding more list items But thats fine Because instead we can choose to look at human data from a different perspective

cczona

Data doesnrsquot have to be for analysis

Sunday February 24 13

Its easy to get into the habit of structuring data for easy analysis But step back Wallow in the users perspective

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 59: Schemas for the Real World [RubyConf AU 2013]

cczona

Sunday February 24 13

But its not

cczona

Sunday February 24 13

Still not

Well never get there by adding more list items But thats fine Because instead we can choose to look at human data from a different perspective

cczona

Data doesnrsquot have to be for analysis

Sunday February 24 13

Its easy to get into the habit of structuring data for easy analysis But step back Wallow in the users perspective

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 60: Schemas for the Real World [RubyConf AU 2013]

cczona

Sunday February 24 13

Still not

Well never get there by adding more list items But thats fine Because instead we can choose to look at human data from a different perspective

cczona

Data doesnrsquot have to be for analysis

Sunday February 24 13

Its easy to get into the habit of structuring data for easy analysis But step back Wallow in the users perspective

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 61: Schemas for the Real World [RubyConf AU 2013]

cczona

Data doesnrsquot have to be for analysis

Sunday February 24 13

Its easy to get into the habit of structuring data for easy analysis But step back Wallow in the users perspective

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 62: Schemas for the Real World [RubyConf AU 2013]

cczona

Data can be sheerexpressiveness

Sunday February 24 13

That data can be sheer expressiveness Data that has character individualism distinctiveness

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 63: Schemas for the Real World [RubyConf AU 2013]

cczona

Sunday February 24 13

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 64: Schemas for the Real World [RubyConf AU 2013]

cczona

- = select_tag person[profile][gender] options_for_select( [FemaleMale] )

+ = profiletext_field gender

Sunday February 24 13

More recently years ago Diasporas Sarah Mei turned gender into a text field there too

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 65: Schemas for the Real World [RubyConf AU 2013]

cczona

Sunday February 24 13

Just like on MetaFilter users had fun with it

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 66: Schemas for the Real World [RubyConf AU 2013]

cczona

Some developers were not amused

Sunday February 24 13

Some developers didnt One of the major complaints raised was the affect on internationalization of gendered pronouns

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 67: Schemas for the Real World [RubyConf AU 2013]

cczona

Gendered pronouns are a rat hole

Sunday February 24 13

And heres what Ive got to say to that Gendered pronouns are a rat hole It gets hella messy hella fast when you deal with internationalization

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 68: Schemas for the Real World [RubyConf AU 2013]

cczona

The role of gender in society is the most complicated thing Irsquove ever spent a lot of time learning about and Irsquove spent a lot of time learning about quantum mechanics

mdashRandall Munroe xkcd

Sunday February 24 13

Thats a plan that comes with a level of complexity that English hasnt wrapped its head around In a lot of non-English languages grammatical gender and what you and I would call gender are independent of each other So internationalization based on Gender will screw you over Think about how to avoid dealing with gendered pronouns at all If its a requirement then the way to cope is to ask

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 69: Schemas for the Real World [RubyConf AU 2013]

cczona

Which pronouns do you prefer

(masculine) hehimhimselfhishis

(feminine) sheherherselfhersher

(androgynous) theythemthemselftheirstheir

(inanimate) itititselfitsits

ltfull namegt ltfngtltfngtltfngtltfngtsltfngts

Sunday February 24 13

Randall Munroe best known for xkcd has examined the problem several times for English language projects Asking straight up Which Pronouns Do You Prefer is truly the best he could come up with Oh and as complicated as THIS matrix it it grows even BIGGER in many other languages

Avoid Or ask Dont let pronouns become the driving force for bad UX

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 70: Schemas for the Real World [RubyConf AU 2013]

cczona

Sunday February 24 13

As developers we have a vision of what a good codebase should be and not be

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 71: Schemas for the Real World [RubyConf AU 2013]

cczona

What we want What we get

bull Structured

bull Predictablebull Validations exceptions

bull Conditionals partials

bull Relational

bull Indexed bull Premature optimization

bull Exhaustivebull Cultural variability

bull Individual POV

bull Moving target

bull Easy analytics

bull Data-driven decisionsbull Decisions based on false

premises

Sunday February 24 13

[READ]

In the most sensible of ways we often arrive at solutions that are factually truthy while far removed from real life utility

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 72: Schemas for the Real World [RubyConf AU 2013]

cczona

What is your religion if any

Sunday February 24 13

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 youre making a form based on that is tricky Theres no form element that makes it easy for our users to pick themselves out of a list of so many possibilities

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 73: Schemas for the Real World [RubyConf AU 2013]

cczona

Sunday February 24 13

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 Wed rather want to focus on genuinely major groupings

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 74: Schemas for the Real World [RubyConf AU 2013]

cczona

What is your religion if any

Christian 76

Other 4

None 15

Dont Know or Refused 5

Sunday February 24 13

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 theres this sort of crummy data with it Wed probably assign nil value for more than one of these categories right

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 75: Schemas for the Real World [RubyConf AU 2013]

cczona

What is your religion

Christian 76

Other 4

na 20

Sunday February 24 13

Fixed Which focuses attention on a problem here 1 in 5 are not useful answers from an advertisers perspective or for out own analytics The NILS -- gotta go

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 76: Schemas for the Real World [RubyConf AU 2013]

cczona

What is your religion

Christian 76

Other 24

Sunday February 24 13

So what were 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

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 77: Schemas for the Real World [RubyConf AU 2013]

cczona

Religion

Sunday February 24 13

But we dont do THIS It covers the biggest categories But oh how it leaves people out

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 78: Schemas for the Real World [RubyConf AU 2013]

cczona

People arent edge cases

Sunday February 24 13

People arent edge cases

And theyre pushing back on apps that treat them that way

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 79: Schemas for the Real World [RubyConf AU 2013]

cczona

Sunday February 24 13

So reductive has big problems So does scaling upward

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 80: Schemas for the Real World [RubyConf AU 2013]

cczona

Balancing between approaches

Sunday February 24 13

As engineers its instinctually uncomfortable to step away from this 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

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 81: Schemas for the Real World [RubyConf AU 2013]

cczona

Sunday February 24 13

And if necessary we CAN strike a middleground This is where guided response comes in Autosuggest

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 82: Schemas for the Real World [RubyConf AU 2013]

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Alteration

Sunday February 24 13

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 83: Schemas for the Real World [RubyConf AU 2013]

cczona

CheckboxRadioSelect

TextareaText

Required OptionalAutosuggest

Minimal Suggest

Sunday February 24 13

When theres a subset of values that youre most interested in do minimal suggest instead Auto suggest using just the handful of values you care about Structure from those who want to give it free form to incite expressiveness in those who want THAT

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 84: Schemas for the Real World [RubyConf AU 2013]

Unguided TextOf those who use MetaFilters gender field

40 of responses are f m female male

Sunday February 24 13

[read] So structured data IS there This can be a balanced solution in many cases where youre willing to tolerate some ambiguity Of course there are tradeoffsData quantity is lower Freed to opt out of proving personal info many doOn the other hand data quality should improve

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 85: Schemas for the Real World [RubyConf AU 2013]

Optional Select60 of Facebook users select a relationship status

Sunday February 24 13

Its fine to mix and match here Find the right approach for your users and your apps 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

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 86: Schemas for the Real World [RubyConf AU 2013]

cczona

We want everyone to feel excited what weve

built

Sunday February 24 13

The bottom line is that [read]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 87: Schemas for the Real World [RubyConf AU 2013]

cczona

We want users to feel passionate about their

involvement

Sunday February 24 13

[read]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 88: Schemas for the Real World [RubyConf AU 2013]

cczona

Analytics investments amp monetization are

based on a premise that data is accurate

Sunday February 24 13

[read]

BUT the data has been collected by coercive approaches the RISK is that--

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 89: Schemas for the Real World [RubyConf AU 2013]

cczona

Garbage

Sunday February 24 13

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

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 90: Schemas for the Real World [RubyConf AU 2013]

cczona

CheckboxRadioSelect

TextareaText

Required

Corrective

DiscretionaryGuided

Sunday February 24 13

The restrictive options that stuff at bottom left those dont actually have to be marked required

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 91: Schemas for the Real World [RubyConf AU 2013]

cczona

tstring gender null =gt false default =gt female limit =gt6

Sunday February 24 13

But the way we setup schema often embeds assumptions that we should and we will So we do A field thats not allowed to be null is destined to be mandatory A field that sets a very short length is asserting that any reasonable value is going to fit within it This migration implies Youre either male or youre female Transgender is not a reasonable value If youre transgender youll wind up being coerced into a response thats inauthentic

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 92: Schemas for the Real World [RubyConf AU 2013]

cczona

tstring gender

Sunday February 24 13

BOOM This is foundation for a whole different user experience And the cool ninja move was that we decided to do nothing Make this stuff flexible upfront Optimize storage later Decide whats valid later

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 93: Schemas for the Real World [RubyConf AU 2013]

cczona

CheckboxRadioSelect

TextareaText

Required Optional

Alteration

Guided

Sunday February 24 13

So there you have it a discretionary field Whether to respond is left up to the user

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 94: Schemas for the Real World [RubyConf AU 2013]

cczona

tstring relationship_status null =gt true

Sunday February 24 13

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 Its a statement of intent Its documenting a product decision

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 95: Schemas for the Real World [RubyConf AU 2013]

cczona

Sunday February 24 13

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 96: Schemas for the Real World [RubyConf AU 2013]

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Sunday February 24 13

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

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 97: Schemas for the Real World [RubyConf AU 2013]

cczona

FacebookSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

Sunday February 24 13

Under pressure Facebook nearly doubled the options in just two years time

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 98: Schemas for the Real World [RubyConf AU 2013]

cczona

Google+Single

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 99: Schemas for the Real World [RubyConf AU 2013]

cczona

Sunday February 24 13

Allowing users to identify their relationships with labels of greater personal significanceThats being driven by people rejecting a user experience that isnt working for them

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 100: Schemas for the Real World [RubyConf AU 2013]

cczona

Sunday February 24 13

How did some status seem universal while others werent Naming a thing creates scope The assumed validity of a fields values get constrained as soon as the field is named

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 101: Schemas for the Real World [RubyConf AU 2013]

cczona

Marital StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

Marital status for instance might lead to a list such as this In which one is assumed to be either unmarried preparing to be married currently married or formerly married

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 102: Schemas for the Real World [RubyConf AU 2013]

cczona

Relationship StatusSingle

In a relationship

Engaged

Married

Its complicated

Open relationship

Widowed

Separated

Divorced

Civil union

Domestic partnership

I dont want to say

Sunday February 24 13

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

But peoples lives arent actually arranged like these We go through life experiencing many of these And new status doesnt always leave old ones behind

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 103: Schemas for the Real World [RubyConf AU 2013]

cczona

Singleness Status

Sunday February 24 13

If you change the name you shift the paradigm and possibilities Theres important difference in these what these collect set out to measure Naming fields -- With great specificity upfront --Makes analyses more powerful later

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 104: Schemas for the Real World [RubyConf AU 2013]

cczona

Frustrating I like to be truthful and Its Complicated is really deceiving It is not complicated I am separated from my husband who I am still legally married to

mdashFacebook user

Sunday February 24 13

And some people really do have more than one relationship status at a time

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 105: Schemas for the Real World [RubyConf AU 2013]

cczona

Sunday February 24 13

Whos already spotted the fatal flaw in this one

This is what happens when we try to throw more labels at the problem instead of examining the assumptions in the database schema An open relationship is definitionally a 1Many join mdash WITH the usual engineering understanding that is that actual number of relationships may be 0 1 OR many This is Facebook failing at modeling relationships in a _relational database_ The schema forces the user to choose LOOK evasive or BE inauthentic

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 106: Schemas for the Real World [RubyConf AU 2013]

cczona

Modeling the real world is complex and

thats okay

Sunday February 24 13

ONE

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 107: Schemas for the Real World [RubyConf AU 2013]

cczona

Assuming we know who users are surrenders

opportunity to learn who they are

Sunday February 24 13

TWO [read] Early constraints in schema NET crappy misleading data[beat]So keep constraints out of user 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

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 108: Schemas for the Real World [RubyConf AU 2013]

cczona

More freeform wont kill us

Sunday February 24 13

THREE

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 109: Schemas for the Real World [RubyConf AU 2013]

cczona

QualitySpecificity

Loyalty

Sunday February 24 13

Data quality improves when lies are merely optional not requiredData thats rich and specific So we can unearth patterns that are undetectable when data is generic We can discover We can adaptWhen we show trust in people they feel good about placing trust in usTheir response to all this Engagement Passion Loyalty

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 110: Schemas for the Real World [RubyConf AU 2013]

cczona

Sunday February 24 13

THOSE are foundations for great user experiences

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 111: Schemas for the Real World [RubyConf AU 2013]

cczona

Image CreditsPostsecret

Facebook

OKCupid

Google+

Metafilter

Diaspora

Flickr

FetLife

Kotangle

cutestpawcom

hdwallpapersin

xkcd

Sunday February 24 13

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 112: Schemas for the Real World [RubyConf AU 2013]

cczona

Resourcesbull ldquoDisalienation Why Gender is a Text Field on Diasporardquo

bull ldquoGender amp Drop Down Menusrdquo

bull ldquoSex amp Genderrdquo

bull ldquoBucket Genderrdquo

bull Linguistic Potluck Crowdsourcing Internationalization in Rails

bull Does Facebook Hurt Relationships

bull Facebook Adds LGBT-Friendly Relationship Status Options

bull Facebook Targeting by Relationship Status amp Workplace

bull Your Facebook Relationship Status Its Complicated

bull Redesigning the Country Selector

bull Recommendations for Inclusive Data Collection of Trans People

bull Gay Marriage The Database Engineering Perspective

bull American Religious Identification Survey Summary Report 2009

bull Falsehoods Programmers Believe About Names

bull Your Last Name Contains Invalid Characters

bull Spanish Names

bull Chinese Names

bull Database normalization

bull Sociological normalization

Sunday February 24 13

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 113: Schemas for the Real World [RubyConf AU 2013]

cczona

Many Thanks

DevChixYoz GrahameMichele TitoloHeather RiversChiu-Ki Chan

Sarah MeiSFSI

Sunday February 24 13

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13

Page 114: Schemas for the Real World [RubyConf AU 2013]

cczona

Get in Touch

Carina C Zonacczona

httpcczonacom

cczonagmailcom

httpslidesharenetcczona

httplinkedincomincczona

Sunday February 24 13