Agile Software Development - Stewart, Rhonda (2009)
One of the most noticeable changes to software process thinking in the last ten years has been the appearance of the word ‘agile’ (Fowler, 2005). In the Information Technology (IT) industry Agile Software Development, or simply Agile is used to refer to a family of lightweight development approaches that share a common set of values and principles1 focused around adapting to change and putting people first (Fowler, 2005). Such Agile methods2 provide an alternative to the well-established Waterfall model for software development (Royce, 1970). Traditionalists, those in favour of plan-driven approaches such as Waterfall see Agile as a threat to the Software Engineering profession, sparking on-going debate (Ambler, 2001)(Davis, 2004). Agile has benefited from the controversy it has ignited, as well as the considerable marketing hype of the last few years. This report seeks to go beyond the build-up to explore Agile in more depth and identify the current state of this emergent practice. Agile ideas are traced through Industrial and Software Engineering history to illustrate their early influences as well as the gradual growth of these concepts into what we now recognize as Agile. The reader is introduced to Agile philosophy and four of its leading methods. As Agile’s effects are now reaching beyond software development and into the Project Management space, Agile Project Management is compared and contrasted with the traditional project management framework. Lastly, key advantages and disadvantages of Agile Software Development are provided.