CSC/ECE 517 Fall 2009/wiki3 11 j8
Agile Development
Agile development is a relatively new software development method that is becoming increasingly popular in the software industry. These methods promote smaller development iterations and much quicker stable builds of a product. Typically iterations can last between one and three weeks, compared with a normal 9 month or longer waterfall model.
There are many different agile methodologies, the most popular of which Extreme Programing. This page attempts to compare the different agile methods with that of Extreme Programming.
Extreme Programming (XP)
Several types of documentation are used for planning and design purposes:
* User story cards * Task List * CRC Cards * Customer Acceptance Tests * Visible Wall Graphs
Also there are may different roles that individuals of the team may take, of which someone may take more than one role.
* Manager * Coach * Tracker * Programmer * Tester * Customer
There are 13 goals and practices of extreme programming:
* Sitting together - The entire team sits in an open space * Whole team - Include everyone necessary to success. * Informative workspace - Include signs around the workspace to indicate progress. * Energized Work - Do not overextend members for a long period of time. * Pair programming * Stories (User stories) - Small statements of functionality ordered in priority by the customer. * Weekly cycle - * Quarterly Cycle * Slack * Ten-minute build * Test-first * Continuous Integration * Incremental Design
There are also 11 secondary practices which are considered somewhat optional. These will not be discussed here.
User stories are written
Code unit tests first
Pair programming
Emphasis on CRC crds during designs
http://www.extremeprogramming.org
Adaptive Software Development (ASD)
Strong emphasis on Dynamic programming languages speculate, collaborate, and learn cycles. http://en.wikipedia.org/wiki/Adaptive_Software_Development
Scrum
Places emphasis on different roles (Chicken/Pig)
ScrumMaster Product Owner Team Stakeholders
Daily scrum meetings Sprint review (at end) sprint retrospective (at end) Spring planning meeting (at begining) frequent stackholder meetings
Items Product Backlog Sprint Backlog
two to four week 'sprints'
Dynamic Systems Development Method (DSDM)
Project lifestyle: feasibility study, business study, functional model iteration, design and build iteration, and implementation.
http://en.wikipedia.org/wiki/Dynamic_Systems_Development_Method
Crystal
3 priorities [ safety (in project outcome), efficiency, habitability (developers can live with crystal)]
http://martinfowler.com/articles/newMethodology.html#Crystal
Feature Drive Development (FDD)
model-driven short-iteration process composed of 5 activities.
Activities:
Develop Overall Model - Walkthroughs of different models are done and presented for peer review. Build Feature List - The result of the modeling stage is used to gather a list of features. Domain is split into subject areas which contain business activities. Max feature time is two weeks. Plan by Feature - development plan from feature list Design by Feature - A set of features that can be done in two weeks is sselected. The design is done at the class level. Build by features - each of the selected features is built. Unit tests and code inspecition a must.
Milestones
Six milestones per feature that are completed sequentially. Percentage of each milestone is kept track o.