Comparative study
             on
Agile software development
       methodologies
    By: A B M Moniruzzaman
            MSc in CSE
 Daffodil International University
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.
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.
agile manifesto
Agile Principles
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.
Agile development life cycle
Agile development life cycle
Agile Methodologies
•   Well-known agile software development methods include:
•   Agile Modeling
•   Agile Unified Process (AUP)
•   Crystal Clear
•   Dynamic Systems Development Method (DSDM)
•   Extreme Programming (XP)
•   Feature Driven Development (FDD)
•   GSD
•   Kanban (development)
•   Lean software development
•   Scrum
•   Velocity tracking
Agile Methodologies used
Agile Methodologies used
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.
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.
SCRUM PROCESS
Comparison Agile SDMs over traditional SDMs:
Comparison Agile SDMs over traditional SDMs:
There is growing survey evidence that agile works
             better than traditional.
Effectiveness of agile software development
   compared with traditional approaches.
Benefits to Agile Adoption
References
• http://agilemanifesto.org/
• http://agilemanifesto.org/principles.html
• http://www.agile-process.org/
• http://en.wikipedia.org/wiki/Agile_software_development
• http://www.agilealliance.org/the-alliance/what-is-agile/
• http://www.versionone.com/Agile101/Agile-Software-
  Development-Benefits/
• http://www.agilemodeling.com/essays/agileSoftwareDevel
  opment.htm
• http://www.ambysoft.com/essays/agileLifecycle.html
•
•   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
•
•
•   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.
Comparative study on agile software development

Comparative study on agile software development

  • 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.
  • 4.
  • 5.
  • 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.
  • 8.
  • 9.
  • 11.
    Agile Methodologies • Well-known agile software development methods include: • Agile Modeling • Agile Unified Process (AUP) • Crystal Clear • Dynamic Systems Development Method (DSDM) • Extreme Programming (XP) • Feature Driven Development (FDD) • GSD • Kanban (development) • Lean software development • Scrum • Velocity tracking
  • 12.
  • 13.
  • 14.
    SCRUM • Scrum isan 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.
  • 16.
  • 17.
    Comparison Agile SDMsover traditional SDMs:
  • 18.
    Comparison Agile SDMsover traditional SDMs:
  • 19.
    There is growingsurvey evidence that agile works better than traditional.
  • 20.
    Effectiveness of agilesoftware development compared with traditional approaches.
  • 22.
  • 25.
    References • http://agilemanifesto.org/ • http://agilemanifesto.org/principles.html •http://www.agile-process.org/ • http://en.wikipedia.org/wiki/Agile_software_development • http://www.agilealliance.org/the-alliance/what-is-agile/ • http://www.versionone.com/Agile101/Agile-Software- Development-Benefits/ • http://www.agilemodeling.com/essays/agileSoftwareDevel opment.htm • http://www.ambysoft.com/essays/agileLifecycle.html
  • 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.