April 2013
1 post
October 2012
3 posts
Every single one of us on this planet has an opportunity to make a positive impact in this world, and I’m proud and humbled by the millions of people who chose to use Twitter and Square daily to do exactly that.
Our single greatest innovation however, was recognizing that they could do a better job innovating than us.
They, and they alone, turned two simple ideas, telling your story in 140 characters, or accepting credit cards, into a global movement of individual empowerment. And that’s an innovation to be proud of.
us·er
/ˈyo͞ozər/Noun
1. A person who uses or operates something, esp. a computer or other machine.
2. A person who takes illegal drugs; a drug user.Synonyms
consumer
During a Square Board meeting, our newest Director Howard Schultz, pulled me aside and asked a simple question.
“Why do you all call your customers ‘users’?”
“I don’t know. We’ve always called them that.”
It wasn’t something I’ve thought about for some time. The term “user” made its appearance in computing at the dawn of shared terminals (multiple people sharing time slices of one computing resource). It was solidified in hacker culture as a person who wasn’t technical or creative, someone who just used resources and wasn’t able to make or produce anything (often called a “luser”). And finally, it was made concrete by Internet companies whose business models depended on two discrete classes of usage, a paying customer (often purchasing ads) and a non-paying consumer (subsidized by viewing the ads). Along the way only a few criticized the term, calling it abstract at best, and derogatory at worst.
It’s time for our industry and discipline to reconsider the word “user.” We speak about “user-centric design”, “user benefit”, “user experience”, “active users”, and even “usernames.” While the intent is to consider people first, the result is a massive abstraction away from real problems people feel on a daily basis. An abstraction away from simply building something you would love to see in the world, and the hope that others desire the same.
At Square we’re removing the term “users” from our vocabulary, replacing it with “customers”, and the more specific “buyers”, and “sellers.” The word customer, given its history, immediately sets a high bar on the level of service we must provide, or risk losing their attention or business. Below is a letter I sent the team after that Board meeting explaining why. It’s a start (we’re not done yet).
To everyone in the technology industry: I encourage you to reconsider the word “user” and what you call the people who love what you’ve created, starting with yourselves.
Team,
I was reminded of something today which has always bothered me, which I have since taken for granted.
The entire technology industry uses the word “user” to describe its customers. While it might be convenient, “users” is a rather passive and abstract word. No one wants to be thought of as a “user” (or “consumer” for that matter). I certainly don’t. And I wouldn’t consider my mom a “user” either, she’s my mom. The word “user” abstracts the actual individual. This may seem like a small and insignificant detail that doesn’t matter, but the vernacular and words we use here at Square set a very strong and subtle tone for everything we do. So let’s now part ways with our industry and rethink this.
The word “customer” is a much more active and bolder word. It’s honest and direct. It immediately suggests a relationship we must deliver on. And our customers think of their customers in the same way.
We have two types of customers: sellers and buyers. So when we need to be more specific, we’ll use one of those two words.
The other thing that has surfaced in a number of my 1:1s is that we have become a bit abstract and distanced from our customers. Simply: we don’t talk about them enough. So, we’re going to do two things.
First, I’m going to work with the support team to surface top issues at every Town Square instead of just CS inquiries per transaction percentages. And on our information radiators. We must feel our customer’s issues every day.
Second, all of our work is in service of our customers. Period. Therefore, we better damn well mention them in every conversation, review, meeting, goal, etc. I expect all of you to make certain our customers are always the first and only focus of all our efforts. If there is an egregious absence of this focus anywhere in the company, tell me and we will correct. If I ever say the word “user” again, immediately charge me $140.
From this moment forward, let’s stop distancing ourselves from the people that choose our products over our competitors. We don’t have users, we have customers we earn. They deserve our utmost respect, focus, and service. Because that’s who we are.
Jack
There was a great profile in the New York Times about Twitter’s CEO, Dick Costolo, which mentioned my work at the company. It’s not a common arrangement, so I’d like to clarify a few points.
In Spring of 2011, Dick asked me to take an operational role overseeing product, design, and brand. Our shared goal was to get those organizations back under him as soon as possible, simply because it was the right thing to do for the company. We moved all of my reports back under him in January of this year after leadership was firmly in place. This allowed me to focus on refining our brand and logo, to work more with Dick and the leadership team on our direction forward, and ultimately return the majority of my time to Square, where I’m CEO. I’m back to going to Twitter on Tuesday afternoons, something I started before taking the interim operational role.
We haven’t talked about this publicly because it’s not what people using Twitter every day care about.
I’m fortunate in life to be a part of two foundational and mission-driven organizations, and I’m always going to fight like hell to make them thrive. And they are! Now back to our work.
March 2011
18 posts
- me: okay. i'm going to delete everyone, then invite you.
- Biz: okay sounds good
- okay, that worked!
- me: nice. now, don't invite anyone yet.
- Biz: changing your name needs to be more obvious
- okay
- me: it didn't ask you to signup?
- oh, dang. that's a bug.
- Biz: no. okay cool!
- me: did it just go down for you?
- Biz: yah
- me: should be back up.
- i'm going to delete you again, and have you go through the process again.
- Biz: okay
- me: okay. try that.
- it's cool. i can follow your number right away.
- so once you update, i get something.
- Biz: okay hold on
- shite
- got an error
- gonna try again
- me: what error?
- Biz: application error when I pressed "done" on the name/pin page
- quitting browser trying again
- hmm still getting it
- is it cause i already been here?
- me: let me look.
- oh, i see the problem. i'll fix it.
- Biz: ok
- me: okay, try now. same pin
- Biz: ok
- nice!
- so easy and smooth
- me: nice!
- what do you think about that sms invite message for now
- Biz: thats gotta be the easiest invite sign up ever
- message is good
- me: wanted to start inviting the odeo people, and had to put in the user/pass
- is that clear?
- Biz: yah
- me: cool. okay. now we can start the invites :)
- Biz: awesome
- how should we do it?
- willy nilly?
- me: yeah!
- Biz: okay!
- Biz: just got your status on my phone!
- watson, come in here please!
- me: nice! update yours
- i'm following
- Biz: hey, that makes me think of a good tagline for twitter
- "do you follow me?"
- me: got it!
- i was thinking of that last night!
- nice.
- Biz: that is good stuff
- me: i'm going to hook up the invite system.
- Biz: sweet baby jesus
- : P
- me: then, we have to figure out the sms in stuff. just have to work out permissions at this point
- Biz: ok
- me: do you remember what the invite sms said? the one with the pin? i've lost the graffle file.
- Biz: was it
- ev: waiting for you to go to twttr.com and enter your PIN: 4013
- i think that was it
- me: oh yeah. what about when you're coming in cold from the site?
- Biz: hold on
- did we do that one?
- it could be the same one
- but from twitter
- instead of ev
- right?
- me: yeah. cool. okay. don't invite anyone yet. let me get this in first.
- Biz: ok
- me: hey there biz
- Biz: yello
- me: try to quit your browser, and then load up sms.odeo.com again
- Biz: ok
- I'm in
- !
- me: try adding me: 4159630000
- Biz: it worked
- my number shows up instead of my name
- me: gotta change your prefs
- Biz: my name is biz in prefs
- lemme try again
- me: really?
- Biz: well, it was in there
- but i just clicked "done" anyway and that worked
- me: now i see you.
- Biz: yah
- me: yeah, we had to delete some things to start over.
- Biz: 4154200000 is drunk
- me: jeremy
- oh, dang. i probably shouldn't be showing phone numbers in the global list. oops!
- Biz: oh yah
- /account/profile/1: just setting up my twttr
- somebody's name is
- * /account/profile/1
- wacky
- me: yeah, that's a bug
- Biz: we should make the little world icon click to all public updates
- me: good point
- Biz: this is ballzy
- !
- me: ! i'm getting sms send in there right now
- meaning we should be able to follow each other via sms soon
- Biz: awesome!
- me: i'm getting sms sending out right now
- csshsh: oh! yeah?
- does it work well so far?
- me: yeah, about to deploy it. soon. have to figure out a better way to abstract it. for now, it's in the user model.
- csshsh: okay..
- i will take a look at it, in a bit.. maybe i have some ideas..
- okay.. quick ideas..
- i would put the sms class in app/models
- it's part of the domain model..
- me: a new sms model?
- csshsh: na. i would move the one that currently is in lib into app/models
- me: really?
- hrm
- csshsh: and as far as testing goes, i would just stub out the send method
- yep.. it really is part of the domain model of twttr
- some people think that only objects that inherit from ActiveRecord: :Base should go there. but thats not true..
- an sms is as much part of the domain model as user, status, etc
- me: hrm. yeah, that class really needs to be worked on. i guess we should put the sms char limits in there as well.
- csshsh: ah. yeah. true..
- it's gonna be so nice to try out the sms implementation =)
- me: yeah!
- it's working now.
- following
- csshsh: nice!!
- me: Jeremy! How do I run a migration on guerrero? and what is the password for sms.odeo.com and staging-sms.odeo.com?
- on mission rake deploy
- make sure the database.yaml_staging is pointed at brannan
- oh, and su - oadmin
- me: i'm getting an application error there, and not sure why.
- Jeremy: after scrum?
- me: can i get access to the logs on guerrerro?
- Jeremy: or now?
- me: yeah
- Jeremy: which?
- me: anytime
- Jeremy: ok now
- Jeremy: you have sudo on guerrero now
- the rails log is in /var/log/user.log
- apache logs to /var/log/apache2/access.log (and error log)
- me: could you reset my password? it doesn't seem to be working
- thanks!
- Jeremy: this will be changing, as apache will be logging everything to syslog, and all logs will end up in the /var/log/remote/$HOST directory on valencia starting tomorrow or friday at the lasted
- latest
- resetted
- me: thanks!
- me: biz! i like the new look
- Biz: yeah?
- me: yeah, i'm changing it now.
- me: your whole tiwitter is green!
- did you set the <style>?
- Biz: yah, i put a bkg color in my update
- me: nice.
- i put a span tag in mine.
- so it should just be that status entry that's green.
- Biz: i used a font tag on my latest deal
- but my twitter page is wacked causa the old one
- : P
- me: yeah, we'll have to minimize that.
- maybe you can set another background to change it back?
- Biz: is it on the front page for you now?
- me: just says happy st. patricks day
- Biz: and that's making the whole page green?
- its not on firefox
- I'll change it
- me: not for me. only when i go to your page.
- click on biz, that is.
- Biz: oh right, yah
- its the one that says" Biz: listening to the pixies live from dublin"
- that's doing it
- me: the background?
- hrm
- Biz: yah
- me: want me to change it?
- Biz: sure
- me: this is why we need that strikethrouh. maybe it cancels out all styling as well.
- Biz: that'd be good
- me: oh, you put a body tag in there.
- we should disallow that.
- Biz: yah
- me: how about that
- Biz: good its white again
- Biz: my update button won't work anymore
- me: how about now?
- Biz: still won't work
- is it cause i tried to embed video?
- me: weird. could be.
- it just does nothing?
- Biz: oh man. I broke my twitter!
- plus, the video won't play
- me: i'll try to delete that message.
- Biz: nice!
- you fixed it
- me: let's play with that.
- maybe it was missing an ending tag
- Biz: i copied and pasted from google video
- me: hrm
- csshsh: oh! by the way.. that statuses_including_friends thing with a time range works:
- users(: jack).statuses_including_friends(10.hours.ago, 7.hours.ago)
- me: nice!
- csshsh: we can remove this:
- user can choose to receive status change notifications via Email for followed users
- right?
- since we will do sms right away?
- me: yeah! all the email stuff
- csshsh: cool! looks like we are doing good timing wise
- me: yeah! on track
- me: we're going to work with jeremy to deploy tomorrow. but we have a good start. people are using it. it's on my machine, but broken currently. our current progress is on the trac wiki.
- tonystubblebine: great
- me: still waiting on the sms integration. i'll do that next week when florian is out of the loop.
- tonystubblebine: are you going to want a companion next week?
- me: i don't think i'll need one, but if anyone has free cycles they want to spare, that would be great. we'll have most of the rails stuff in place though.
- tonystubblebine: what are the hurdles on the sms side?
- me: just getting the random temp short code from simplewire. then being able to get something listening at sms.odeo.com/post to the xhtml that comes over. we have the ruby libraries in place and ready to go for both sending and receiving.
- tonystubblebine: what's the hold up on the random temp short code?
- me: uh, seems to be the application process. noah is handling that. i'll have to check the current status with him.
- tonystubblebine: ok, thanks
- i have to steal florian for a bit tomorrow
- me: cool
- me: we have following working now on my machine
- Biz: sweet!
- will your deal work for me now?
- me: should. just don't hit the help link
- worked for ev this morning
- Biz: nice!
- works great!
- me: cool. yeah, add ev's phone number and you should see his stuff
- we're working on stats now.
- Biz: sweet!
- me: and fixing this up: http://jacks.local.:3000/status/
- Biz: ev needs to update his status!
- oh wait
- i think I added evs number wrong or something
- no that's correct
- me: did it work?
- should say ev.
- maybe not us a 1
- use
- Biz: now there is "ev" and another person named "14158459000"
- me: huh. will look into that.
- Biz: ev is in my random person section thoguh
- me: yeah, put his number in without the 1, that should fix it..
- Biz: ah
- okay
- can't delete friends
- yet
- me: yeah, just remembered we need to do that.
- Biz: that werked
- me: i'll add it to the wiki.
- the protect thing should work too. keep you out of global
- Biz: is protect working different than we orignially thought?
- we had two modes
- anywhoo
- gonna fiddle around
- me: no. just the secret word mode is not working yet. the deal was to make it look like the sharing stuff on itunes
- you can protect, and you can further protect with a password, if you enter it.
- just more concise instead of 2 checkboxes
- Biz: so "protect my updates" means you are not global and only folks who know your number can follow you
- and the secret word is extra protection
- that was the plan right?
- me: yeah, that's it.
- Biz: cool, the colon after "protect my udpates:" threw me
- made it seem different
- awesome
- me: oh yeah, need to clean that up with css and the extra text eventually.
- Biz: who else is on here
- whats florians number
- dude i just starred florian
- me: 4152999000
- Biz: neat
- me: we probably shouldn't be able to star globals yet, have to work on that.
- Biz: yah
- also, i didn't get florian from that number
- got a number like before
- should I use the 1 this time?
- don't worry about it
- its coolz
- me: he used 12345
- Jeremy: hey, which server are we going to have respond to http://sms.odeo.com/post ???
- me: uh, any that are easy to put something on. i'm not sure yet. suggestions?
- Jeremy: is something rails?
- me: yes. though, it could just be a python or perl script if need be.
- but rails ideally.
- Jeremy: ok, it points to guerrero now
- me: nice! thanks
- Jeremy: we'll have to setup some svn and rails / vhost stuff
- me: cool. i think we'll be ready to start on that in the next day or two
- Jeremy: ok
- me: We have loging working on twttr. Working on actually setting the status now.
- login i mean
- Biz: holy crap thats awesome
- we have the domain too, right?
- me: dunno, did you buy it? or was that noah?
- Biz: ev bought twttr
- me: ah, cool. i guess we do then. deploys haven't been set up to it. it's just on florian and my work computers.
- Biz: thats cool
From: jack
Date: Wednesday, March 8, 2006
Subject: twttr sms n2
To: Biz Stone
TWTTR (89887) http://twttr.com/
Add Someone
4159632357 > TWTTR
4155551212
TWTTR > 4159632357
Added Noah. Last msg: Eating @ gratitude
4159632357 > TWTTR
4155551313
TWTTR > 4159632357
That person isn’t a member yet, but we’ve added them and sent your last status.
4159632357 > TWTTR
ev@gmail.com
TWTTR > 4159632357
Added Ev. Last msg: driving to blowfish for sushi
Set Status
4159632357 > TWTTR
reading at home for a bit
4155551313 > TWTTR (NON-MEMBER)
i’m checking this deal out
TWTTR > 4155551313
Wanna be able to update your status from twttr.com? Enter this PIN there: 4312
Getting Status
4159632357 > TWTTR
TWTTR > 4159632357
Biz:passing west oakland station
Noah:buying sunglasses
Crysta…:satoshi tomeii!
4159632357 > TWTTR
florian
TWTTR > 4159632357
Florian:making out in south park! ciao!
4159632357 > TWTTR
look dom
TWTTR > 4159632357
Domin…:free tacos. free tacos. free tacos.
4159632357 > TWTTR
what up 4155551212
TWTTR > 4159632357
Noah:on a sailboat. it’s cold. i miss jack.
4155551313 > TWTTR (NON-MEMBER)
look 4155551212
TWTTR > 4155551313
Noah: on a sailboat. it’s cold. i miss jack.
Following People
4159632357 > TWTTR
follow noah
TWTTR > 4159632357
You’ll receive notification every time Noah updates. To stop, send “leave Noah”
4159632357 > TWTTR
leave 4155551212
TWTTR > 4159632357
To get Noah’s status, send “noah” at any time.
Inviting
TWTTR > 4155551313
Your PIN is 4312. You can tell the world (or friends) what you’re doing by repling to this message or going to twttr.com .
Banning
4159632357 > TWTTR
ban adam
TWTTR > 4159632357
We’ve banned Adam from your twttr. To un-ban, send “allow adam”
4159632357 > TWTTR
allow adam
TWTTR > 4159632357
Adam is now allowed to read your status.
Quiting/Rejoining
4159632357 > TWTTR
quit
TWTTR > 4159632357
We’re hiding you. To unhide send “start”. To delete completely, send “delete”.
Availability
4159632357 > TWTTR
away
TWTTR > 4159632357
You’ve been marked as away. Send an update to become available.
Retrieve a PIN
4159632357 > TWTTR
pin
TWTTR > 4159632357
Your PIN is 4321. Enter it at twttr.com
Help
4159632357 > TWTTR
help
TWTTR > 4159632357
From: Biz Stone
Date: Tuesday, March 7, 2006
Subject: Chat with Biz Stone
To: jack
4:36 PM
me: how about this for a short code: twttr (89887)
4:37 PM
Biz: sounds good does it mean something?
oh sorry
twttr
nice!
me: yeah,
just no vowels
4:38 PM
Biz: the domain is available too
me: oh, nice.
From: jack
Date: Tuesday, March 13, 2006
Subject: twttr work
To: Noah Glass
twttr stories
Monday
registering by giving mobile # and confirming with PIN
Basic tests for that exists and passes. Could you check the view for
it, Jack? Thanks!
registration through email invite with PIN
login with an existing mobile # by entering PIN
Tuesday
user can update status
user can invite friends by inputing phone #s
user can get status for friends and self
user paginates through status timeline in 12 hour increments
Wednesday
user can allow site to remember their login information (convenience)
user can see all public updates
user can choose to receive status change notifications via Email for
followed users
user can get statistics about followers and pings
user can see status marked as public
Thursday
user gets rotating sms hints that admins input
user can view status updates of friend’s friends with correct
permissions (marked public or user knows phone #)
user can see own history or friend’s history individually
Friday
user can choose to receive status change notifications via Email for
followed users
user can change phone #, name, and PIN
user can delete account
LATER
SMS only registration
registration through SMS invite with PIN
user can get help
user can protect their updates with an optional secret word, by
default, updates are global
user can choose to receive status change notifications via SMS for
followed users
possibly re-send lost PIN for registration (SMS is flakey)
- me: Biz! How goes? We're starting work on the twttr
- implementation today.
- Biz: really?! NICE
- me: yeah, i roped
- florian in. i think we'll be able to get most of it up and working by
- the end of this week. then i'll do the sms and style side next week.
- along with ajax stuff.
- Biz: two weeks and we'll have twttr.
- yay!
- me: yeah! should be pretty quick. have all of florian's time
- and all of mine.
- Biz: oh man that's awesome
- Biz: i've looking
- longingly at my empty sms on my phone throuhout the panels
- Biz: sucks that teen people has the shortcode
- me: i know! that's going to
- be tough. doesn't help that the code also spells TXT
- Biz: hmm
- yah
February 2011
1 post
January 2011
1 post
December 2010
2 posts
A pre-flight checklist before you hit the “Tweet” button.
1. Has correct spelling, grammar, & abbreviations
Common and friendly SMS abbreviations are OK. Look to @MargaretAtwood for best practices.
2. Contains a URL
Tweets should be clickable, leading to an image, video, or page describing more.
3. Uses an active voice
Communication that is direct and frank is the simplest to understand (and remember).
4. Uses a friendly and approachable tone
Don’t be bland! But don’t overdo it.
5. Encourages interaction
Encourage the reader to take action immediately. Click a link, view a picture or video, retweet and share, or answer a question (e.g. “What do you use @Square for?”)
6. References other Twitter accounts (if applicable)
Seek out official accounts to link to with @ syntax. If it forms a greater name, make it fit (e.g. “@Jack Dorsey”, “@VirginAmerica Airlines”).
7. Retweetable
Keep Tweets short so people can Retweet them without editing when retweeting with “RT”.
August 2010
6 posts
May 2010
1 post
“Expect the unexpected, and whenever possible, be the unexpected.”
Those words are from Lynda Barry’s novel “Cruddy.” I’ve carried them with me for some time. There’s a lot in my life I wasn’t expecting.
One is the realization that I stood at this pulpit and delivered a reading for my own graduation…15 years ago. Unexpectedly, I’m old.
When I was young my mom would drag my brother and I to Famous Barr and shop for bags and purses on what seemed like a weekly basis. For my mom, it was about finding the perfect bag (and using my grandmother’s employee discount), and a joy. For me, it was a fate worse than the most painful death I could imagine and was spent sprawling out on the floor until various salespeople barked that I was blocking potential sales.
My parents always loved living in the city. The first time I remember falling in love was when I fell in love with the city. I loved it so much I became obsessed with drawings of cities: maps. I would constantly get lost in them, discovering street names, secret places, and entirely new sections of the city yet to be walked by me. I found joy in staring at a map of a city and wondering about the life occurring within it. I had to do something about it. At 15 I taught myself how to program and draw a map on the screen. I learned how to draw dots and make them move within the borders of the map. To me, it was the most beautiful thing I had ever seen. But my dots had no meaning. Through a fledging connection to the Internet provided by Wash U, I found a public database of bike couriers, ambulances, and fire trucks constantly broadcasting where they were, and most interestingly, what they were doing. I found meaning for my dots. I found a beautiful, living picture of the metropolis I loved. I also found a new obsession with finding the perfect courier bag.
Unexpectedly, that early fascination with bags and maps and couriers and the constant desire to know what the people in the maps were doing, became Twitter. Thanks, mom. And thanks to the people here at Bishop DuBourg for the encouragement and strength to explore.
When I was sitting in this Cathedral 15 years ago, I stressed over answering the questions “what’s next and where should I go?”. Frustratingly, my graduation gift, “Oh, the Places You’ll Go” by Dr. Seuss, never answered that last question.
Unexpectedly, after what has felt like an epic journey, my maps did. I simply followed what I loved, discovered and learned from one surprising realization to the next, and worked hard and patiently to share what I expected to see in the world.
As you leave this Cathedral tonight, expect to work hard, to enable others work, to be patient, to discover and follow your true love, and 15 years from now, to stand at a pulpit and share everything you weren’t expecting. Congratulations, and thank you.