Improving user consideration in development
While web designers consider end users throughout the design process, developers can get caught up in implementation details and lose focus on why they are writing code in the first place — users.
In this article, I will explore how developers can become more aware of the issues that lead to forgotten users and offer solutions that might assist in helping them consider the end user in everything they write.
D̶e̶s̶i̶g̶n̶ Empathy-Driven Development
You may have heard the term design-driven development. In this development pattern, designers are tasked with scoping features & requirements and visualizing exactly how those features will be implemented.
You may have also heard the term emotion-driven design. In this form of design workflow, designers are guided by the end users emotional state in order to deliver an experience that aligns with their mental state. For example, if a user is attempting to contact support, there is reason to believe that they may be frustrated, annoyed, or confused. Using overly playful or heavy-handed UI interactions will likely cause that user even more frustration, annoyance, or confusion. Designing an interface that is very linear and functional is a good way to ensure users can get help quickly and alleviate those feelings.
Whether a project is design-driven or not, a users’ mental state, either perceived or expected, is something that leads design decisions throughout the design process. There is a lot of thought that goes into how the user feels when interacting with a product. When developers get the design from designers, this important work can be lost during the handoff.
How Users Are Forgotten
There are multiple ways in which the users’ feelings can be swept away in the development process, but a few stand out to me as being larger contributors.
- Interaction design - This can go a long way when giving an application mood, feeling, & environment. No matter how good the interaction design is, if it doesn’t get fully and properly implemented, the app will likely suffer as a result. Using interactive prototyping tools is extremely helpful in remedying this problem and making those prototypes easily accessible, and will remind the developer to consider motion design during the development process.
- Fluctuating functionality - Most project development pipelines are not a linear or waterfall process. They are highly iterative, and as requirements change and features are added, functionality can be added as well. As new functionality is included into a project, some of the fine grain design details can be omitted. Because of this, taking take the time to properly consider new functionality is pivotal.
- Project Fatigue - As long-term engagement projects go on, developers tend to lose sight of the project as a whole and focus on just the piece that they are currently working on. While compartmentalizing the workload is beneficial in keeping development on track and on schedule, seeing the app from a more global and consistent perspective can be lost.
- Accessibility - All too often, design implementation that makes an application fully accessible to users with disabilities is often glossed over. Not surprisingly, as a result, developers either don’t know to implement these features, or they are omitted because of a lack of design direction. In either case, making accessibility a priority will safeguard your application from being exclusionary and unusable to those with disabilities.
So What Can We Do?
Making the user the most important aspect of any project is a great approach to combat the aforementioned issues. Solving these problems can really be summarized with one word: communication.
Somewhere along the line, the notion of “designer handoff” became a normal step in the web development pipeline. This approach is risky because it can leave a lot of questions unanswered and a lot of black holes in poorly considered designs. When developers begin to implement the design after the handoff, UI details that may have been missed in design are often filled by the developer without consulting the designer. This can lead to UI that is not in line with the rest of the application or worse, poor user experiences. Communication between designers and developers after handoff is paramount in delivering a solid product.
Another way that developers can consider users more frequently is by writing user considerations right into a features’ acceptance criteria. The following examples tell the developer how a user will likely be feeling—or should be feeling—while using a certain feature or flow.
“The user should be able to log in using the form easily. The application position is hopeful/happy.”
“The user should be able to unsubscribe without barriers. The application position is apologetic/regretful.”
Using this type of language in acceptance criteria can prove very beneficial in delivering a quality product. Additionally, the use of personas in application development can aid in making the application keep a consistent tone, voice, or feeling.
…and Empathetic Development for All.
While final products will still ship and users will still onboard without considering any of the aforementioned issues, it is important to recognize how those products can be improved by doing so. At Helpful Human, we believe that establishing and keeping the line of communication between designers and developers open will result in a more pleasurable and personable user experience.
The axiom that I want to communicate most and what I feel is the most important takeaway from this is that practicing empathy in your work will help you become a better developer. Not only that, it will make you a better, more helpful, human.