Scrum, XP, Kanban and Lean in 1 minute
Agile methodologies help software development teams to become highly effective. Here's a super quick summary of the most popular methodologies.
Scrum is a fairly prescriptive methodology. It suggests:
Splitting the organization down into small cross-functional, self-organizing teams
Splitting the work down into a list of small, well-defined deliverables, and prioritizing and estimating the list.
Dividing time into short, fixed-length iterations, with potentially shippable code at the end of each iteration.
Optimizing the release plan based on the current insights or priority
Holding a retrospective to reflect, learn and adapt
XP is even more prescriptive than Scrum. It suggests most of the Scrum processes plus a few specific engineering practices:
Pair Programming / Code Reviews
Kanban is less prescriptive than either. It suggests:
Visualizing the workflow
Limiting work in progress
Measuring time to complete an item and optimizing the process to reduce this
Learning and Improving continuously
Lean is all about delivering value as quickly as possible. Think big, act small, fail fast; learn rapidly. It has seven guiding principles:
Decide as late as possible
Deliver as fast as possible
Empower the team
Build quality in
Consider the whole system, including components and interactions
Many Agile development teams start with Scrum or XP. Many mature Agile development teams use Kanban. Many strive to be as Lean as possible. All great Agile development teams use a combination of their favorite elements from the different Agile Methodologies and probably some they've invented themselves!