But, despite these potential conflicts, it really is worthwhile to merge these approaches on many projects because the combined impact of agile and UCD can be extremely powerful. When this combination works, quickly delivering tangible software that offers a great user experience is the outcome.
At my company, Cyber-Duck, we’ve been refining our combination of UCD, agile, and Lean for over 10 years—slightly adjusting our methods depending on the project. For example, we used a highly agile, UCD approach to produce a new Web application portal for Ximbio, a crowd-sourced marketplace for scientific-research tools that Cancer Research Technology had commissioned. This article outlines the building blocks of our approach.
Flexible Pricing
Using traditional development approaches, agencies often start by providing their clients with a fixed quote for the structured deliverables they’ll create in phases. While, with the often sequential nature of UCD, this can work well, it can backfire with agile methods because the exact feature set a team must deliver often remains undefined at the outset of a project.
We address this problem by creating a proposal that presents our vision for a project. We then divide the work that is necessary to deliver a Minimum Viable Product (MVP) into sprints and provide a quote for each sprint. We know we’ll prioritize the epics and stories in the backlog at the start of a project and agree on priorities collaboratively before we start each sprint. UCD research often informs this process. Our proposal clarifies the backlog’s topology.
So how does this work financially from an agency’s perspective? From the very outset, we know the type and number of resources each sprint requires, so in essence, the client is hiring a team.
Sprint Planning
For larger and more technical projects, we recommend a four-week sprint. We start with a week of production—that is, UX design and coding. The second week includes the agency’s internal quality assurance (QA), with the agency handing over the test scripts to the client during a face-to-face meeting, which aids clear communication. A third week of client user acceptance testing (UAT) then follows, which includes a backlog-planning meeting for the next sprint. The fourth week starts with a show-and-tell meeting, followed by the deployment of the code, or delivering design. There is also a final retrospective meeting at the end of that week, highlighting what went well and what we can improve on during the next sprint.
So what does it mean to deliver design during a sprint, and how can this work for UCD deliverables? We can bundle research-oriented UCD efforts that we can accomplish within one week—such as persona research, wireframes, interviews, usability testing, and ethnography—into a story; assign points, or levels of effort, to them; and prioritize the stories within the backlog. We then prioritize the UCD-driven stories for a sprint in the same way that we prioritize development—based on the client’s priorities. It’s also necessary to include a clear definition of each deliverable in the stories’ acceptance criteria.
Cross-Functional, Collaborative Teams
As with any project using Scrum, it’s critical to employ cross-functional, collaborative teams when merging the UCD approach into agile. To maximize the collaborative potential, you must create a multidisciplinary team comprising natural team players who are flexible and, ideally, are co-located. All of these team members bring their own strengths and expertise to the table. From the very outset, the team should have all of the expertise that is necessary to deliver the project—from UX researchers, UX designers, and developers to product owners and quality-assurance engineers. This not only improves efficiency, but also maximizes collaboration and helps the team to maintain a commitment to the original project vision.
So, for instance, developers should be involved in design and usability testing, ensuring that the design takes into consideration the realities and constraints of development. Similarly, UX designers should work with developers on implementation to ensure that user needs drive development. Scrum masters, or project managers, are necessary to help run the project. We recommend having people in these roles on both the agency and the client side. Among other things, they oversee a risk register and help mitigate risks accordingly.