Blog

Blog

Agile UX

Agile software development methodology is defined as a process in which the requirements and solutions of the project are evolving continuously. Teams work in smaller self-organizing and cross-functional groups and the goals are evaluated constantly and met in increments to fulfill the changing needs of the customer. [3]. In recent years, Agile software development methodology has become one of the most popular approaches due to its user-centric ideology and the capability to be flexible enough to embody any last minute changes across the length and breadth of the software development lifecycle. Agile User Experience (UX) keeps the fundamentals of agile software development methodology intact but has UX designers involved in the process by having them working together with the developers, constantly throughout the duration of the project.

Teams often face the issue of creating elegant designs in a timely manner and there are often the times when the developers and the designers are not on the same page regarding the design choices and project decisions. There are times when UX designers often find their decisions not being taken into account and there is constant miscommunication between both the teams. It is a huge challenge to design a user-centered solution while taking into account the budget and resources in hand. Designers need sufficient time to create elegant designs. Agile UX approach can allow the flexibility to make changes according to the customer feedback and can help the teams to achieve the goals with the help of management principles. This will also ensure that the customer is satisfied with the design and is provided with a good user experience.

METHOD

Agile UX is updating Agile Software Methodology with UX Design methods with an aim to unite developers and designers in the product development process[9]. The relationship can vary from project to project, team to team, department to department and company to company. However, the need to have an effective and efficient user experience can certainly not be undermined. Common UX and design issues that arise are from situations like [4]:

Inappropriate time allocation to the project.

The disparity in the people’s perception and take on a good user experience.

Budget allocation to different phases of the development process.

The communication gap between the client and the team.

The magnitude of the work involved and understanding of the current brand and vision.

Inconsistent communication and cooperation between different teams and departments.

Some of the aspects that can help in adopting an agile style and simultaneously overcoming the scenarios mentioned above are:

Getting it right early: It is important to understand the needs of the business and how it wants the user to interact with the product. From deciding how it will look to delivering the brand message and reaching out to the users, each step needs to be free from flaws to provide a good user experience. One way to achieve this could be to develop the prototype of the product and test it with the users. Take the time to walk the stakeholders or customers and users through the design. This helps the designers to convey their thought process and puts forward a way to gather their feedback so that any amendments to the product can be made early on. This also establishes a trusting working relationship between the parties and the stakeholders as well as the users feel that their opinion is valued by the developing team.

Help the team to meet sprint commitments: Working iteratively (incrementally checking each step) where everyone could be heard ensures to unblock any hurdles encountered by the front-end developers, business analysts, QA testers and the client with the design, wireframes or brand decisions. By doing so, the team can work through any backlogs and shape the best possible creative outcome for the product along with logically designing each feature of the product within the allocated sprints in a timely fashion. This also guarantees that the expectations and estimations are kept on track and the team works as a whole.

Establish a positive feedback loop: A feedback loop takes place when a change in something eventually returns to generate additional change in the same thing. If that additional change, enhances or amplifies the situation, it is a positive loop. An example of a positive feedback loop is population growth. As population increases, the number of births per year also increase, which further increases the future population [8]. The constantly enhancing nature of the feedback loop helps in attaining the solutions to problems before they surprise the client. This solution-based chain of communication assures that there would be fewer problems that could pose as a roadblock in the future.

Include client in the Agile methodology: Including the client in the agile product development process as it evolves, can help them in prioritizing their requirements. Due to their increased involvement in the process, they can get a better understanding of how the process works and realize that a little extra work by the team members in any phase of the product development, can directly affect the backlog. This also ensures that the end product continuously meets their demands.

In order to achieve encompassing these aspects of the product development process and build a user-centered product, it is imperative to follow an agile and iterative style of the design process. (see fig. 1)

Fig. 1: Design Thinking Framework - Agile and Iterative UX.

Agile and iterative UX involves gradually making changes to the design while concurrently including the user/client feedback in the process. This follows a product thinking or design thinking framework which is a practical and yet creative structure that “trades fixed scopes, pure aesthetics, and vanity metrics for constant iteration, problem-solving, and real results” [1]. Design thinking, as people might assume, is not a magical formula but a practical technique that first assists the designers through the steps of empathizing with users and understanding their requirements, followed by brainstorming numerous ideas for solutions, and finally identifying the best one. This methodology also embraces the idea of iteration and that the process is never completed since there is always room for improvement [6]. The steps (see fig. 1) that constitute this strategy are:

Step 1: Research

Research about the problem, the target audience and the current solution that might exist in the market for the problem statement. Along with studying the current solutions (if they exist), it is also important to analyze their strengths and weaknesses to gauge their success level with the target audience. This can be done by reading up past work like research papers, books, online blogs or any other write up. There are several other resources which can help in the research like documentaries, news articles, market research, trend analysis, etc.

Step 2: Empathize

Empathize with the user to understand what they think, feel, say and do. Put yourself in their shoes to identify their needs and goals, and recognize them. This can be achieved by drawing out an empathy map (as illustrated in Figure 2). An empathy map is a collaborative visualization technique (split into four quadrants) which is used to articulate our knowledge about a particular type of user, so as to create a shared understanding of user needs and help in decision making [7]. It is about learning not just “What” the users do, but also “Why” the users do it. (see fig. 2)

Step 3: Define

Defining the main problem statement, the pain points of the user and which problem needs to be addressed in order to come up with a solution. Think about finding the answers to the questions like, “What are the pain points of the user?”, “What problems are they experiencing and if there is a solution present already?”, “How efficiently and effectively does the solution address the problem?”, “How will our solution change the current scenario?”, “What features need to be prioritized over others?”, etc.

Step 4: Ideate

