A Survey of Agile Software Methodologies: based upon published research papers
The “€New Economy”€™ of the 90s made businesses more dynamic. The Information
technology needs of these dynamic businesses were no longer static. Developers found
traditional software methodologies less effective as they now faced frequently changing
requirements. This increased their interest in agile methods, which were effective at
managing changing requirements. Furthermore, agile methods could improve quality and
reduce time simultaneously. Developers now not only have to make a choice between
traditional and agile methodologies, they also need to select which agile methodology is
best suited to address their requirements. This paper will help solve this problem by
providing a survey of agile methodologies. This survey will help readers to decide which
agile methodology can best serve their needs. The paper conducted the survey using a
literature review of existing research. The survey found philosophical similarities amongst
agile methods. It concludes that the combination of agile-methodologies and
traditional-methodologies will continue to grow.
INTRODUCTIONTHE purpose of software development methodologies is to effectively
reuse the existing knowledge of software development [1],[2]. Traditional software
development methodologies use process driven models. Developers followed specific
procedures and plans to develop software. Traditional methodologies like the “€water fall
methodology”€™ assumed that requirements could be determined accurately before
development of the software. These milestone-based approaches increased the time
required to develop software. In the “€new economy”€™ of 90s, time-to-market was a
significant competitive advantage [3],[4],[5]. Developers were asked to produce quality
software in less time and had to work without clearly defined requirements. These new
challenges caused developers to look towards agile software methodologies. Agile
methodologies can reduce the time required to develop software and improve the software
quality at the same time. Agile methods focus on people, their communication and working
software. Agile methodologies focus less on processes and documentation.
Agile methodologies have their own set of challenges [6]. The first challenge is to select
the agile methodology best suited for a particular project. The wide range of choices offers
developers flexibility however the developer needs good understanding of these
methodologies to make a well informed decision.
This paper provides a survey of agile software development methodologies to assist
developers in making the correct decision. Some comparisons are already available in the
literature [7], this paper additionally includes background knowledge and history of agile
methodology. Instead of focusing on process details this paper explains the philosophy