Agile Process Model

19
1 unit 3  Agile Development

Transcript of Agile Process Model

Page 1: Agile Process Model

7/31/2019 Agile Process Model

http://slidepdf.com/reader/full/agile-process-model 1/19

unit 3

Agile Development

Page 2: Agile Process Model

7/31/2019 Agile Process Model

http://slidepdf.com/reader/full/agile-process-model 2/19

Agile Software Development“We are uncovering better ways of developingsoftware by doing it and helping others do it.Through this work we have come to value:

•Individuals and interactions over processesand tools

•Working software over comprehensivedocumentation•Customer collaboration over contractnegotiation•Responding to change over following a plan

That is, while there is value in the items on theright, we value the items on the left more.”

Kent Beck et al

Page 3: Agile Process Model

7/31/2019 Agile Process Model

http://slidepdf.com/reader/full/agile-process-model 3/19

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are providedwith permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005

What is “Agility”?

Effective (rapid and adaptive) response to changeEffective communication among all stakeholdersDrawing the customer onto the teamOrganizing a team so that it is in control of the workperformed

Yielding … Rapid, incremental delivery of software

Page 4: Agile Process Model

7/31/2019 Agile Process Model

http://slidepdf.com/reader/full/agile-process-model 4/19

Agile

Change is what software development is very much about.Changes in the software being builtChanges to the team membersChanges because of new technology

An agile team recognizes that software is developed byindividuals working in teams and skills of these people,their ability to collaborate is at the core for the success of the project

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are providedwith permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005

Page 5: Agile Process Model

7/31/2019 Agile Process Model

http://slidepdf.com/reader/full/agile-process-model 5/19

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are providedwith permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005

An Agile Process

Is driven by customer descriptions of what isrequired (scenarios)Recognizes that plans are short-livedDevelops software iteratively with a heavy

emphasis on construction activitiesDelivers multiple „software increments‟

Adapts as changes occur

Page 6: Agile Process Model

7/31/2019 Agile Process Model

http://slidepdf.com/reader/full/agile-process-model 6/19

Principles for those who want toachieve agility

Meet customer requirementsEarly delivery of productsWelcome changing requirementsDeliver working software frequentlyBusiness people and developers must work together daily throughout the projectBuild projects around motivated individualsFace to face conversationContinuous attention to technical excellence and gooddesign

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are providedwith permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005

Page 7: Agile Process Model

7/31/2019 Agile Process Model

http://slidepdf.com/reader/full/agile-process-model 7/19

SimplicityBest architecture, requirements and designs merge fromself organizing teams

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are providedwith permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005

Page 8: Agile Process Model

7/31/2019 Agile Process Model

http://slidepdf.com/reader/full/agile-process-model 8/19

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are providedwith permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005

Extreme Programming (XP)

The most widely used agile process, originally proposedby Kent BeckXP Planning

Begins with the creation of “ user stories ”

Agile team assesses each story and assigns a cost Stories are grouped to for a deliverable increment

A commitment is made on delivery date After the first increment “ project velocity ”(no of cust storiesimplemented during the first release) is used to help definesubsequent delivery dates for other increments

Page 9: Agile Process Model

7/31/2019 Agile Process Model

http://slidepdf.com/reader/full/agile-process-model 9/19

Extreme Programming (XP)XP Design

Follows the KIS(Keep it Simple) principle Encourage the use of CRC (class responsibility collaborator)cards For difficult design problems, suggests the creation of “spike solutions ”—a designprototypeEncourages “refactoring ”—an iterative refinement of the internal program design

XP CodingRecommends the construction of a unit test for a store before coding commencesEncourages “pair programming ”. XP recommends that two people worktogether ….why?Refactoring is the process of changing the software system in such a way that itdoes not alter the external behavior of the code yet improves the internalstructure

XP Testing All unit tests are executed daily “Acceptance tests” are defined by the customer and executed to assess customer visible functionality

Page 10: Agile Process Model

7/31/2019 Agile Process Model

http://slidepdf.com/reader/full/agile-process-model 10/19

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are providedwith permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 1

Extreme Programming (XP)

