Since the software crisis of the 1960's, numerous methodologies have been developed to impose a disciplined process upon software development. It is now widely accepted that these methodologies are unsuccessful and unpopular due to their increasingly bureaucratic nature. Many researchers and practitioners are calling for these heavyweight methodologies to be replaced by agile methods. The Agile Manifesto was put forward in 2001, and several method instantiations, such as XP, SCRUM and Crystal exist. Each adheres to some principles of the Agile Manifesto and disregards others. This paper conducts a review of the literature on agility across many disciplines, in order to reach an all-encompassing notion of what agility is. This paper aims to develop a comprehensive framework of software development agility, through a thorough review of agility across many disciplines. We then elaborate and evaluate the framework in a software development context, through a review of software related research over the last 30 years.