Comparative study on agile software development: Software development methodologies are constantly evolving due to changing technologies and new demands from users. Today’s dynamic business environment has given rise to emergent organizations that continuously adapt their structures, strategies, and policies to suit the new environment[12]. Such organizations need information systems that constantly evolve to meet their changing requirements. Though traditional software development methodologies, such as life cyclebased structured and object oriented approaches, continue to dominate the systems development few decades and much research has done in traditional methodologies, Agile software development brings its own set of novel challenges that must be addressed to satisfy the customer through early and continuous delivery of the valuable software. It’s a set of best practice that allows rapid delivery of high quality software to meet customer needs and also accommodate changes in the requirements.[13] Traditional, plan-driven software development methodologies lack the flexibility to dynamically adjust the development process. Agile development is the ability to develop software quickly keeping pace with the rapidly changing requirements. We speculate that from the need to satisfy the customer through early and continuous delivery of the valuable software, Agile software development is emerged. In this paper, we provide a brief comparison of agile development methodologies with traditional systems development methodologies, and discuss the challenges of adopting agile methodologies. A number of software development methods such as extreme programming (XP), feature-driven development, crystal clear method, scrum, dynamic systems development, and adaptive software development are also briefly discussed in this paper.
1. Comparative study
on
Agile software development
methodologies
By: A B M Moniruzzaman
MSc in CSE
Daffodil International University
2. Abstract
• Software development methodologies are constantly evolving due to changing technologies and
new demands from users. Today’s dynamic business environment has given rise to emergent
organizations that continuously adapt their structures, strategies, and policies to suit the new
environment[12]. Such organizations need information systems that constantly evolve to meet their
changing requirements. Though traditional software development methodologies, such as life
cyclebased structured and object oriented approaches, continue to dominate the systems
development few decades and much research has done in traditional methodologies, Agile
software development brings its own set of novel challenges that must be addressed to satisfy the
customer through early and continuous delivery of the valuable software. It’s a set of best practice
that allows rapid delivery of high quality software to meet customer needs and also accommodate
changes in the requirements.[13] Traditional, plan-driven software development methodologies
lack the flexibility to dynamically adjust the development process. Agile development is the ability
to develop software quickly keeping pace with the rapidly changing requirements. We speculate
that from the need to satisfy the customer through early and continuous delivery of the valuable
software, Agile software development is emerged. In this paper, we provide a brief comparison of
agile development methodologies with traditional systems development methodologies, and
discuss the challenges of adopting agile methodologies. A number of software development
methods such as extreme programming (XP), feature-driven development, crystal clear method,
scrum, dynamic systems development, and adaptive software development are also briefly
discussed in this paper.
3. Introduction
Definition :
An iterative and incremental (evolutionary)
approach to software development which is
performed in a highly collaborative manner by
self-organizing teams within an effective
governance framework with "just enough"
ceremony that produces high quality solutions
in a cost effective and timely manner which
meets the changing needs of its stakeholders.
6. Agile software development
• Agile software development is a group of
software development methods based on
iterative and incremental development, where
requirements and solutions evolve through
collaboration between self-organizing, cross-
functional teams. It promotes adaptive planning,
evolutionary development and delivery, a time-
boxed iterative approach, and encourages rapid
and flexible response to change. It is a conceptual
framework that promotes foreseen interactions
throughout the development cycle.
14. SCRUM
• Scrum is an iterative and incremental agile
software development method for managing
software projects and product or application
development. Scrum has not only reinforced
the interest in project management,but also
challenged the conventional ideas about such
management.
15. SCRUM
• In Scrum, the "Product Owner" works closely with the team
to identify and prioritize system functionality in form of a
"Product Backlog". The Product Backlog consists of
features, bug fixes, non-functional requirements, etc. -
whatever needs to be done in order to successfully deliver
a working software system. With priorities driven by the
Product Owner, cross-functional teams estimate and sign-
up to deliver "potentially shippable increments" of
software during successive Sprints, typically lasting 30 days.
Once a Sprint's Product Backlog is committed, no additional
functionality can be added to the Sprint except by the
team. Once a Sprint has been delivered, the Product
Backlog is analyzed and reprioritized, if necessary, and the
next set of functionality is selected for the next Sprint.
26. •
• Reference:
•
• Agile Software Development
• • www.agilealliance.org
• Extreme Programming
• • www.extremeprogramming.org
• • www.xprogramming.com/what_is_xp.htm
• • K.Beck: eXtreme Programming Explained, Addison-Wesley 2000
• Crystal Methodology
• • crystalmethodologies.org
• • members.aol.com/acockburn/
• • A.Cockburn: Agile Software Development – The Agile Development
• Series, 2000-2001
• Adaptive Software Development
• • www.adaptivesd.com
• • J.Highsmith: Agile Software Development Ecosystems, Addison-Wesley,
•
• Reference for agile lifecycle:
•
• Beck, K., 1999. “Embracing Change with Extreme
• Programming”, IEEE Computer, Vol. 32, No. 10, pp. 70-77.
• Cockburn, A., 2001. Agile Software Development. Boston,
• USA: Addison-Wesley.
• Larman, C., 2004. Agile & Iterative Development: A
• Manager’s Guide. Boston, USA: Addison-Wesley.
• Rautiainen, K., 2004. Cycles of Control: A Temporal Pacing
• Framework for Software Product Development
• Management. Licentiate’s Thesis, Helsinki University of
• Technology. Available as PDF from
• http://www.soberit.hut.fi/kqr/Lisuri_v12.pdf
•
•
• Figure Reference:
• http://www.versionone.com/state_of_agile_development_survey/10/page3.asp
•
•
• SCRUM Reference:
• http://www.codeproject.com/Articles/4798/What-is-SCRUM
•
•
27. • T1
• An Iterative Improvement Process for Agile Software Development
• Research Section
• Outi Salo*,† and Pekka Abrahamsson
• VTT Technical Research Centre of Finland, P.O. Box 1100, FIN-90571
• Oulu, Finland
• T2
• Boehm, B. (2002, January). Get ready for agile
• methods with care. IEEE Computer, 35(1), 64-
• 69.
•
• T3
• Challenges of Migrating to Agile Methodologies
• By Sridhar Nerur, RadhaKanta Mahapatra,
• and George Mangalaraj
•
• Ref:
• Empirical studies of agile software development: A systematic review
• Tore Dyba˚ *, Torgeir Dingsøyr
•
• [16] A. Cockburn, Crystal Clear: A Human-Powered Methodology for
• Small Teams, Addison-Wesley, 2004, ISBN 0-201-69947-8.
• [60] J. Stapleton, DSDM: Business Focused Development, second ed.,
• Pearson Education, 2003, ISBN 978-0321112248.
• [50] S.R. Palmer, J.M. Felsing, A Practical Guide to Feature-driven
• Development, Prentice Hall, Upper Saddle River, NJ, 2002, ISBN 0-
• 13-067615-2.
• [52] M. Poppendieck, T. Poppendieck, Lean Software Development – An
• Agile Toolkit for Software Development Managers, Addison-Wesley,
• Boston, 2003, ISBN 0-321-15078-3.
• [56] K. Schwaber, M. Beedle, Agile Software Development with Scrum,
• Prentice Hall, Upper Saddle River, 2001.
• [9] K. Beck, Extreme Programming Explained: Embrace Change, Addison-
• Wesley, 2000, ISBN 0-201-61641-6.
•
• [10] K. Beck, Extreme Programming Explained: Embrace Chage, second
• ed., Addison-Wesley, 2004, ISBN 978-0321278654.