There are so many ways a good developer can help improve the experience of users. Here are the top four. In no particular order:
- Creating User Centric Forms
- Providing Better Error Handling
- Improving the Handling of Edge Cases
- Maximising Performance
Let us begin with creating better forms.
Creating User Centric Forms
Completing a form online can be one of the most frustrating web experiences out there. Although the designer often provides a visualisation of the form, it falls to the developer to fill in the gaps and make the form a reality. Unfortunately, as with so many things, the devil is in the details. So what should a developer be aware of when creating forms? Here are a few things to watch:
- Try not to split information across multiple fields. User’s don’t always realise they can tab between fields so breaking up something like a phone number can be annoying.
- Use intelligent validation. Don’t require users to enter data in a specific way. For example, do not reject a Postcode because it contains a mix of lower and uppercase.
- Only show necessary fields. ie, don’t ask users to select a card type if this is something you can lookup based on the credit card number.
- Reduce the number of options. For example, if you have a country list, only show countries that are relevant, rather than every country on the planet!
- Remember data. Nothing is more annoying than a page losing your data because it reloaded or a session times out.
- Avoid asking users to reenter data. Whether it is confirming their email address or providing the same data for multiple systems, users hate retyping data, especially in situations similar to the image above.
To be honest, the list could go on and on. But you get the idea. Forms are an area in which developers are heavily involved and yet have the potential to harm the experience.
Providing Better Error Handling
Many designers are not “details” people. That isn’t to say they are not detail-oriented, but often times they have had an experience where they finish an interface design yet fail to address many of the states in the interface. It, therefore, falls to the developer to fill in the gaps. One example of this is error messages.
However, getting errors handling right is not easy. What we say to users at this point can either help them recover or destroy the experience. For example, 404 error pages should be helpful and apologetic. It is not the time to be funny when things go wrong.
- Avoid nonsense words. Most people don’t know what 404 or 503 errors are, plain and simple.
- Say sorry! I’ve read too many error messages that blame the user. They suggest it was the user that made a mistake, not the website.
- Don’t try and be funny. We have all seen comic 404 pages, but that is not the right moment to be smart. You have just inconvenienced the user, so take it seriously.
- Provide a way for the user to recover. Make suggestions on what the user might want to do next to fix the problem.
- Make sure the user sees the error. If somebody has just completed a field at the bottom of a form, don’t display the error at the top. Users could easily miss it.
Improving the Handling of Edge Cases
Because developers have such good attention to detail, they often get hung up on edge cases. They become obsessed with secondary audiences or users who want to do something unusual and specific.
Sometimes we can get so hung up on those issues that we end up making the experience worse for everybody else.
Take for example the third line of the address field we add to almost every address form. It exists because a small percentage of users need that extra field. But why does it display by default? After all, only a small number of users will ever use it, and it is just a distraction for everybody else. Why not hide that field by default and allow those who need it to click a plus button to add another line if required?
Finally, and most importantly, we come to the subject of performance. Performance is something most developers are really passionate about. They know that users don’t hang around waiting for a site to load and work tirelessly to make a website as fast as possible.
But, some developers tend to focus just on the data and not on the experience. They look at how fast the page is loading, not how quickly it feels like it is loading.
Lots can be done to give the impression a site is faster than it is. For example:
- Provide instant feedback when a user clicks on a link or button rather than leaving them to wait to see if a page refreshes.
- Load an image of a video, rather than the video itself. Only load the video when the image is clicked.
In some ways many of these suggestions are counter-intuitive. After all, loading a low and high resolution of an image makes the site slower. But it won’t feel that way, and that is what is important.