CSC/ECE 517 Fall 2009/wiki3 11 HJ3

From Expertiza_Wiki
Jump to navigation Jump to search

OTHER AGILE METHODS


Introduction

Agile software development is a conceptual framework for software engineering that promotes development iterations throughout the life-cycle of the project. Simply put, Agile allows your team to identify the most critical features of the software that can be completed within a short time frame (normally 1 to 2 months), and it delivers a complete build with this set of limited features as the first iteration. Once that is done, you can move those features to production or continue on to the next iteration. By breaking the releases into shorter stints, it allows you to gain quicker releases and to capture return on investment more quickly by putting the working (but limited) features into production sooner. This is in stark contrast to the more traditional "Waterfall" approach, where you design all features upfront, code each one, test each one, then move into production. Agile projects are iteratively released to production months where Waterfall projects normally span a year or more before they are released to production.


Extreme Programming (XP)

Overview

XP (eXtreme Programming) is a more radical agile methodology, focusing on the software development process and addressing the analysis, development and test phases with novel approaches aimed at making a substantial difference to the quality of the end product.


Adaptive Software Development (ASD)

Overview

Strength

Weakness

Differences from XP

Scrum

Overview

SCRUM is also an agile development method, which concentrates particularly on how to manage tasks within a team-based development environment.


Strength

Weakness

Differences from XP

Dynamic Systems Development Method (DSDM)

Overview

DSDM is probably the most complete agile methodology, whereas SCRUM and XP are easier to implement and complementary because they tackle different aspects of development projects and are both founded on the same principles of agile development. DSDM is probably the original agile development method. DSDM was around before the term 'Agile' was even invented, but is absolutely based on all the principles we’ve come to know as agile development.

Strength

Weakness

Differences from XP

Crystal

Overview

Crystal Clear is an agile methodology for projects with small teams, less than about 10 people in size. His focus is on the people, interaction, community, skills, talents, and communications with the belief that these are what have the first-order effect on performance. Process, he says, is important, but secondary.

Strength

Weakness

Differences from XP

Feature Drive Development (FDD)

Overview

Feature Driven Development (FDD) is an iterative and incremental software development process. It is one of a number of Agile methods for developing software and forms part of the Agile Alliance. FDD blends a number of industry-recognized best practices into a cohesive whole. These practices are all driven from a client-valued functionality (feature) perspective. Its main purpose is to deliver tangible, working software repeatedly in a timely manner. FDD is a model-driven short-iteration process that consists of five basic activities. For accurate state reporting and keeping track of the software development project, milestones that mark the progress made on each feature are defined. This section gives a high level overview of the activities. Feature-Driven Development (FDD) is a client-centric, architecture-centric, and pragmatic software process. The term “client” in FDD is used to represent what Agile Modeling (AM) refers to as project stakeholders or eXtreme Programming (XP) calls customers. FDD was first introduced to the world in 1999 via the book Java Modeling In Color with UML, a combination of the software process followed by Jeff DeLuca’s company and Peter Coad’s concept of features. FDD was first applied on a 15 month, 50-person project for a large Singapore bank in 1997, which was immediately followed by a second, 18-month long 250-person project. A more substantial description is published in the book A Practical Guide to Feature-Driven Development as well as the Feature Driven Development web site.


As the name implies, features are an important aspect of FDD. A feature is a small, client-valued function expressed in the form <action><result><object>. For example, “Calculate the total of a sale”, “Validate the password of a user”, and “Authorize the sales transaction of a customer”. Features are to FDD as use cases are to the Rational Unified Process (RUP) and user stories are to XP – they’re a primary source of requirements and the primary input into your planning efforts.


Strength

Weakness

Differences from XP

Lean Software Development (LSD)

Overview

Lean software development is a translation of lean manufacturing principles and practices to the software development domain. Adapted from the Toyota Production System, a pro-lean subculture is emerging from within the Agile community. Basically the lean manufacturing principles can also be applied to the software development process to resolve the issues and to improve the process and obtain better results.

Strength

Weakness

Differences from XP

Agile Modeling (AM)

Overview

Strength

Weakness

Differences from XP

Agile Unified Process (AUP)

Overview

