Dual Track Agile: Level Up Enterprise Product Design with UX Part 3
Design is messy. Clean it up with an agile system that allows for exploration while increasing productivity.
Below is a diagram of the end-to-end product design process. The first article in this series covered customer insights and ideation, and the second article detailed “design thinking” and the discovery sprint.
In this article we’ll review how a UX design team can best be utilized in an enterprise agile environment by implementing a dual-track design model and embracing the emergent design process of agile. We’ll also look to expand the UX team with embedded UX implementation experts to continuously deliver product improvements.
Feeding the Sprints
Agile developers work in short “sprints” (typically 2 weeks) to deliver product ready features before moving on to the next sprint. Although “Agile” allows for on-the-fly changes; is a still a rigid construct designed to maximize output.
Design on the other hand can sometimes seem like a meandering exploration of ideas with unexpected outcomes — a process that would certainly jeopardize a scrum team’s velocity metrics. So you can see where the two areas don’t jive.
It is unrealistic to think that designers can create meaningful user-centered designs or craft a larger UX strategy in rapid iteration. However, there is a systematic process for delivering delightful user experiences within an agile framework. The solution is a dual-track agile.
Track 1: The Discovery Sprint
The first track is about research. A discovery team includes a product manager, a user experience designer and any subject matter experts required to deliver a validated solution. The discovery team works well ahead of delivery to uncover customer problems, define requirements, explore solutions and validate the designs. A discovery sprint will typically run longer than delivery sprints as it includes some slack in the line for validation and pivoting. Each sprint includes multiple stages: Understand, Explore, Build and Test. I typically schedule 4 weeks for a discovery sprint with multiple sprints running at a time. But discovery sprints can be accelerated; read the previous article on discovery sprints for more details.
There is another element of track 1 to address. Agile development avoids Big Design Up-front (BDUF). Believing instead that the right designs will emerge from self-organizing teams extending the design as needed to deliver the next increment of functionality.
However, emergent design does not address the complexity of large-scale business and design challenges. Individual scrum teams working within tight deadlines cannot be expected to have a complete understanding of their companies larger business and UX design strategies; which makes it likely that teams will deliver conflicting patterns and redundant designs.
At some point the design team needs to be given the time to provide well documented direction that empowers delivery teams to implement new features with a consistent user experience. If you’ve implemented the Scaled Agile Framework (SAFe), you’ll recognize this process as the Architecture Runway. Describe by SAFe as intentional architecture: “a set of purposeful, planned architectural guidelines that enhance solution design, performance, and usability — and direction for cross-team design while syncing implementation”.
For a design team, this means defining an overarching UX strategy and the artifacts to enable delivery: a design system complete with the personas, UX principles and the design patterns.
Track 2: Delivery Sprints
The discovery sprint will result in most of the high-level strategic UX work being done and documented in sprints well ahead of delivery picking up a story. However, continual improvement means we’ll never truly be done. Throughout the process we listen, learn and course correct — even post-release.
Agile development teams need to be empowered to do collaborative UX design and implementation to improve product usability with each iteration. For a organization to make this a reality we need a few things in place: A centrally controlled design system, UX implementation specialists and product analytics.
The Design System
This system is a library of reusable components that as a whole, define the standardized user experience. The system contains any and all UI elements needed by delivery teams including: personas, design patterns, style guides, production ready artwork, icons, UI widgets and more. The system allows a company to scale by supporting the emergent design process of self-organizing scrum teams.
The design system likely originates from a centralized UX design team over several discovery sprints (Epics) and foundation level changes should be infrequent. Subsequent enhancements are then a collaborative team process with embedded front-end developers ensuring UX standards are maintained.
UX Implementation Experts
For a larger organization, a “distributed but governed” UX model is appropriate. This model stands up a small, centralized UX design team providing UX strategy aligned with product leadership; as well as the design standards and preliminary mock-ups to support the product vision.
There is not much value in having a dedicated interaction designer as part of each scrum team, however most teams do have use for a UI (front-end) developer — and UI developers are generally well versed in UX principles and will need to have a solid understanding of the company’s design system.
In this model, UX/UI developers are distributed among the teams and will reference usability guidelines, and artifacts that insure the conceptual integrity of the user experience is maintained across the entire solution.
Distributed UI developer’s UX responsibilities:
- Expert understanding and maintenance of the design systems/code repository
- Support the collection of usage statistics and UI error logging; and drive iterative UX improvements based on metric and customer feedback.
- Educate developers on the best practices of maintaining good UI design
- Responsible for coding user interface (UI) elements — establish effective UI coding conventions
- Demo projects to UX leads at key checkpoints prior to release
- Assist test engineers and the System Team in UX testing and testing automation
- Ensures UI criteria are included in Definition of Done and User Story acceptance criteria
- Work a sprint ahead of general development for UI code
Post-Release UX Analytics
Analytics are often utilized to measure the success of marketing campaigns, sales funnels and general site navigation. But it’s also critical in measuring the success of a products user experience and for generating iterative improvements in subsequent releases. Some areas of interest to UX practitioners:
- Conversions Successful completion of any given task
- Engagement Analyzing how users are engaging with a product: what features, how often?
- Efficiency Time on Tasks. UX can use this data to reduce the amount of steps for a given task and simplify the design as much as possible. Especially insightful after pushing out a design update. Is there a dip in efficiency as users get accustomed to a new process? Or does the change immediately speed up the task?
- Performance Performance metrics like load speed and error logging can deliver behind-the-scenes data that really enhances the user experience.
- Usability Paths, Abandonment. Are users recognizing the app’s cues? Are they able to follow along quickly with walk-through steps? (Ex. Preference for different methods of doing similar tasks)
In the first article of this series I mentioned that an effective UX team includes three roles: Interaction design, visual design and research. To that mix we’ve added a UI/UX developer as part of “distributed but governed” agile UX model. To wrap up this series let’s review the responsibilities of UX governance.
Central UX Design Team
- Works well ahead of delivery teams in discovery sprints [Design Thinking]
- Collaborate with and demonstrate concepts to product stakeholders
- Architectural Runway (Enabler stories): Intentional architecture supporting the bigger picture (ex. personas, design systems)
- Support product decision making with qualitative and quantitative research data
- Facilitate collaborative design sprints (workshops)
- Provide Agile teams with the next increment of UI design, UX guidelines, and design elements
- Continually validate user experience via ongoing research
- Share UX guidelines across the program; Attend sprint planning, backlog refinement and PI and System Demos whenever critical UI-related work is involved.
- Support the effective organization of UI assets and ease of re-use, extension and modification of styles (design system)
- Be advocates for the users and user experience. Foster an awareness of UX and an empathy for the customer
Businesses need to pivot as technology and markets change. Enterprise software companies often struggle to adapt and delivery quickly. The Lean-Agile systems empower companies to increase their productivity, quality, and engagement — and the UX product design teams (along with customer engagement) is a crucial part of that system. When design systems are well integrated into the entire product life-cycle, the company is better positioned to deliver value to the customer.