Skip to content

Instantly share code, notes, and snippets.

@pburkholder
Created March 14, 2017 12:11
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pburkholder/19b12d0546e2a362477fe01732ffdcd5 to your computer and use it in GitHub Desktop.
Save pburkholder/19b12d0546e2a362477fe01732ffdcd5 to your computer and use it in GitHub Desktop.
Lean Agile Scrum Kanban

One of my colleagues at 18F asked in Slack:

I'm having a difficult time conceptualizing the difference between agile, lean, scrum, and kanban. Help! @channel

Leah Bannon jumped in with an excellent precis:

In short,

  • agile is a broad term that refers to the general ideas of individuals over interactions, working software over documentation, collaborating with customers, and changing/iterating. it’s more of a philosophy than a methodology.
  • lean, scrum, and kanban are methodologies that are guided by the philosophy of agile
  • lean is more designy and focuses on developing a hypothesis and then testing/researching to adjust or confirm it https://pages.18f.gov/lean-product-design/
  • scrum is the one that brought us sprints, sprint planning, stand up, and retros.
  • kanban is more focused on moving things across the columns on a board, in which the columns represent stages of development. you shouldn’t do too many at a time so the team all works on getting something done before taking on new work.

Alan Atlas then provided more meat to that skeleton:

It all starts with Lean. Lean is a comprehensive approach to organizational health. It started at Toyota at the end of WWII as the Toyota Production System, expanded to take on the entire enterprise, and made it out to the rest of the world as Lean. Lean focuses on producing value for the customer with the least waste possible and achieves that goal through the idea of continuous organizational learning. Lean can be applied to pretty much any business or government organization or activity. (edited)

In the late 1990's, the Agile movement was born. It incorporated some of the tenets of Lean, but was focused directly on software product development. So Lean is a "parent" or "ancestor" of Agile in that it pre-dates Agile and is more widely applicable than Agile. If you weren't afraid of dramatically oversimplifying things, you could say that Agile is about using the Lean idea of eliminating waste from the process of software development. (edited)

Both Lean and Agile are very high level concepts and require more detailed practices and methodologies for people to put them to use. For Lean, you can look at Just-in-time manufacturing, kaizen, and kanban. Kanban, in particular, is a Lean manufacturing tool that has been adapted for software development and general process management and improvement. Kanban is agnostic in that it models any arbitrary process, so it can be used in both Agile and waterfall environments. (edited)

Scrum is a software development methodology that embodies and follows all of the Agile manifesto values and principles. So, by extension since Scrum is Agile, Scrum (done properly) is also Lean. See?

Neither Lean nor Agile say anything about what to build, and there is a lot of marketing going on out there. For instance, MVP (minimum viable product) comes from the Eric Ries' Lean Startup movement. Here is an important thing to remember: Lean is to Lean Startup as ham is to hamster. In other words, neither Lean Startup nor MVP are Lean ideas. Also, there are no Lean ideas in Lean UX, another popular trendy thing out there. Both Lean Startup and Lean UX have some great ideas in them, but neither is Lean in any way.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment