User Experience as a Developer

Jeun Yun Tsang

As developers, we often tend to get stuck in the details of choosing frameworks and figuring out the best way to structure a project. There are probably even some developers who spend more time thinking about naming conventions rather than focusing their attention on more important things. One of those things in my opinion, is the user experience.

Although I don't think it's necessary for developers to go and get design certifications and spend years studying user experience design, at the minimum I think it is important to understand the basic principles and also the design team's motivations for designing something the way they did.

Why is UX important for developers?

Some situations that might occur on a typical project.

  • The UX team passes over some specifications to the developers, but the end product isn't how it was envisioned.
  • The UX team makes a mistake or misses something out in the specification, which the developers notice but don't mention it because it's what they were given and it's "not their job" to fix it.
  • Edge cases weren't considered and so a some users have a poor experience. The product is not inclusive for the minority groups, which could add to a lot of users in the end.

The reality is that developers are the gatekeepers between the product being just an idea and something that can actually be interacted with by the end user. If the end product is filled with bugs, or doesn't work well, then the users will have a bad experience and in the worst case stop using your product (from a business point of view you may have lost them money). By thinking more about the users and their experience with what we have built, not only can we have more pride in ourselves, but also ensure everyone else is happier too.

Thinking about the users

So you've decided to think more about the users in order to improve the end product, but what do you need to actually consider? Here are a few suggestions.

  • Ask the UX team if they have defined target users (such as with personas) and think about any possible opportunities for improvement such as; do the users mainly have a slow internet connection, have slow devices, have disabilities, etc.
  • After developing the product, try to test it from a fresh point of view with no biases. By looking at the product from a user's point of view, you may find that the implmentation does not match what a user might expect. For example, does some animation take too long to complete, or is the data formatting wrong, etc.

Make it easier to find potential UX pain points

In order to make it easier to find potential UX problems, it requires a team effort between the development and design teams. Even though developers may not be responsible for creating the UX documents, there is no reason why you can't request some extra documents to make your life easier when developing a product. You may also want to check first if certain documents already exist but weren't shared outside of the design team due to siloed teams with low cross team collaboration. If this is the case, you may need to think about creating a better environment that allows better collaboration between teams before considering going further.

Documents that can help you find potential pain points

  • Personas: These describe the main target users, which help you as a developer make decisions on what technologies will best suit the user. There's no point developing something that doesn't work on Internet Explorer if your users are still part of the generation that still uses older browsers.
  • Customer Journey Maps: These should lay out the journey a user takes to complete a task and can include actions that exist out of your product. If your user is expected to be travelling a lot while using your product, you need to make sure it is optimized as much as possible for mobile devices and slower connections.
  • User flow diagrams: I personally prefer flow diagrams that include wireframes (or designs at a later stage), which will describe the whole flow of the user within your product in order to complete certain tasks. These can help developers find potential edge cases they may not have thought about just from looking at specifications or static designs. For example, if a user clicks a button to perform an action, should that button have extra validation checks in order to stop the user doing something potentially system breaking?

Test from a user's perspective

Doing this can be quite difficult, as everyone has their own preconceived ideas, biases and domain knowledge that allows them to use and evaluate products in a way that is different from the average user. The first thing you need to throw away is your pride as an experienced developer. Just because you have experience building things before and have certifications, etc., doesn't mean things are perfect or suit the user's needs. Adopt the mindset of someone who is not as tech savvy (depending on your target user) and does not understand the workings of the system you have built. Try not to think "I need to do this action in this way, because that's how I built it", and instead try to think "I have no idea how to do anything on this screen, let me explore".

Consider adapting your testing environment to that of the end user (which is hopefully defined in the previously mentioned personas and customer journey maps), such as testing on lower power devices, throttling your internet connection, using older browsers and OS versions, etc. This should hopefully give you more confidence that the product you have built can actually be used by the end user without any struggles.

Build a product for the users, not yourself

This was just a quick guide and introduction to how developers can adopt a different mindset to make sure they are developing the best possible product for their users instead of choosing techonology to suit their own interests. I hope you will take these ideas and go on to create some amazing products that delight users.

A summary of the key topics:

  • Be motivated by the user's needs rather than your own interests.
  • Create a more collaborative working envrionment with designers to ensure you have the information you need to make better informed decisions
  • Adopt the mindset from a user's perspective when testing.

Resources

If you are interested in learning more about user experience design and design thinking, here are some recommended resources.