unit t estcont inuous integrat ion

accept ance t est ing

pair programming

Release

user st oriesvalues accept ance t est crit eria

it erat ion plan

simple designCRC cards

spike solut ionsprototypes

refact oring

software incrementproject v elocity computed

Page 11: Agile Process Model

7/31/2019 Agile Process Model

http://slidepdf.com/reader/full/agile-process-model 11/19

1

Adaptive Software Development

Originally proposed by Jim Highsmith ASD — distinguishing features

Mission-driven planningComponent-based focus Uses “ time-boxing ”Explicit consideration of risks Emphasizes collaboration for requirements gatheringJelled team is essential for collaborationCriticize , assistance, work as harder, communication prob.Emphasizes “ learning ” throughout the process

Focus groups , Formal Technical Review, Postmortems(addressing its own performance , improve the approach)

Page 12: Agile Process Model

7/31/2019 Agile Process Model

http://slidepdf.com/reader/full/agile-process-model 12/19

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are providedwith permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 1

Adaptive Software Developmentadapt ive cycle planning

uses mi ssio n st at ement project const raints basic requirement s

t ime-boxed release plan

Requirement s gat heringJAD mini-specs

component s implement ed/ t est edfo cus groups for f eedback formal t echnical reviews

post mort ems

software incrementadjustment s for subsequent cycles

Release

Page 13: Agile Process Model

7/31/2019 Agile Process Model

http://slidepdf.com/reader/full/agile-process-model 13/19

1

Dynamic Systems Development Method

Promoted by the DSDM Consortium ( www.dsdm.org )DSDM —distinguishing features

Similar in most respects to XP and/or ASDNine guiding principles

Active user involvement is imperative.

DSDM teams must be empowered to make decisions.The focus is on frequent delivery of products.Fitness for business purpose is the essential criterion for acceptance of deliverables.Iterative and incremental development is necessary to converge on an accuratebusiness solution.

All changes during development are reversible.

Requirements are baselined at a high levelTesting is integrated throughout the life-cycle.

Page 14: Agile Process Model

7/31/2019 Agile Process Model

http://slidepdf.com/reader/full/agile-process-model 14/19

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are providedwith permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 1

Dynamic Systems Development Method

DSDM Life Cycle (with permission of the DSDM consortium)

Page 15: Agile Process Model

7/31/2019 Agile Process Model

http://slidepdf.com/reader/full/agile-process-model 15/19

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are providedwith permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 1

Scrum

Originally proposed by Schwaber and BeedleScrum —distinguishing features

Development work is partitioned into “ packets ” Testing and documentation are on-going as the product isconstructedWork occurs in “ sprints ” and is derived from a “ backlog ” of existing requirementsMeetings are very short and sometimes conducted without chairs“demos ” are delivered to the customer with the time -box allocated

Page 16: Agile Process Model

7/31/2019 Agile Process Model

http://slidepdf.com/reader/full/agile-process-model 16/19

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are providedwith permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 1

Scrum

Scrum Process Flow (used with permission)

Page 17: Agile Process Model

7/31/2019 Agile Process Model

http://slidepdf.com/reader/full/agile-process-model 17/19

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are providedwith permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 1

Crystal

Proposed by Cockburn and HighsmithCrystal —distinguishing features

Actually a family of process models that allow resoucelimited cooperative game of invention and communicationwith a primary goal in mind.( based on problemcharacteristics)Face-to-face communication is emphasizedSuggests the use of “ reflection workshops ” to review thework habits of the team

Page 18: Agile Process Model

7/31/2019 Agile Process Model

http://slidepdf.com/reader/full/agile-process-model 18/19

1

The crystal family is actually a set of agile processesthat have been proven effective for different types of

projects.

Page 19: Agile Process Model

7/31/2019 Agile Process Model

http://slidepdf.com/reader/full/agile-process-model 19/19

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are providedwith permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 1

Agile Modeling

Originally proposed by Scott Ambler Suggests a set of agile modeling principles

Model with a purposeUse multiple models

Travel lightContent is more important than representationKnow the models and the tools you use to create them

Adapt locally