Upload
mimi
View
19
Download
0
Embed Size (px)
DESCRIPTION
The Manifesto for Agile Software Development. Is there ever a situation where these “values” could get a project into trouble?. “We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: - PowerPoint PPT Presentation
Citation preview
1
The Manifesto for The Manifesto for Agile Software Agile Software DevelopmentDevelopment
““We are uncovering better ways of developing software We are uncovering better ways of developing software by doing it and helping others do it. Through this by doing it and helping others do it. Through this work we have come to value: work we have come to value:
•Individuals and interactionsIndividuals and interactions over processes and over processes and tools tools •Working softwareWorking software over comprehensive over comprehensive documentation documentation •Customer collaborationCustomer collaboration over contract negotiation over contract negotiation •Responding to changeResponding to change over following a plan over following a plan
That is, while there is value in the items on the right, That is, while there is value in the items on the right, we value the items on the left more.”we value the items on the left more.” Is there ever a situation where these “values” Is there ever a situation where these “values” could get a project into trouble? could get a project into trouble?
2
4.1 What is 4.1 What is “Agility”?“Agility”?
Effective (rapid and adaptive) response to changeEffective (rapid and adaptive) response to change Effective communication among all stakeholdersEffective communication among all stakeholders Drawing the customer onto the teamDrawing the customer onto the team Organizing a team so that it is in control of the work Organizing a team so that it is in control of the work
performedperformed
Yielding …Yielding … Rapid, incremental delivery of softwareRapid, incremental delivery of software
How is agile development different from the How is agile development different from the incremental and evolutionary approaches we incremental and evolutionary approaches we discussed in Chapter 3? discussed in Chapter 3?
3
The 12 Principles of AgilityThe 12 Principles of Agility
Do any of the 12 principles of agility seem Do any of the 12 principles of agility seem more/less important than any of the others? more/less important than any of the others?
Think of ways that you could try to achieve each Think of ways that you could try to achieve each principle on a project. principle on a project.
4.1 What is “Agility”?4.1 What is “Agility”?
4
4.2 What Is An Agile 4.2 What Is An Agile Process?Process?
Human FactorsHuman Factors CompetenceCompetence Common focusCommon focus CollaborationCollaboration Decision-making abilityDecision-making ability Fuzzy problem solving abilityFuzzy problem solving ability Mutual trust and respectMutual trust and respect Self-organizationSelf-organization
Can you perform agile methodologies without talented and Can you perform agile methodologies without talented and skilled people?skilled people?
Can you perform prescriptive methodologies without talented Can you perform prescriptive methodologies without talented and skilled people?and skilled people?
5
4.3.1 Extreme Programming 4.3.1 Extreme Programming (XP)(XP)
The most widely used agile process, originally The most widely used agile process, originally proposed by Kent Beckproposed by Kent Beck
XP PlanningXP Planning Begins with the creation of “Begins with the creation of “user storiesuser stories” on 3x5 index cards” on 3x5 index cards Customer assigns each story a valueCustomer assigns each story a value Agile team assesses each story and assigns a Agile team assesses each story and assigns a costcost Stories are grouped together for a Stories are grouped together for a deliverable incrementdeliverable increment A A commitmentcommitment is made on delivery date is made on delivery date After the first increment “After the first increment “project velocityproject velocity” is used to help define ” is used to help define
subsequent delivery dates for other incrementssubsequent delivery dates for other increments
6
4.3.1 Extreme Programming 4.3.1 Extreme Programming (XP)(XP)
XP DesignXP Design Follows the Follows the KIS principleKIS principle Encourage the use of Encourage the use of CRC cardsCRC cards (see Chapter 8) (see Chapter 8) For difficult design problems, suggests the creation of “For difficult design problems, suggests the creation of “spike spike
solutionssolutions”—a design prototype”—a design prototype Encourages “Encourages “refactoringrefactoring”—an iterative refinement of the internal ”—an iterative refinement of the internal
program designprogram design XP CodingXP Coding
Recommends the Recommends the construction of a unit testconstruction of a unit test for a story for a story beforebefore coding coding commencescommences
Encourages “Encourages “pair programmingpair programming”” ““Collective ownership”Collective ownership” of code of code
XP TestingXP Testing All All unit tests are executed dailyunit tests are executed daily Continuous integration, Continuous integration, daily buildsdaily builds ““Acceptance tests”Acceptance tests” are defined by the customer and executed to assess are defined by the customer and executed to assess
customer visible functionalitycustomer visible functionality
7
4.3.2 Adaptive Software 4.3.2 Adaptive Software DevelopmentDevelopment
Originally proposed by Jim HighsmithOriginally proposed by Jim Highsmith ASD — distinguishing featuresASD — distinguishing features
Speculation, collaboration, learningSpeculation, collaboration, learning Emphasizes Emphasizes collaborationcollaboration for requirements for requirements
gatheringgathering Emphasizes “Emphasizes “learninglearning” throughout the process” throughout the process
8
4.3.3 Dynamic Systems Development 4.3.3 Dynamic Systems Development MethodMethod
Promoted by the DSDM Consortium (Promoted by the DSDM Consortium (www.dsdm.org))
DSDM—distinguishing featuresDSDM—distinguishing features Nine guiding principlesNine guiding principles
Active user involvement is imperative. Active user involvement is imperative. DSDM teams must be empowered to make decisions.DSDM teams must be empowered to make decisions. The focus is on frequent delivery of products. The focus is on frequent delivery of products. Fitness for business purpose is the essential criterion for acceptance of Fitness for business purpose is the essential criterion for acceptance of
deliverables.deliverables. Iterative and incremental development is necessary to converge on an Iterative and incremental development is necessary to converge on an
accurate business solution.accurate business solution. All changes during development are reversible.All changes during development are reversible. Requirements are baselined at a high levelRequirements are baselined at a high level Testing is integrated throughout the life-cycle.Testing is integrated throughout the life-cycle.
Functional Model, Design & Build, ImplementationFunctional Model, Design & Build, Implementation Prototypes, 11 projects rolesPrototypes, 11 projects roles Less radical agile approachLess radical agile approach
9
4.3.4 4.3.4 ScrumScrum
Originally proposed by Schwaber and BeedleOriginally proposed by Schwaber and Beedle Scrum—distinguishing featuresScrum—distinguishing features
Development work is partitioned into 30 day “Development work is partitioned into 30 day “sprintssprints”” Pre-sprintPre-sprint
Product ownerProduct owner Product backlog, release backlog, sprint backlog, sprint Product backlog, release backlog, sprint backlog, sprint
goalgoal SprintSprint
Scrum meetingsScrum meetings Scrum masterScrum master
Post-sprintPost-sprint
10
4.3.5 4.3.5 CrystalCrystal
Proposed by Cockburn and HighsmithProposed by Cockburn and Highsmith Crystal—distinguishing featuresCrystal—distinguishing features
Actually a Actually a family of process modelsfamily of process models that allow that allow ““maneuverabilitymaneuverability” based on problem ” based on problem characteristics (clear, yellow, orange, red, etc.)characteristics (clear, yellow, orange, red, etc.)
Face-to-face communicationFace-to-face communication is emphasized is emphasized Suggests the use of “Suggests the use of “reflection workshopsreflection workshops” to ” to
review the work habits of the teamreview the work habits of the team
11
4.3.6 Feature Driven 4.3.6 Feature Driven DevelopmentDevelopment
Originally proposed by Peter Coad et alOriginally proposed by Peter Coad et al FDD—distinguishing featuresFDD—distinguishing features
Emphasis is on defining Emphasis is on defining “features”“features” aa featurefeature “is a client-valued function that can be “is a client-valued function that can be
implemented in two weeks or less.”implemented in two weeks or less.” Uses a Uses a feature templatefeature template
<action> the <result> <by | for | of | to> a(n) <object><action> the <result> <by | for | of | to> a(n) <object>
A A features listfeatures list is created and “ is created and “plan by featureplan by feature” is ” is conductedconducted
Design and construction merge in FDDDesign and construction merge in FDD
12
4.3.6 Feature Driven 4.3.6 Feature Driven DevelopmentDevelopment
Reprinted with permission of Peter CoadReprinted with permission of Peter Coad
13
4.3.7 Agile 4.3.7 Agile ModelingModeling
Originally proposed by Scott AmblerOriginally proposed by Scott Ambler Suggests a set of agile modeling principlesSuggests a set of agile modeling principles
Model with a purposeModel with a purpose Use multiple modelsUse multiple models Travel light (only keep models w/ long term Travel light (only keep models w/ long term
value)value) Content is more important than representationContent is more important than representation Know the models and the tools you use to create Know the models and the tools you use to create
themthem Adapt locallyAdapt locally