Agile and Lean have been around for decades. Their marriage for software development has a long history as well. Yet, there is still a lot of confusion around what the difference is between them and how they work together.
It comes up in conversation constantly, so I figured it was time for a post about my views on what each term means.
AGILE: A development process that emphasizes short iterations and focuses on delivery of functional software.
Flavors of Agile may include continuous deployment/integration, test driven development, pairing, scrums, sprints, or many other facets that are too long to list here.
LEAN: A process framework where there is an attempt to minimize risk and waste while maximizing customer value.
It is often achieved through a tight feedback cycle with minimal investment between loops. Lean protocols have been employed to optimize manufacturing, construction, and pretty much any business process you can think of.
LEAN AGILE: The marriage of Agile development iterations with Lean validation practices.
Here’s how this works:
– Establish a hypothesis + assumptions
– Figure out the smallest thing needed to test it (which may not be building anything at all)
– Get feedback from target users on that thing
– Continue building that thing in an iterative way / configure a third party tool to show your idea
– Always be working towards functional software
– Repeat for each feature, epic, and product
What do you think?