Looking at design from a “developer” perspective, becoming a designer is a natural step. But not all of us have the design gene in our DNA. Many of us are more technically-orientated, who enjoy solving complex technical puzzles and building applications with frameworks, tools and patterns.
So, as developers, we should approach the subject of user experience (UX) from a different angle. We need to take a more tactical approach by learning how to incrementally improve the UX by hacking into our users brains. Now, that sounds a bit crazy, but believe it or not , most of the UX is driven from deep inside our users´ brains. We are not talking about mind reading here, but sometimes this hacking process can get confusing and complicated. This can easily leave us to fall into pitfalls and misconceptions.
In this article, we will dive into some of the most common mistakes developers face when building interfaces and functionality. The most important thing here is simply to be aware of them, rather than searching for specific solutions to each issue.
So let’s start by clearing up what is probably the most common misconception that developers have about UX…
The UI serves as the delivery vehicle for the user experience. While UI design , cool animations and sexy graphics are a part of UX, they are actually a smaller part than most developers realize. UX is much bigger. How big? We can think of the UI as the top of an iceberg, the part that you see , and what tourists and photographers come to take pictures of. But underneath the surface, there is a massive structure comprising of two main blocks: Design and technology (where our technical skills come to play); and science and research (which sets up the core of UX as a field of study).
But let’s not get too deep into concepts, and focus on real-world applications.
Remember when we said UX is all about the user? Well, that pushes us somehow to become user-centered, which professionals define as putting the user at the center of every decision we make. These UX gurus spend a lot of time on research, trying to find who the user is, and what the user needs.
Here are 7 common user-centered pitfalls that developers often fall into that can negatively affect the user’s experience with their applications:
1- We throw data at the screen
This pitfall is directly related to developers´ tendency to have technical tunnel vision. For example, a developer gets a requirement that the user needs to see some specific information that is on the database. The developer wants to fulfill the requirement as quickly and easily as possible, so they throw a datagrid on the screen, connect it to a query and done! The problem is, that the developer did what was easier for him but not the user. Often in cases like this, the user sees data and not information, so they have to interpret what came from the database into something that is actionable. Plus, the control that was used might not be the best choice for the specific need.
2- We don´t speak the language of our users
Since we spend lots of time working with technology, it is easy to forget that the user doesn’t always (and probably won’t) understand technical terms and jargon. Remember, use normal, everyday language, and get someone who isn’t a technologist to review and edit your work.
3- We force the user to think like a DBA
This pitfall most often affects enterprise developers that create data-heavy applications. The pitfall is that it can be easy to force users to work the way the database works. Similar therefore to the previous pitfall, you may force your users to think about transactions, commits and other technical terms, instead of giving them something intuitive.
4- We create a messy UI
Now , some of us are better at laying out our UIs than others. Not all of us are blessed with the UI design gene in our DNA. But I often have seen developers use their lack of design skills as an excuse to be lazy, which ends up leaving the user with a mess.
5- We are inconsistent
Another pitfall that developers can fall into is being inconsistent across the UI and their applications. Some common examples include: inconsistently placing command buttons (switching up save and cancel between screens); inconsistently using command names (labeling one button “save”, but on another screen calling it “submit”); or having form fields that don’t line up together. So let’s try to pay more attention to details. Remember, when talking about UX, every detail matters.
6- We code for the “expert user”
This is a pitfall that I have personally fallen into in the past. As developers, when faced with implementing a solution for a complex piece of functionality, it can be easy to use the “expert user” excuse. Instead of working to provide an easy to use and intuitive UI, we take the easy route and code for the “expert user”. This is a mythical user who has an advance understanding of technology and likes to do things the hard way. This pitfall is a case of us following our desire to solve problems quickly and easily for us, versus what is best for our users.
7- We code for edge cases
When we are not trying to solve problems in the quickest and easiest way possible, the pendulum often swings in the other direction and we try to create code that solves every conceivable circumstance. This is another pitfall that I have fallen into in the past. Because we are puzzle solvers , we often try to write code to solve problems and edge cases that simply just don’t exist, at least in the real world. We often say to our colleagues: “well , the user may want to do this, the user might need to do that”. Typically this is just an excuse for us to write some really cool code. But by understanding who our user is and what they need, we can reduce the complexity in our code and build the right thing the first time. Otherwise, we deliver overly complex applications to our users, killing the user experience.
Remember that the key is to identity and confront our mistakes, and keep an open mind. In the end, we will become much more valuable as developers by making better decisions and help reduce the risk of failure.