As a UX designer working within an Agile environment has provided both challenges and rewards. Coming from a traditional design background and having moved into UI/ UX design from print design. I had learned and followed the traditional UX deliverables approach. Conducting research, defining requirements with customers, building prototypes and wireframes, testing with end users, and then defining the “Final” UI and UX in a design specification document, which was delivered to the development team for implementation.
This Blog will provide and overview of what this has involved and I will follow up with additional Blogs that expand on the key points discussed in this Blog.
The process typically resulted in repeated feedback and questions from developers regarding details of the design, implementations that were not as I had initially intended, then feedback from Stake holders and end users on finished features that resulted in changes to either the work that the developers had already implemented or to the detailed design document that was then sent back to the development team. This process would often lead to frustration and at the best an extended development cycle that resulted in missed deadlines.
The adoption of Agile while providing some challenges for insuring that the finished application has a good UX , has ultimately enabled the UX and UI designs that I work on to be more effectively implemented and ultimately more successful. This has involved changing:
– How the UX/ UI is defined and communicated to the development team
– How I communicate and work with developers and the business stakeholders.
– How the UX is tested and validated.
Accomplishing this has generally involved the following.
Replacing design specifications with user stories, wireframes and just in in time mockups as needed.
As a UX designer working within an agile process I have found Agile emphasis on communication and collaboration between stakeholders, developers and users as a replacement for detail specifications to have streamlined the design process and ultimately help ensured that the final product better meets end user needs.
Working within an agile development environment replaces the typical UX design deliverables consisting of hundreds of pages of specifications with a more inclusive and responsive approach to communicating UX/UI design to the team and the stakeholders. It has also allowed me to abandon the need to attempt to develop comprehensive design documents that conveyed the design of all features and functionality to the developers. Instead by being part of the development team, Attending daily’s, planning meetings, grooming sessions, etc I am able to more effectively convey feature and UI requirements to the team. It has helped avoid misinterpretation of design and feature functionality and has allowed the entire team to be more responsive to changing requirements or to respond to feedback from users.
To appreciate the value of doing UX within an Agile environment it is important to accept that the traditional wireframe and design specification document is insufficient for capturing the reality of an interactive product. Despite the best research and carefully planned out design specifications and requirement blueprints, there is almost always a need to modify initial designs during the development process. This is natural as a project develops we discover new requirements and a different understanding about end User needs. The advantages of an agile process is that it acknowledges this upfront and with its short iterative development cycles provides us the opportunity to quickly adjust designs as the application is developed. Overarching “final” design blueprints only create a roadblock that makes it more difficult for Stakeholders and developers to get past, as the design requirements of a project shifts.
In my own work I have found it useful to separate the UX and UI in terms of how they are documented and communicate to developers. By using User stories to convey the UX through describing the expected interaction patterns that a user will engage the developers do not get getting trapped in UI details while developing the feature and functionality. When required, this is supported when needed with mockups and wireframes that focus on the specific feature being implemented. This means they are able to focus on how a specific feature works from an end users perspective and worrying about the UI details once this is completed.
Include the entire team in the design process.
By recognising that everyone can provide valuable insight into the User Experience I have been able to expand my feedback channels and improved the UX. This has meant engaging not only with the customers, end users and marketing teams but also with the developers, Architects, testers, scrum masters as well as the Product Owner and business throughout the entire project development. This has involved communicating with the product owner and business stakeholders to initially identify requirements and at the same time discussing requirements and design ideas with the development team and using their experience and input to help improve the final product.
This has meant being more integrated with the development team then is traditional. Realising this within the project lifecycle has meant attending daily standups, review meetings and planning meetings. In short being an active part of the development process and team. While this has increased the meetings I attend, the payoff in terms of the quality of the end UX and the efficiency of the UI development phase of the project has been worth it.
Working as part of the development team has proved immensely valuable and has helped to streamline and improve the design process. Be being more closely integrated within the development team I have been able to minimise the time I spend creating design documentation that ends up being thrown away, and am able to respond more quickly to changing requirements or technical limitations.
Moving away from prototypes to test and validate designs and towards live code.
Additionally we should also use the advantages that continuous delivery provides us to adjust and test our design ideas with end users. While interactive prototypes can be useful having end users testing actual products can provide even more accurate and useful feedback. It is a moving target that cannot be accurately captured in a design deliverable than we are in a better position to adapt to end user feedback and changing requirements. Working within a Continuous delivery environment has been key to accomplishing this.
Additionally defining a group of expert end users who understand the needs to end users for the application to test and provide feedback on new features and functionality allows users to respond more quickly to changes. It also of course provides far more accurate feedback then is possible with static mockups or even prototypes.
Transitioning UX and UI design towards an Agile model has ultimately allowed for a more responsive UX design and implementation process. In following blogs I will outline in more detail the three main changes involved in doing UX design within an agile environment.