The terms agile and lean are well known in the software development world and they are also becoming popular terms for non-technical teams and departments. Then it comes to no surprise that agile and lean have their own philosophy in regards to user experience design.
From the Manifesto for Agile Software Development, agile is:
A better way of developing software by doing it and helping others do it. Through this work we have come to value:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on the left more.
Agile software development is an approach to development that emphasizes agility, flexibility, and adaptability during the development and maintenance of a mobile app, a web app, or software. Previously computer programmers were using traditional programming methods to manage their work. They could spend months to years developing one product, releasing it when it was finished. The long timeline created an environment for a perfect host of issues.
Agile aficionados propose alternatives to traditional project management. Agile approaches are used to help businesses respond to unpredictability. The requirements and solutions evolve through collaboration and iteration between cross-functional teams. The primary goal of being Agile is to empower the developers through the ability to create and respond to change in order to succeed in an uncertain and ever-changing environment.
Common themes found in agile methodology are:
Lean software development is a concept that emphasizes optimizing efficiency and minimizing waste in the development of software. It is a type of agile development. It is a highly flexible, evolving methodology without rigid guidelines, rules, or methods. Lean principles originated in the 1980s with Toyota automobile manufacturing in Japan. Driven by a need to reduce inventory costs and improve efficiency in auto manufacturing.
Lean development eliminates waste by asking users to select only the truly valuable features for a system, prioritize those features, and then work to deliver them in small batches. It relies on rapid and reliable feedback between programmers and customers, emphasizing the speed and efficiency of development workflows. It gives decision-making authority to individuals and small teams as it is a faster and more efficient method than a hierarchical flow of control. Lean also concentrates on the efficient use of team resources, trying to ensure that everyone is as productive as possible for the maximum amount of time.
Beyond its use in software development, lean can be applied to all areas of a company. For example, Womack and Jones in their book Lean Thinking, recommend that managers and executives embarked on lean transformations of three fundamental business issues that should guide the transformation of the entire organization:
Agile at first glance seems that it would be at odds with user experience design since one of the common themes of agile development is that planning and design are de-emphasized. UX design is all about planning and design!
The user-centered design process and testing these concepts are slipped into the agile cycle before software developers start writing any code. The UX designers break up their work into similar sprints as the developers do either designing in tandem or designing a sprint ahead of the programmers.
Jeff Gothelf, the oft-quoted author of Lean UX: Applying Lean Principles to Improve User Experience, writes:
“Lean UX is about bringing the true nature of a product to light faster, in a collaborative, cross-functional way that reduces the emphasis on thorough documentation while increasing the focus on building a shared understanding of the actual product experience being designed.”
In my opinion, lean principles more flexible and welcoming to user experience design. Lean UX is a way to apply iterative methods to user experience design. It means that you’re validating with your users that you’re designing something that people are going to use. Or as Eric Ries writes, “What if we found ourselves building something that nobody wanted? In that case, what did it matter if we did it on time and on budget?” Lean UX just makes sense to me.
The main principles of lean UX are:
Lean UX is on the opposite side of the spectrum compared to design thinking. Design thinking is an iterative process (like lean UX) to understand the user, challenge your assumptions, and redefine problems in an attempt to identify alternative solutions that might not be obvious with our first look at the problem. Design thinking and the typical UX design process usually involve a lot of deliverables and most importantly to challenge assumptions that you have about the user and the product or service you are designing. It definitely requires a shift in your mental model of what UX design is and how it is done.
Does your company use agile or lean methodologies? Share your experiences in the comments below!