Agile frameworks have taken over the software development world. For good reason – when you are Agile, you can easily scale up, iterate and quickly react to a constantly changing environment.
But for all its benefits, Agile doesn’t really consider the end-user, nor does it consider the steps necessary to craft a great user experience (UX). Great experiences are born from human-centered design (HCD). While it has similarities with Agile, using both methodologies at the same time comes with some challenges.
Check out my previous blog on the basics of human-centered design: user testing demystified.
In this post, I will share with you:
- A brief summary of Agile and human-centered design
- Challenges you will likely face when marrying Agile and HCD
- How to mitigate these challenges and succeed
Let’s get to it.
A brief summary of Agile and human-centered design
In Agile, rather than scoping out the whole product, you develop your software in short “sprints”, which typically last 1-4 weeks. Each sprint is self-contained, so you only focus on a limited number of tasks that you define at the beginning of each sprint. This ensures you have a working product as early as possible.
Agile software development models are usually depicted as a wheel, cycling between planning, designing, developing, testing, deploying, and evaluating. Note that all steps are not necessarily present in every iteration.
In HCD, you design products to serve your users by starting small and constantly iterating. Iterations generally cycle through four main steps:
- understanding the context of use
- defining goals
- creating solutions
- evaluating your solutions (often through user testing)
Each iteration makes the product a little better, refining the product and improving the overall experience for the user. For more on HCD and user testing methods, read my previous blog post.
The human-centered design (HCD) process (simplified from ISO 9241-210) is iterative, and champions constant evaluation and reframing of your designs and solutions.
Challenges of using HCD in an Agile environment
Agile and HCD have a lot in common:
- Both emphasize iteration
- Both involve constant evaluation and testing after creating solutions.
- Both can essentially run indefinitely, which is especially important in this world of continuous services
That said, combining the two is not always as easy and seamless as you might think. You will face some challenges, including:
Agile moves fast
A main benefit of Agile is its speed, but UX work often takes time. You have to involve stakeholders, recruit test participants, and use both qualitative and quantitative methods in appropriate ways. This makes it difficult to fit UX work into the sprint framework.
Agile is developer-focused
Agile is not a design framework, nor was it really ever meant to be one. It was invented by developers to solve common hurdles they were facing in their software projects. While the Agile Manifesto emphasizes “customer collaboration”, it does not mention end-users, who are at the heart of UX.
Many popular Agile frameworks that are used today, such as Scrum, don’t account for the resources necessary for proper user research. This presents a challenge from a UX standpoint, as design decisions need to be guided by user insight. Many Agile frameworks are very useful, but adhering to them too rigidly can hurt your UX.
Wide versus narrow perspective
In Agile, most of the developers’ energy is channeled toward smaller pieces of work that are manageable from a sprint point of view. UX work can absolutely be performed at this level. But UX also tackles broader topics, such as the overall user journey, as well as user expectations and attitudes.
Users don’t just interact with small features in isolation – they consider the whole service (and sometimes even multiple services) as one “thing”. So you need to allocate time and resources for this bigger-picture UX work as well.
Developers and UX professionals working in separate teams makes it difficult to integrate UX into development. You easily run into the problem of “handovers”, which is the opposite of Agile UX.
Management and leadership
Combining Agile and UX can be especially difficult if management and leadership don’t understand or care about UX. It leads to products being developed “blindly”: they have never been validated with end users. You can’t know if your product brings value to your users if you never interact with them (outside support calls).
How to make Agile UX work
Integrating Agile and UX is not always easy. But there are some ways to approach it to significantly improve your chances of success.
To succeed, you should:
Offset design and development
Keep your UX design work at least 1-2 sprints ahead of development. This way, when it is time to implement a feature or make a change, it has already been through an initial UX validation. Also, you save time and money by catching problems early – a user-validated product is much less likely to need big alterations later on.
Approach UX from multiple levels
Don’t feel the need to always do big UX projects. UX work can be divided into three levels: operative (sprint), tactical (user journey, flows), and strategic (high-level, conceptual).
- Operative level: prototype fast and often, and focus only on key issues to keep up with the rapid pace of Agile development. This can be done in a sprint context, but does not necessarily have to be done inside a sprint.
- Tactical level: test more comprehensive features and flows with users. This requires more time and resources, as it is a larger-scale effort, and thus should not be tied to a sprint.
- Strategic level: test the concept itself, whether the idea is even useful or desirable for users in the first place (intersecting with Service Design). Do this at the early stages of a product (before anything has been created), but it can and should also be redone periodically.
By tackling UX at multiple levels, you get the most out of it with minimal interference with the development process. Be lean, but don’t feel pressured to tie every aspect of design and validation to sprint. A key part of UX is involving stakeholders, and that takes time. You can’t really get away from that completely.
Maintain a cohesive vision throughout
Before the first development sprint, create a vision of your goals together with your stakeholders, which you update every now and then (say, once a year). Make it clear and easy to understand, and make sure that value is clearly stated in the vision. Then, make sure the vision is clearly visible to everyone – display it at the top of your intranet, heck, you can even print it and glue it to the wall.
This helps your teams stay focused on the same goal and counteract some of the siloing that often occurs when dealing with complex tasks.
Bridge the gap between teams
De-siloing is easier said than done, and some separation is often unavoidable. To facilitate communication, UX professionals can function as “bridges” between different teams, and help keep designers, developers, and business owners all on the same page. This also helps keep UX in a prominent role and prevents it from becoming an afterthought.
An organization that employs Agile UX successfully enjoys a massive competitive advantage. You really can get the best of both worlds – if you make the effort.
Published: September 26, 2022