You may have seen a variation of “embraces Lean methodology” or “familiar with Lean development” on Software Engineering job postings. What does that exactly mean?
The term Lean Software Development originated from a book authored by Mary Poppendieck and Tom Poppendieck. This book translates the lean manufacturing principles and practices and applies them to the Software Development world.
Lean Development can be summarized by 7 principles:
- Eliminate waste
“Waste” should be removed to maximize customer value. This includes unnecessary code or functionality which can delay time to customer or slow down feedback loops, starting more work than can be completed which can disturb flow or cause delays, unclear or inconsistent requirements which can result in quality issues and frustration for the dev team, bureaucracy, ineffective communication, incomplete work, defective or quality issues, and task switching.
2. Amplify learning
This principle encourages proper documentation and retain learning. Some examples of this are code reviews, documentation, commented code, pair programming, sharing sessions, proper training, and use of tools.
3. Building quality
This encourages Lean teams to ensure quality work. This can be done by pair programming, test-driven development, constant feedback and refactoring.
4. Defer commitment
This means to keep options open and collect proper information before making a decision. Not planning for months in advance, not committing to projects without a full understanding of the requirements, and constantly collecting and analyzing information are ways to defer commitment responsibly.
5. Deliver fast
Delivering fast is not measured by time or speed but rather by building simple solutions and improving based on customer feedback.
6. Respect the team
Communicating proactively, encouraging healthy conflict, surfacing any work-related issues as a team, and empowering each other are ways to team members can encourage respect.
7. Optimize the whole
Lean thinking should be understood by all members of a project and be implemented across the board to ensure optimize development.
“Think big, act small, fail fast, learn rapidly” is a slogan that sums of the principles of lean methodology.