Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Agile Methods Overview ]

5,469 views

Published on

This presentation contains comparison of different agile methods like XP, Scrum, DSDM, FDM etc..

Agile Methods Overview ]

  1. 1. Prasad Prabhakaran © Satyam 2009
  2. 2. Objective of this talk Understand uniqueness of Agile software Development Bring out key differentiator of different Strength weakness analysis of different methods Summary & Key takeaways © Satyam 2009 2
  3. 3. Agile software development Agile software development is a style of software development characterized by an emphasis on people, communication, working software, and responding to change. Its principles are summarized in its seminal declaration, the Manifesto for Agile Software Development. © Satyam 2009 3
  4. 4. Key characteristics All Agile methodologies engage in an iterative workflow and incremental delivery of working software in short time-boxed iterations. An iteration is essentially a small release of software. Generally during each iteration many activities will occur in parallel, such as requirements, coding, and testing. Iterations are typically a fixed length (although this length varies between the methodologies) and thus are referred to as time-boxed. The time allocated to each iteration is sometimes referred to as a cycle time. © Satyam 2009 4
  5. 5. Software development lifecycle KEY: Project management Process support in agile methods Practices / activities / work products Adapted from Abrahamsson, P., Salo, O., Ronkainen, J., & Warsta, J. (2002). Agile Software Development Methods: Review and Analysis. VTT Publications 478. (pp. 95) Agile RUP Crystal DSDM XP FDD Scrum Concept Requirements Design Code Unit test Integration System Acceptance System Creation Specification test test test in use © Satyam 2009 5
  6. 6. Agile UP Phases Inception, Elaboration, Construction, Transition Disciplines Model, Implementation, Test, Deployment, Configuration Management, Project Management, Environment Philosophies Your staff knows what they're doing, Simplicity, Agility, Focus on high-value activities, Tool independence, You'll want to tailor the AUP to meet your own needs © Satyam 2009 6
  7. 7. Crystal Clear Frequent Delivery of Usable Code to Users (required) Reflective Improvement (required) Osmotic Communication Preferably by Being Co- Located (required) Personal Safety Focus Easy Access to Expert Users Automated Tests, Configuration Management, and Frequent Integration © Satyam 2009 7
  8. 8. DSDM Principles User involvement is the main key, The project team must be empowered, Frequent delivery of products, Delivering a system that addresses the current business needs, Development is iterative and incremental, Changes are reversible, High level scope and requirements should be base-lined, Testing is carried out throughout the project life-cycle, Communication and cooperation among all project stakeholders Techniques Timeboxing, MoSCoW, Prototyping, Testing, Workshop, Modelling © Satyam 2009 8
  9. 9. eXtreme Programming (XP) Values Communication, Simplicity, Feedback, Courage, Respect Activities Coding, Testing, Listening, Designing Practices Pair programming, Planning Game, Test Driven Development, Whole team, Continuous Integration, Design Improvement, Small Releases, Coding Standards, Collective Code Ownership, Simple Design, System Metaphor, Sustainable Pace © Satyam 2009 9
  10. 10. Feature Driven Development Activities Develop Overall Model, Build Feature List, Plan By Feature, Design By Feature, Build By Feature, Milestones Best practices Domain Object Modeling Developing by Feature Individual Class (Code) Ownership Feature Teams Inspections Configuration Management Regular Builds Visibility of progress and results © Satyam 2009 10
  11. 11. Scrum Techniques Team creation Backlog creation Project segmentation Scrum meetings Burndown charts Phases Review release plans Distribution, review and adjustment of product standards Sprint Sprint review Closure © Satyam 2009 11
  12. 12. Key Terms and Examples (1) Agile Method Term Examples Agile UP Phases Inception, elaboration, construction, transition Disciplines Model, implementation, test, project management Philosophies Simplicity, tool independence Crystal Clear Properties Frequent delivery of usable code, reflective improvement, osmotic communication Strategies Incremental Rearchitecture, Information Radiators. Techniques Daily Stand-up Meetings, Side-by-Side Programming, Burn Charts. DSDM Principles User involvement, empowered project team must, frequent delivery of products, testing throughout the project life-cycle Techniques Timeboxing, MoSCoW, testing, workshop © Satyam 2009 12
  13. 13. Key Terms and Examples (2) Agile Method Term Examples eXtreme Values Communication, simplicity, feedback, courage, Programming respect (XP) Activities Coding, testing, listening, designing Techniques Pair programming, test driven development, continuous integration, collective code ownership Feature Driven Activities Plan by feature, design by feature, build by Development feature Best practices Domain object modelling, developing by feature, individual class (code) ownership, visibility of progress and results Scrum Techniques Team creation, backlog creation, project segmentation, scrum meetings, burn down burn down charts Phases Review release plans, sprint, sprint review, closure © Satyam 2009 13
  14. 14. Techniques Stressed in Methods AUP Crystal DSDM XP FDD Scrum Clear Active stakeholder participation Agile Model Driven Development (AMDD) Code refactoring Code regression testing Co-location Common coding guidelines Continuous integration Pair programming Single sourcing information Test Driven Design (TDD) These techniques © Satyam 2009 14 explicitly excluded
  15. 15. XP Strengths Weakness Strong technical practices. Requires onsite customer. Customer ownership of feature Documentation primarily through priority, developer ownership of verbal communication and code. For estimates. some teams these are the only Frequent feedback opportunities. artifacts created, others create minimal Most widely known and adopted design and user documentation. approach. Difficult for new adopters to determine how to accommodate architectural and design concerns © Satyam 2009 15
  16. 16. Scrum Strengths Weakness Complements existing practices. Only provides project management Self organizing teams and feedback. support, other disciplines are out of Customer participation and steering. scope. Priorities based on business value. Does not specify technical practices. Only approach here that has a Can take some time to get the certification process. business to provide unique priorities for each requirement. © Satyam 2009 16
  17. 17. FDD Strengths Weakness Supports multiple teams working in Promotes individual code ownership parallel. as opposed to shared/team ownership. All aspects of a project tracked by Iterations are not as well defined by feature. the process as other Agile Design by feature and build by feature methodologies. aspects are easy to understand and The model-centric aspects can have adopt. huge impacts when working on existing Scales to large teams or projects well systems that have no models. © Satyam 2009 17
  18. 18. AUP Strengths Weakness Robust methodology with many Higher levels of ceremony may be a artifacts and disciplines to choose hindrance in smaller projects. from. Minimal attention to team dynamics. Scales up very well. Documentation is much more formal Documentation helps communicate in than most approaches mentioned here. distributed environments. Priorities set based on highest risk. Risk can be a business or technical risk. © Satyam 2009 18
  19. 19. Crystal Strengths Weakness Family of methodologies designed to Expects all team members to be co- scale by project size and criticality. located. May not work well for Only methodology that specifically distributed teams. accounts for life critical projects. Adjustments are required from one As project size grows, cross-functional project size/structure to another in teams are utilized to ensure order to follow the prescribed flavor of consistency. Crystal for that project size/criticality. The "human" component has been Moving from one flavor of Crystal to considered for every aspect of the another in mid project doesn't work, as project support structure. Crystal was not designed to be upward An emphasis on testing is so strong or downward compatible that at least one tester is expected to be on each project team © Satyam 2009 19
  20. 20. DSDM Strengths Weakness An emphasis on testing is so strong Probably the most heavyweight that at least one tester is expected to project compared in this survey. be on each project team. Expects continuous user involvement. Designed from the ground up by Defines several artifacts and work business people, so business value is products for each phase of the project; identified and expected to be the heavier documentation. highest priority deliverable. Access to material is controlled by a Has specific approach to determining Consortium, and fees may be charged how important each requirement is to just to access the reference material. an iteration. Sets stakeholder expectations from the start of the project that not all requirements will make it into the final deliverable. © Satyam 2009 20
  21. 21. Summary Two ways of categorizing the appropriateness of any Agile method to a given environment are project size and criticality. Although this doesn't provide a complete view of the appropriateness of an Agile method in a context, it does provide a very good general description of the fit. XP is generally most appropriate on smaller, highly dynamic projects although many of many of its practices can provide value when combined with other management methodologies. AUP provides a higher ceremony process that may be appropriate for larger teams, distributed teams, and systems of higher criticality. Scrum is a framework that focus on how to manage the overall process, maximize process, maximize business value, and reduce waste. Because Scrum do not specify technical practices, either can complement methodologies that do, such as XP or a company's existing methodology. DSDM is a heavier and more formal flavor of Agile, and is very business centric. It compares in many ways to AUP, but focuses on current business value as opposed to risk. Crystal offers a range of methodologies to choose from, each varying by project size and criticality. As the project size and/or criticality increases, Crystal adds mechanisms to support the additional burden of larger teams and higher degree of safety required by more critical projects. Finally, FDD is an interesting mix. It can function as a complete Agile process, or can be combined with Scrum, Lean or XP to produce a customized integration of techniques © Satyam 2009 21
  22. 22. References A Practical Guide to Seven Agile Methodologies by Rod Coffin & Derek Lane Agile software methods review and analysis by Pekka and Jussi © Satyam 2009 22
  23. 23. This document was created with Win2PDF available at http://www.win2pdf.com. The unregistered version of Win2PDF is for evaluation or non-commercial use only.

×