00:00:06.480
Hey everyone, I'm Derrick. First, just ignore the Ignite sign here; I just gave an Ignite talk a couple of months ago in San Francisco. We're going to discuss the concept of keeping it simple. As engineers, we tend to over-engineer things, primarily because it's fun. However, we must also consider the users. It's about finding the right balance between simplicity in engineering and simplicity for our users, and when we achieve this balance, the results can be quite positive.
00:00:15.759
Let's look at this in the context of a signup experience. A normal signup form is fairly effective because it allows the user to avoid repeating themselves, especially concerning their email address. However, if a user makes a typo in their email address, it results in a very frustrating experience. Essentially, you can lose a user because they fall into a black hole. This issue is particularly prevalent if you are using email confirmations.
00:00:30.599
On one end of the spectrum, we can solve this by simply adding another field to confirm the email address. However, the problem with this approach is that we end up optimizing for the 10% of users who actually make a typo, while not helping the remaining 90%. This isn't an ideal situation. Another approach could be to create a fantastic solution through predictive analysis, like checking MX records; however, that requires significant effort for only marginal returns. We hypothesized that we could add a prompt below the email form whenever a user types in an email. This way, the user might take a moment to double-check for any mistakes they might have made. However, this method can feel repetitive and, in some cases, condescending to the majority of users.
00:01:21.119
We analyzed the data from our email bounces and discovered that most errors were occurring in the domain part of the email addresses. This is likely because most people are used to typing their handles elsewhere and might be entering them from different accounts, which often don’t present typo problems. There are many common typos that users make, and you might be surprised at how frequent and severe these mistakes can be. To address this, we implemented a simple suggestion method, similar to what Google does, completely on the client side in JavaScript. Once the user types an error, we can suggest corrections. The initial version of this feature was developed in about an hour, and after a week of data collection, we noted a 50% improvement in our email bounce rates. This indicates that even small nudges can significantly improve user behavior.
00:02:38.240
Furthermore, there were no existing solutions to handle this issue, so I open-sourced the project called MJS, which autocorrects any misspelled domains against a preset list of domains that you provide. It's available on GitHub, and at last count, it had over 2,300 watches. We're on the lookout for contributors and maintainers, so please come talk to me if you're interested. It has been widely adopted by several notable companies, including Dropbox and Uber. Some of our latest contributions to the project include a keyboard distance-based string similarity algorithm. This algorithm attempts to correct entries based on how close the incorrectly typed keys are to each other.
00:03:59.960
In conclusion, maintaining simplicity can have a huge impact. As engineers, we should refrain from over-engineering and focus on keeping it simple for our users as well as for our engineering processes. Thank you for your attention. Additionally, I'm speaking tomorrow on creating rich applications using Rails, Backbone, and CoffeeScript, so feel free to join me then. If you see me around, don't hesitate to stop me and chat.