Beruflich Dokumente
Kultur Dokumente
Lean development is the application of Lean principles to software development. Lean got its start in
manufacturing, as a way to optimize the production line to minimize waste and maximize value to the customer. These
two goals are also relevant to software development, which also follows a repeatable process, requires particular
quality standards, and relies on the collaboration of a group of specialized workers in order to get done.
Eliminate Waste
One of the key elements of practicing Lean is to eliminate anything that does not add value to the customer. There are
seven wastes (or muda) defined in the Toyota school of Lean manufacturing. They are:
Build Quality In
These are some of the most popular Lean development tools for building quality in:
Pair programming: Avoid quality issues by combining the skills and experience of two developers instead of one
Test-driven development: Writing criteria for code before writing the code to ensure it meets business requirements
Incremental development and constant feedback
Minimize wait states: Reduce context switching, knowledge gaps, and lack of focus
Automation: Automate any tedious, manual process or any process prone to human error.
Create Knowledge
The Lean development principle of Create Knowledge is another one that seems simple, but requires discipline and
focus to implement. This principle encourages Lean teams to provide the infrastructure to properly document and
retain valuable learning. This can be done by using any combination of the following tools:
Pair Programming
Code reviews
Documentation
Wiki – to let the knowledge base build up incrementally
Thoroughly commented code
Knowledge sharing sessions
Training
Use tools to manage requirements or user stories
Defer Commitment
This Lean development principle is easily misused. Defer Commitment does not mean that teams should be flaky or
irresponsible about their decision making. Rather, the opposite: This Lean principle encourages team to demonstrate
responsibility by keeping their options open and continuously collecting information, rather than making decisions
without the necessary data.
Deliver Fast
Every team wants to deliver fast, to put value into the hands of the customer as quickly as possible. The question isn’t
why teams want to deliver fast, but rather, what slows them down. Here are a few common culprits:
The Lean way of delivering quickly isn’t working longer hours and weekends, or working recklessly for the sake of
speed. Lean development is based on this concept: Build a simple solution, put it in front of customers, enhance
incrementally based on customer feedback. This is important, especially in software, because speed to market is an
incredible competitive advantage.
Respect People
The Lean principle of Respect for People is often one of the most neglected, especially in the fast-paced, burnout-
ridden world of software development. It applies to every aspect of the way Lean teams operate, from how they
communicate, handle conflict, hire and onboard new team members, deal with process improvement, and more. Lean
development teams can encourage respect for people by communicating proactively and effectively, encouraging
healthy conflict, surfacing any work-related issues as a team, and empowering each other to do their best work.
The second is an issue with testing. When testers are overloaded, it creates a long cycle time between when developers
write code and when testers are able to give feedback on it. This means that developers continue writing code that
may or may not be defective, resulting in more defects and therefore requiring more testing.