Agile methodology in software development refers to a model of project management in which modules are developed in fast iterations and software is typically delivered faster than in linear methods like Waterfall. In 2001, a group of people who advocated flexible methods to software development published a set of guidelines which are now known as the Agile Manifesto . The manifesto was developed keeping in mind the following assumptions in project management:
System design by nature keeps evolving. Product module releases should be quick enough to keep pace with the changing demands.
The development teams should be very skilled.
In fact, Agile is generally not called methodology ; it is referred to as a set of alternatives to traditional forms of project management. In this form of project management, incremental, iterative processes known as sprints are used to overcome project unpredictability.
Two popular Agile Methods
There are several agile methods that can be followed like Extreme Programming or XP, Crystal, Scrum and Feature Driven Development . For the purposes of this paper we shall review the Scrum and XP methods of Agile project management.
Scrum
A 2013 survey by VersionOne showed that close to 65% of software development projects were run using Scrum . By 2014, 72% projects were being developed using the Scrum methodology. Reflecting this, according to most publications, , , the most popular agile method by far is Scrum. Scrum’s popularity is the result of its simple implementation .It uses the technique of short, time-bound periods called sprints in which teams will develop working software features that are added in small iterations to the final software or product . The process involves creating short sprints, standup meetings on a daily basis, short planning meetings before and after each sprint, addressing the backlog, combined with simple progress reports and a simple, flat team structure. From this depiction it becomes clear that it is more a project management tool than development tool. It’s advantage over other methodologies is that it is easy for people to follow and is less prescriptive than other methods. It allows teams to have a lot of freedom.
Scrum is used in projects that focus on delivering broad features of a software or product in collaboration with product managers and project managers . Spotify, a digital music service is an example of a successful Scrum project
Extreme Programming or XP
Another popular, if controversial, technique is Extreme Programming or XP . For projects that require shorter and more closely watched sprints, XP is a popular choice albeit on the opposite end of the spectrum from Scrum in terms of project management . It is a more disciplined approach to product delivery. There is high customer involvement in this methodology, with continuous planning and rapid feedback which enables delivery of working software every 1-3 weeks. XP is helpful in mitigating project risk . In this methodology small teams work closely together to deliver the modules. The business side works with IT team to develop ‘user stories’ or the granular parts of the software requirement. The programming team then estimates, plans, and delivers the user stories with the highest priorities in the form of working, tested software on an iterative basis. In order to ensure high productivity, this method uses a supportive, lightweight framework to provide guidelines to the team and get high quality working software. It has short development cycles and focuses on today’s needs rather than future needs which makes it suitable for environments that change often .
Extreme Programming techniques can be applied to projects wherein the system functionality keeps changing very often . It is also the strategy to deploy when development teams are small and senior developers have excellent communication skills .
Similarities and differences
Similarities
Both Scrum and XP are iterative methods. The customer is heavily involved in both cases . In both methods, iterations lead to an increment of the customer’s highest priority requirement. Once the customer approves, this can become released software. Only functionality that the customer wants in the next iteration is developed; no irrelevant coding is done. In both methods, the teams are self-organized, they determine how much to develop and what tasks are to be done. Business and IT are constantly meeting to decide how best the product can be built.
Differences
Conclusion
While Agile Methodologies provide alternatives to traditional project management, they do not rule out traditional models completely. Certain projects are more suited to the Agile methods. Similarly Scrum cannot always be applied to all projects and some projects require the discipline of Extreme Programming to be successful. There is no better methodology.
Works Cited
agilemethodology. The Agile Movement. 29 April 2016 <http://agilemethodology.org/>.
Almseidin, Mohammad, et al. "A Comparative Study of Agile Methods: XP versus SCRUM." International Journal of Computer Science and Software Engineering (2015): 126-129.
Bird, Jim. Why Scrum Won. 27 November 2012. 29 April 2016 <http://swreflections.blogspot.in/2012/11/why-scrum-won.html>.
Cohn, Mike. Differences Between Scrum and Extreme Programming. 6 April 2007. 29 April 2016 <https://www.mountaingoatsoftware.com/blog/differences-between-scrum-and-extreme-programming>.
Delos Santos, Jose Maria. XP, FDD, DSDM, and Crystal Methods of Agile Development. 28 January 2014. 29 April 2016 <http://project-management.com/xp-fdd-dsdm-and-crystal-methods-of-agile-development/>.
Freedman, Rick. The roots of agile project management. 16 June 2009. 29 April 2016 <http://www.techrepublic.com/blog/tech-decision-maker/the-roots-of-agile-project-management/>.
Mar, Kane and Ken Schwaber. "Scrum with XP." http://faculty.salisbury.edu/. 29 April 2016 <http://faculty.salisbury.edu/~xswang/research/papers/serelated/scrum/scrumxp.pdf>.
Sopra Steria UK Blog. Four reasons why Scrum is so popular. 22 January 2016. 29 April 2016 <https://blog.soprasteria.co.uk/2016/01/22/four-reasons-why-scrum-is-so-popular/>.
Sutherland, Jeff. A Tale of Two Scrums: Agile Done Right and Agile Gone Wrong. 14 January 2014. 29 April 2016 <http://labs.openviewpartners.com/agile-done-right-agile-gone-wrong/>.
Townsend, Andrew. Choosing the best Agile methodology for your development needs. 24 June 2011. 29 April 2016 <http://www.theserverside.com/tip/Choosing-the-best-Agile-methodology-for-your-development-needs>.
VersionOne. What Is Agile Methodology? 29 April 2016 <https://www.versionone.com/agile-101/agile-methodologies/>.
Wells, Don. When should Extreme Programming be used. 1999. 29 April 2016 <http://www.extremeprogramming.org/when.html>.
Williams, Laurie. "A Survey of Agile Development Methodologies ." 2007. agile.csc.ncsu.edu. 29 April 2016 <http://agile.csc.ncsu.edu/SEMaterials/AgileMethods.pdf>.
Wright, Graham. A lesson in extreme programming. 29 April 2016 <http://www.bcs.org/content/conWebDoc/15917>.