By Lisa Helminiak
July 14, 2017
Developing Software. Better.
In 2001, a group of 17 software developers met for a ski trip in the Wasatch mountains of Utah and ended up changing the way companies develop technology.
In addition to hitting the slopes, these friends and colleagues discussed their ideas for how to improve the process of their craft. Those discussions ultimately lead to the publication of the Manifesto for Agile Software Development.
Since the publication of that landmark document, “Agile development” has expanded to more than just the process of writing and launching code. It has become a philosophy for teams to work quickly and iteratively in response to ever-changing conditions.
Agile consists of several overarching principles:
- Working iteratively in short cycles to maximize adaptability to market forces and allow teams to test assumptions with users
- Empowering trusted teams of business people and developers to work closely together to solve ongoing challenges
- Showing versus telling (working software is more instructive and valuable than documentation)
- Keeping things as simple as they can be with close attention to overall quality
- Gathering regular team input to continually improve the development process
The tremendous influence of agile development is the result of improving software quality and speed to market. Agile has enabled companies to become good at producing software efficiently, with less documentation and less overhead. However, what Agile development doesn’t do is help developers figure out if their software solution is right for the market or customer needs.
That’s where human-centered design and design thinking come in.
Ideas for Integrating Agile and Human-Centered Design
Human-centered design, using design thinking is a framework and toolset that allows us to find the answers to important questions such as: What problems do our users really face? How can our software meet these needs? How should it be designed for the context in which it will be used? How can we design from our users’ perspective?
As designers of digital products and services, Azul Seven often partners with Agile development teams to help answer these human-centered questions. Our clients’ technical teams are often distributed geographically (and even culturally) so they adapt their own flavors of Agile. But over the years we’ve learned best practices for blending human-centered design with Agile.
Measure Outcomes, Not Deliverables
Design and development are typically measured by different criteria. Business might measure design value by how much visual or brand components drive sales, adoption or engagement, for example. Or they might track design industry awards and other recognition. Developers, on the other hand, are often measured by how quickly they can deliver functional requirements. But neither set of metrics really helps to improve how well software works, how easy it is to use, or even if it is useful.
Combining Agile development with human-centered design can dramatically improve this typical arrangement. It can help us choose what software to build, what features to focus on, how functions work, and how we meet real people’s needs. But to fully realize this value, we have to employ new performance metrics. Both designers and developers need to be measured by the performance of their work towards goals and agreed upon outcomes, not just objects delivered.
By measuring both designers and developers on the creation of customer and business value, we’ve found that collaboration improves, because both designers and developers are incentivized to solve the same problems and achieve the same goals. When designers and developers row in the same direction, and at the same time (more on that in the next section) ideas can be tested more comprehensively and faster. The result is better end solutions and digital products.
Designers & Developers Need to Work Concurrently on the Same Problems
The nature of Agile development is to focus on improving software components in order to develop the best application. This is great for speed, adaptability, and collaboration with other developers. But it can negatively affect design.
At the end of many release cycles what began as an elegant, comprehensive design often accrues unwanted complexity and inconsistencies.
We’ve found the ideal solution is for designers and developers to work concurrently on the same problems. When a design team is fully embedded with a client’s product team, we’re able to preserve the holistic integrity of the design and user experience, while also enabling iterative development and flexibility.
We find that designers and developers collaborate best in this arrangement, and the combination of disciplines achieves greater efficiencies. Why deliver updates in wireframes, for example, when it might be better to work directly in the code? Side by side, we can start evolving more efficient paths to communicating both design and code requirements.
Despite the benefits, we recognize not all clients are able to integrate a design team in this manner.
When we’re not able to work fully embedded with development teams, we use design sprints.
Similar to Lean UX cycles, design sprints, allow us to quickly realign with end-users throughout the development lifecycle. Design sprints are smaller and more condensed than the full Lean UX process (Defining outcomes, assumptions and hypotheses; Designing a solution; Creating an MVP; and Research and Learning). But the end goal is the same: Keep products simple to use, consistent, and desirable—even as they grow in scope and features.
Regular design spikes ensure we’re making time to think about the full product ecosystem. Where Lean UX focuses on the product alone, design spikes can address all the elements that keep a product functioning well for users, from product feature and functions, to the full customer journey (consideration, purchase, ongoing support, and repurchase or renewal).
Aligning the service journey with product design and development is imperative, but it’s not generally under the purview of the technical development team. Human-centered design sprints align the product and service aspects of the customer journey, which leads to better outcomes for both users and our clients.
Get User Input at Every Opportunity
Agile development teams typically recognize the value of testing with users. Yet, they often limit user feedback to the initial research and concept-testing phases. After design or technical integration begins, the development timeline often gets too tight to squeeze in further testing, despite the risks of launching a solution that hasn’t been fully vetted. And after launch, momentum to get to the next release takes over, pushing aside additional rounds of testing or user observations.
With our Agile partners, we advocate for simple practices to gather ongoing user feedback throughout design and development:
Do less-formal user tests in one or two days. Tools such as usertesting.com make it easy and inexpensive to recruit for and complete testing of specific interactions or functional logic in a short period of time. At minimum, we want to engage people who are not familiar with the project to go through it and make notes. Also, we plan early to test right before and after launch so feedback is taken into consideration and expected during this hectic development period.
Monitor analytics as releases go up. It’s important for design and development teams to have access to site, app or software performance data. Analytics can give quick insight into whether or not the product is performing as expected, and it can indicate if additional user feedback is needed.
Commit to testing on a regular basis, no matter what the status of a build or release. A regular schedule for user testing gives the product team an opportunity to plan for and get research on a regular basis. This information is critical to ongoing product development and design. It’s not surprising how many teams forget about user testing as the backlog of stories adds up. It’s our experience regular testing is more important than ever to ensure applications are meeting users needs as the pressure mounts and focus gets distorted with delivery deadlines.
Agile + Design Thinking = More Business Value
The practices above are the starting points for a careful integration of Agile and human-centered design that can reap many benefits.
Most importantly, we keep Agile’s benefits of speed and efficiency without losing sight of users’ changing needs and contexts. We’re able to make better software more quickly, while adapting with greater empathy and insight.
Furthermore, the combination of of Agile and human-centered design creates a systems approach to design and development. All aspects of the customer journey are considered in the process, resulting in a better overall experience, not just product improvements.
And finally, we build teams that are better at integrating different mindsets and skill sets toward a single goal of serving customers and users. This is what leads to real and lasting value for organizations.
To learn more about Agile, human-centered design and other design innovation ideas (like biomimicry), contact us.