Agile software development is not a methodology. Instead, it is an label applied to a group of frameworks based on empirical, iterative development. Requirements and solutions evolve iteratively through the collaboration of customers, stakeholders, and self-organizing cross-functional teams. Agile refers to any framework that is aligned with Agile’s core values and principles.
Per VersionOne’s 2016 State of Agile Report, Scrum is the most common Agile framework, followed by a Scrum/Extreme programming hybrid, home-grown hybrids, a Scrum/Kanban hybrid, and Kanban. The remaining methods make up less than 15% the balance.
It shouldn’t be any surprise that Scrum and XP is the most popular hybrid, one that is even promoted by the Scaled Agile Framework. Scrum is a strong framework for Agile development practices, while XP is a strong framework for engineering practices. Teams can begin implementing the empirical process control in Scrum almost immediately, while it can take months of study, practice, and implement to begin to fully realize the benefits that come from leveraging XP.
Kanban, the least prescriptive Agile framework, is a Lean-derived approach for managing and improving the flow of work. Kanban’s most significant contribution is to create a pull-based, even flow of work, visible to all involved, with strictly limited work-in-process. This supports empirical process control by providing transparency and a means for inspection and rapid adaptation. It also reduces several types of waste, including unevenness, unreasonableness, multitasking, and context-switching.
Lean Software Development—based on Lean Manufacturing which was ultimately derived from the Toyota Production System—arrived on the scene with Mary and Tom Poppendieck’s 2003 book “Lean Software Development: An Agile Toolkit.” Lean provides seven principles—from eliminating waste to empowering the team—that nicely complement other Agile frameworks. In particular, I like Lean’s perspective that “waste is anything the customer doesn’t want and isn’t willing to pay for.”