Agile Unified Process (AUP) is a simplified version of the IBM Rational Unified Process (RUP) developed by Scott Ambler.[1] It describes a simple, easy to understand approach to developing business application software using agile techniques and concepts yet still remaining true to the RUP. The AUP applies agile techniques including test driven development (TDD), Agile Modeling, agile change management, and database refactoring to improve productivity. The Agile Unified Process (AUP) is a simplified version of the Rational Unified Process (RUP). It describes a simple, easy to understand approach to developing business application software using agile techniques and concepts yet still remaining true to the RUP. The AUP applies agile techniques include test driven design (TDD), Agile Modeling, agile change management, and Database Refactoring to improve your productivity. The Agile Unified Process, or Agile UP, is an ultra-lightweight variant of the Unified Process (UP) which was developed by Grady Booch, James Rumbaugh and Ivar Jacobson ~ and is marketed by IBM Rational as the Rational Unified Process (RUP). UP is an extensive process framework that can be applied to a very wide range of projects and is then adapted to the requirements of each individual project.The overall UP framework is often perceived as complicated and the anti-thesis of agility as practised within eXtreme Programming (XP), Scrum and DSDM, etc. The reality is that the Agile UP can be effectively applied as an agile adaptation of the wider UP framework which is in widespread use. Agile UP uses agile variants of the same basic practices and project phases as RUP, with the work disciplines and work products simplified and reduced in number. AUP is a simplified version of the Rational Unified Process (RUP). It describes a simple, easy to understand approach to developing business application software using agile techniques and concepts yet still remaining true to the RUP. I've tried to keep the Agile UP as simple as possible, both in its approach and in its description. The descriptions are simple and to the point, with links to details (on the web) if you want them. The approach applies agile techniques include test driven development (TDD), Agile Model Driven Development (AMDD), agile change management, and database refactoring to improve your productivity.


Strength

Weakness

Differences from XP

References

XP

[1] http://www.extremeprogramming.org/

[2] http://en.wikipedia.org/wiki/Extreme_Programming

[3] http://ootips.org/xp.html

[4] http://xprogramming.com/index.php

ASD

[5] http://en.wikipedia.org/wiki/Adaptive_Software_Development

[6] http://norvig.com/adapaper-pcai.html

[7] http://dirkriehle.com/computer-science/research/2000/xp-2000.pdf

[8] http://www.softwareplanner.com/SE_SP_adaptive_software_mkt.asp

Scrum

[9] http://en.wikipedia.org/wiki/Scrum_%28development%29

[10] http://softwareplanner.com/Newsletters/newsletter_2008_02_SP.htm

[11] http://scrummethodology.com/

[12] http://www.agile-software-development.com/2008/04/extreme-programming-versus-scrum.html

DSDM

[13] http://en.wikipedia.org/wiki/Dynamic_Systems_Development_Method

[14] http://www.ifi.uzh.ch/req/courses/seminar_ws03/14_Voigt_DSMD_Ausarbeitung.pdf

[15] http://www.freetutes.com/systemanalysis/sa2-dynamic-system-development-method.html

Crystal

[16] http://en.wikipedia.org/wiki/Crystal_Clear_%28software_development%29

[17] http://www.agilekiwi.com/crystal_clear.htm

FDD

[18] http://www.agilemodeling.com/essays/fdd.htm

[19] http://en.wikipedia.org/wiki/Feature_Driven_Development

[20] http://www.featuredrivendevelopment.com/node/519

LSD

[21] http://en.wikipedia.org/wiki/Lean_software_development

[22] http://www.poppendieck.com/

[23] http://www.projectperfect.com.au/downloads/Info/info_lean_development.pdf

[24] http://www.leansoftwareinstitute.com/art_ilsd.php

AM

[25] http://www.agilemodeling.com/essays/introductionToAM.htm

[26] http://en.wikipedia.org/wiki/Agile_Modeling

[27] http://www.ambysoft.com/books/agileModeling.html

[28] http://www.agilealliance.org/system/article/file/921/file.pdf

AUP

[29] http://www.ambysoft.com/unifiedprocess/agileUP.html

[30] http://en.wikipedia.org/wiki/Agile_Unified_Process

[31] http://en.allexperts.com/e/a/ag/agile_unified_process.htm

[32] http://www.radtac.co.uk/pdf/AUP.pdf