What is the difference between a software development framework and a methodology?  We define a framework as a scaffold for an approach to developing, maintaining and enhancing software. Agile is a framework. A methodology is the structure, a set of principles and values, tools and practices which can be used to guide processes to develop, maintain and/or enhance software. Extreme Programming (xP) is an Agile Methodology. Methodologies use frameworks as a roadmap and provide the tools to make frameworks work.

Scrum is an example of a framework. In his recent keynote at the Scrum Gathering in Las Vegas, Dr. Cockburn suggested that Scrum could be defined in “five sentences and that everything else are just barnacles.” Even if we decide that the statement was hyperbole, the framework describes three roles, four meetings, and three artifacts. Scrum does not specify how the meetings or artifacts are to be created or how they should look, but they must be done within the values and principles of the Agile Manifesto.  xP is a methodology that includes a framework featuring feedback and planning loops, principles such as test first, practices such as pair programing and tool supported practices such as continuous integration.  A methodology specifies not only how the development team should act, but also a specific structure and rules to guide behavior.

A framework is not a methodology, however every methodology represents an implementation path for a framework.  Methodologies tell you how to achieve the structure, principles and values that a framework describes.  The distinction between framework and methodology might sound semantic, however understanding the distinction is important to managing exceptions when implementing changes using either a framework or methodology. Methodologies describe how the work is to be accomplished, rather than just the outline of what is to be done. Therefore methodologies are by definition prescriptive, which needs to be communicated and managed during implementation.