What's In A Name?
“What's in a name? That which we call a rose by any other name would smell as sweet.”
I beg to differ with Shakespeare here - I don’t think any flower would be terribly happy to be called “stinkbud” or “garbageblossom.” Names matter!
Warning: several years-old Doctor Who spoilers ahead - don't say I didn't warn you
Some names are given to us, some are chosen. Regardless of how you got yours, chances are that you have a preference. If your legal name is Mister Mxyzptlk, you might need that to appear on your bills. In real life, however, if everyone calls you Fun Jimmy - this makes it a little off-putting to constantly receive emails that start off “Hey Mister Mxyzptlk!” or some variation.
Historically, we asked for our customer's first and last name when they signed up for Skylight. To match the friendly, conversational tone of our emails, we would often address our customers by their first name. While this is a fine approach, it doesn’t quite work if your first name is Jonathan but everyone you know including your grandmother calls you Johnny Five; not to mention that it is often incorrect or even offensive in other cultures outside of North America.
Being that we send a fair amount of emails to our customers, we want to make sure we’re doing the best possible job of not making us seem like weird robots, or worse. The solution? Nicknames!
We have now switched over to collecting customers' full name and an optional nickname. We also rolled out a pretty fun little widget that tries to guess what you would like to be called on signup (and lets you choose your own nickname if you'd prefer).
When you like the nickname we've guessed for you:
And when you don't so much:
We also rolled out a similar widget on the Settings page for existing customers. If you like the nickname we guess for you:
And if you don't care so much for it:
And of course, if you change your mind:
Naturally, not everyone has a first and last name with a single space between the two, so both widgets also work for people whose first names include spaces:
debounce method - Rocky and I had to consult the internet for an analogous solution, and ended up creating our own jQuery
debounce plugin based on a blog post by Dave Walsh.
debounce is what lets us add a bit of breathing room to the interaction, providing a smoother experience for the user as they enter their name. It's called as the user types their full name, allowing for a brief pause before calling the method that displays the various prompts, thus avoiding some weird choppiness that might occur otherwise.
If nothing else, scouring the internet for these things that Ember provides so easily definitely gave me an even greater appreciation for Ember as a framework!
Also worth noting: in our initial push, we had to port all the existing customers to new system. To avoid suddenly changing the way we address our customers, we combined everyone's first and last names into their full name, while copying their first names over as the default nicknames. This solved the "name stability" requirement, but what about all of our existing customers who might not want to be addressed that way?
For this reason, we also added a
nickname_confirmed field to the database that defaults to false. Once a customer has chosen their own nickname or agreed to be called by their first name, we switch this field to true and fine-tune our heuristics to make this choice extra sticky.
Collectively, we have probably spent more than a week's time on this feature. We have gone through many iterations of the concept and prototypes before arriving at the version that felt right to us. Although it might feel like overkill to spend that much effort on a seemingly small feature, we believe it is ultimately all the little things that set us apart and make Skylight the product our customers love.
What's the story behind your name? Tell us about it by signing up for your 30-day Skylight free trial! Got a friend with a cool nickname like "Tank" or "Bizcuit"? Refer your super cool friend Bizcuit (or Tank) and you both get $50 in credit.