Software development now moves faster than ever before. Features and products that used to take weeks or months to build now take days or even hours. Sure, improvements in technology have made this kind of speed possible -- but perhaps even more influential, has been the cultural and process improvements brought with the adoption of Lean development practices.
Lean has been around in some way or another for several decades -- mostly used to manage and streamline the manufacture of physical goods. The term Lean development applies specifically to the use of Lean development principles to guide and manage knowledge workers in software development.
Software development is a natural application of Lean development methodology because, much like manufacturing, it generally follows a defined process, has some defined conditions of acceptance, and results in the delivery of tangible value. But unlike many applications of Lean in manufacturing, Lean development is more of a way of thinking than a prescriptive set of rules.
Jim Benson of Modus Cooperandi defines Lean development methodology in this way: “Lean is both a philosophy and a discipline which, at its core, increases access to information to ensure responsible decision making in the service of creating customer value.”
Read to learn the basic concepts of Lean development, including continuous improvement, and respect for people, as well as how these two practices help organizations maximize customer value.
Lean Development Principles
Because of its roots in manufacturing, people often equate Lean with the elimination of waste. While it’s true that Lean often involves eliminating waste, this is more of a byproduct than the goal. The goal of Lean development is to maximize value for the customer.
It’d be lovely to be able to get a list of requirements from our customers, create a product in those exact specifications, and call ourselves a success - but of course, customers evolve, technology changes, and markets shift - which means maximizing value must be done through a process of continuous improvement.
Continuous improvement is the idea that by making small, intentional optimizations based on feedback from the customer, companies can serve their customers better. They can create products that customers actually want and will use, and help them use those products to achieve their goals.
What does this look like in practice? Think of continuous improvement as analogous to the scientific method: You ask questions, form a hypothesis, design an experiment to test your hypothesis, analyze, and then report your results.
Practicing continuous improvement effectively relies on two things: Delivering quickly, and implementing learnings methodically. Delivering quickly is important, so that teams can test ideas and fail early, if they’re going to fail. When teams deliver and learn quickly, they are able to shorten feedback loops with customers and deliver improvements and new features faster than their competitors. They also save valuable time by ensuring the investments they’re making are validated by the customer. In this way, Lean development methodology is as much of a path toward innovation as it is a form of risk management.
Implementing learnings in a methodical way is also critical to continuous improvement. If you’re constantly running experiments, but you never use the data from your experiences to drive change in your processes and products - you aren’t maximizing value for the customer. It’s easy to ask questions and form hypotheses about them - but it requires diligence to actually test hypotheses and change our behaviors because of the results.
Respect for People and Customer Focus
Respect for people is another hallmark of Lean development. In most organizations, decisions are made at the top of the organization and trickled down to the frontline. Lean thinking encourages allowing everyone -- especially those closest to the product and the customer -- to have an equal voice, to ensure that the voice of the customer, and those doing the work, is heard.
In software development, practicing respect for people is critical for two reasons:
- Talented, collaborative, communicative software developers have their options when it comes to jobs. Creating an innovative, respectful culture is critical for employee retention.
- Practicing respect for people within the company extends itself to the customer’s experience. Companies who value their employees’ opinions tend to be better at letting the voice of the customer guide their decision-making. Practicing respect for people can make a direct impact on an organization’s bottom line.
The culture that Lean development teams aim for is collaborative, resourceful, helpful, and fairly flat. Ideally, employees don’t feel a hierarchy like they would in other organizations -- there are no imaginary (or often, even real) walls between CEOs and developers and marketers. The entire organization is one team on a mission to improve the lives of their customers -- and they work collaboratively and respectfully to achieve their goals.
Want to Learn More?
To learn more about Lean development, we recommend the following resources: