Sunday, December 10, 2017

How to integrate UX with Agile Methods

Agile Methods are common in software development and the use of these methods has been practiced in many companies and teams for several years. However, it is often difficult to fit the design of UX (User Experience) into this type of work methodology. 

At what time does the design come in? At the beginning? At the end? In the middle? 

In this article we will take a look at some of concepts and best practices that can help agile teams to improve the user experience in their projects.

Agile vs. UX

These two approaches use different ways of allocating resources in a project. On the one hand, through short iterations, agile methods focus efforts to deliver small sets of software functionality to customers as quickly as possible. On the other hand, the User Experience approach advocates spending efforts on researching and analyzing user behavior before development begins. Using Agile Methods, the product is often launched quickly, without the UX process being completed or at least being started.

In Agile Methods the development versions are periodically delivered to customers. Feedback from these clients influences the current implementation cycle and directs the planning of future cycles. The customer is not a person outside the product team, who buys or uses the product, it interferes with the product team's decision making.

While these feedbacks are precious for the development team, they are often limited by the scope of the current development sprint. Furthermore, in order to really gather a good understanding of the user experience, it is often necessary to observe the behavior of the user while he or she is using and interacting with the application. 

Undoubtedly there are several ways to integrate UX and agile methodologies and the right thing is to choose the way that best suits your situation and availability of resources.

While it is important to have UX experts, people who know the basics about information architecture, interaction design, visual design and all themes related to the user experience, UX should be a concern of all people on the team. There is no reason for the PO and team members not to worry about the issue and leave everything in the hands of a specialist. 

All members of the agile team should know the basics of UX.

Practices to integrate UX and Agile Methods

The best practice for incorporating UX with Agile Methods is to build a regular cadence of engagement with the user. The purpose is to engage users to investigate their experience in using the product, to investigate their behavior and sequence of activities when using the software. For this, it is recommended to incorporate usability tests in all stages of the development process in order to improve the UX of the software as well as to promote a closer proximity between the product, the brand and the user.

Here are some suggestions for user participation that can help to improve the user experience:

  • Research:
    User Experience research activities and requirements gathering depend on whether what is going to be developed is a new functionality or an improvement on an existing one. For a completely new functionality, users are interviewed to investigate their needs and understand the domain, context, and limitations of the user regarding the new tool. For the improvement of an existing one, it is recommended a usability test with the functionality in question to identify the good parts that should be maintained or emphasized and the bad parts that cause problems to the users.
  • Usability tests with prototypes:
    Defined the scope of the iteration it is recommended to make a low fidelity prototype and test it with internal users who are real users of the software and who will perform operations level tasks. It is interesting to have at least two different solutions for the test. The feedback you collect helps validate the concept.
  • Usability tests with MVP (Minimum Viable Product):
    Once the solution is defined an MVP is developed to be tested with external users. Observing users interacting with the system and performing key tasks allows you to evaluate the hierarchy of information and your experience with the interface. Feedback is real, and you can apply it directly to improve the experience.

The need for constant testing is the main reason for faster and cheaper analyzes. This method has a huge impact on collaboration among those involved in a project because it deepens the understanding of the users in the product development process in the team, and this is a very powerful approach. However, the difficulty in performing these tests is known. In order for the team to achieve a higher level of credibility, it is necessary to educate all members about usability practices.

Agile practices that can be incorporated into UX

As we have seen, agile methods and UX design, despite having different concepts, can be integrated to generate a final result that brings more efficiency and satisfaction to the client.

Plan the entire product for 6 months and then release. It gives us the possibility of the product being outdated even before its launch. This is one of the reasons agile methods are being incorporated by so many companies and other disciplines like UX.

In UX the application of techniques like Kanban has become very popular very fast with the help of agile concepts. Today we have many UX professionals creating their own kanbans to solve problems in a collaborative, fast and effective way. Most kanbans aim to bring the product user closer to the team responsible for product development.

Following this precept, below are some characteristics of the agility to assist in the tasks of UX design:

  • Anticipate the design as soon as possible:
    A common situation for the design team is that they need to receive more input from the client or the research team before they begin to design the screens. But this attitude goes completely against the "agile" philosophy. Make some deductions, work with some assumptions, fork out a few paths - but anticipate the design as soon as possible. When the inputs come in, you make adaptations to design and incorporate new features. But almost always the skeleton of the functionality you are designing will not change, whatever input it may be.
  • Accept changes and uncertainties:
    If you are always the first to complain when the client asks you to change something or send something important at the time, agile methods may not be for you. Accept that your designs are changeable and use this to your advantage. Gradually you will realize that these changes are making your product more robust and more consistent. Be an optimist, above all else.
  • Get out of your desk more often:
    In such projects many decisions are made in informal conversations. Be out of your desk with more frequency. When a decision is made without everyone's present, help to communicate it clearly to all, and more importantly, communicate to the Product Owner. Being aware of what is being spoken around you can prevent miscommunication problems from happening. Do not be  afraid to get in the middle of someone's conversation when you feel like you should be a part of it.
  • Keep a shared library:
    Establish constant meetings with the team to align in detail how each element of the screen should work. When you come to some conclusion, update your documentation so that everything is standardized - or else communicate the new standard to everyone. Keep a library of UI patterns somewhere easily accessible, so that the next screens that are drawn already contain these formats and avoid duplicity of styles.
  • Meet often but shorter:
    One of the great advantages of agile methods (such as Scrum) is the daily meeting. In addition to this initial meeting, plan your day in advance and schedule other meetings with each of the areas - but always in that 15-minute format with no delays. Often the initial impression is that in a few days there will be nothing to talk about in these meetings, but when the project progresses and new unforseen issues arise this impression gets quickly disproved. Make sure to stay on focus. Don't let your project status meeting digress into some discussion about the implementation details. Schedule seperate meetings instead. 
  • Align quality expectations:
    It is common that at the beginning of the project, when people do not know each other, misalignments exist regarding the expected quality of the final product. That is why it is important to make these quality goals clear.

Lean UX: An agile alternative for traditional UX

Traditionally, User Experience Design and its variables of Interaction Design, User Interface Design, Information Architecture, among others, are work based on deliverables. These deliverables are structures that define stages of a UX project, such as: Wireframes, Sitemaps, Flows, among others.

Lean UX came exactly to focus the daily update of all these deliverables to spend that time more deeply on the user experience and its variables within the project.

Have a prototype to validate internally and test externally. The key here is to gather feedback from everyone, as it is much easier to make meaningful and low-cost changes when the product is still at an early development stage. That's why Lean UX is so well-suited for creating an MVP.


User experience plays an important role in the perceived quality of your application. Use this to your advantage by incorporating UX design early in your development and project planning, regardless of the methodology used - be it agile or traditional.