Ideating to brainstorm as many creative solutions as possible to try to come up with the best possible design and solution can help a lot. The more ideas that the team can come up with, the better. A lot of research, thinking, and strategy goes into this phase as you need to come up with an innovative solution keeping the timeline and the budget of the project in mind.

Step 5: Prototype

Prototyping to build an initial model/design of the most appropriate solution. Prototypes are an effective way to test your product with your users. It does not necessarily need to be complete but even if it includes the important features of the product, it is sufficient. A prototype can be as simple as a low fidelity prototype, which is hand drawings of different screens showcasing the user interface of a product [10], like clickable wireframes (see fig. 5) or paper prototypes (see fig. 3) or they can be a little more advanced like a high-fidelity prototype (see fig. 4). High-fidelity prototypes are more interactive and their behavior is closer to the actual product that would be developed.

This is usually created when there is a clear understanding of what needs to be built or to get final approval on the design from the stakeholders. They can be either coded or made using a plethora of tools and software existing online. Since low-fidelity prototype is an inexpensive method and is also quick and easy to create, it provides more flexibility about making changes to the design and getting initial feedback from the user. Regardless of their own pros and cons, both the methods are an effective way to test the preliminary design of the product with the user and determine if the expectations of both the user and the stakeholders are met or not. It allows you to test for the content, information architecture, interactivity, and visual appeal of the product. [10]

Fig. 3: Paper Prototype

Fig. 4: High Fidelity Prototype built using Sketch

Fig. 5: Clickable wireframes

Step 6: Test

Test the prototype with the user to gather their feedback and make changes to the product according to their response and needs. A usability test consisting of well-defined tasks and the right set of questions can work wonders for any product. It helps in evaluating a product for its effectiveness and usability. However, it is very crucial to test the product with the right set of users, otherwise, the feedback gathered can be misleading. This step can also act as a platform for the users to contribute ideas. Additionally, while testing the product, as a developer or a designer, it is imperative to be neutral and unbiased to the comments received from the user. This mindset is also necessary while presenting your ideas and suggestions to the stakeholder group as well as to the fellow designers and developers to make the changes to the product.

As you move past Step 6 (Test), it is important to take a step back, assess and analyze your design, and if it needs any changes, go back to Step 4 (Ideate) and rework your way forward till Step 6 (Test). Only when it passes Step 6 (Test), the design should be handed over to the developers. This technique of design process not only saves the time of the developers but also ensures that you do not end up designing one thing but developing something else. It also makes sure that the designers and the developers are on the same page and mutually agree on the designs. The constant back and forth, between the designer and developers slow down the progress of the work immensely.

Does Agile Methodology Lead to Bad User Experience? While Agile is the key behind various successful companies, one of the crucial reasons behind its success is the proactive involvement of the designers in the product planning. It is vital for the designers to get out from behind the desks and think of new methodologies for improving collaboration. It is necessary to not stick to the rules, but keep iterating and experimenting and this, is the true spirit of Agile as it encourages teams to be self-organizing, to develop, reiterate and reflect on your process. UX practitioners need to take the responsibility of making teams see the importance of user-centered designs and research and how it can improve the product development process. “As Agile UX evolves, so does the role of the UX practitioners” [5], from a user experience researcher to the product development lead.

Agile is not Easy for User Experience. Despite its highly regarded success of the Agile methodology, the fact that it focuses on developers cannot be overlooked. Agile development is widely incorporated into the team values of a lot of projects as it has some advantages like, having an incremental approach, which gives the team the ability to switch courses based on the client’s needs, stakeholder constraints or also user feedback, and includes shorter time frames which help in keeping the teams focused. In an Agile environment, the entire team works on the same elements of a project simultaneously which is different from the waterfall style (wherein the work progresses in a linear fashion and only when one phase is completed, the team moves on to the next phase). Since the work is performed in sprints (2 week periods) thus, the designers are always under immense pressure to create, test, refine, and deliver their designs quickly which is unfeasible, and with very little focus on user-centered designs.

The success of Agile UX is due to the following factors in an organization [2]:

Leaders realize the value of UX: It is well known that user-centered design connects well with the audience, is successful in the market and provides a huge return on investment (ROI). Some of the great examples are companies like Google and part of the reason behind their success is the importance laid to a crucial element like user experience. Their leaders understand the value of a good user experience which is why they invest heavily in that domain.

UX Practitioners take the lead: When UX practitioners exhibit leadership, they can help the teams in noticing the significance of user-centered designs and also try out methodologies to collaborate with them to achieve the goals effectively.

Agile Process is Flexible: The agile process is flexible as it allows UX practitioners with the time to produce and create researched, and thoughtful designs that are user validated. UX ideas work well when the Agile process isn’t very restricted and strict. If an organization has people who do not allow for some flexibility and independence then ensuring good UX can be very tough, and it becomes very challenging for UX professionals to be more than just graphic designers.

UX Professionals and Developers are part of the same team: When UX Professionals and Developers are on the same team, it establishes a common ground for them to work. They can be on the same page as one another and also, there are lesser communication gap and a better understanding between the team members.

CONCLUSION

“Focus on the user and all else will follow”. This is one of Google’s core philosophies and a reason behind their huge success [11]. Providing good user experience and developing user-centered solutions require a team to notice and incorporate the business goals, client expectations, the user needs into the product development process. Until a company realizes that, Design Success = User Success = Business Success, they wouldn’t be able to build a product that users want to pay for, share and come back for [12]. No matter how satisfied a company is with the success of its product, the potential that user feedback has, can certainly not be neglected.

[10] “Prototyping 101: The Difference between Low-Fidelity and High-Fidelity Prototypes and When to Use Each.” Adobe Blog, 27 Nov. 2017, theblog.adobe.com/prototyping-difference-low-fidelity-high-fidelity-prototypes-use/.