Apt agile methodology

86
Agile Methodology Agile Methodology An Introduction to the Concepts of the Agile Methodology
  • Upload

    citi
  • Category

    Design

  • view

    1.063
  • download

    0

Transcript of Apt agile methodology

Page 1: Apt agile methodology

Agile MethodologyAgile Methodology An Introduction to the Concepts of the Agile Methodology

Page 2: Apt agile methodology

www.orangeandbronze.com

CopyrightCopyright

This material is primarily for the use of Orange and This material is primarily for the use of Orange and Bronze Software Labs, Inc.Bronze Software Labs, Inc.

No part of this material may be reproduced or No part of this material may be reproduced or transmitted in any form or by any means, electronic or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording, or by any mechanical, including photocopying, recording, or by any information storage and retrieval system, without information storage and retrieval system, without permission in writing from the publisher. permission in writing from the publisher.

Page 3: Apt agile methodology

www.orangeandbronze.com

OverviewOverview• What is the Agile Methodology?What is the Agile Methodology?

→ HistoryHistory→ PrinciplesPrinciples→ CharacteristicsCharacteristics

• Agile Method: SCRUMAgile Method: SCRUM

• Agile Method: XPAgile Method: XP

Page 4: Apt agile methodology

www.orangeandbronze.com

HistoryHistory• Evolved in the mid 90s as part of a reaction against Evolved in the mid 90s as part of a reaction against

““heavyweightheavyweight” methods” methods→ e.g. e.g. heavily regulatedheavily regulated, , regimentedregimented, , micro-managedmicro-managed use use

of the Waterfall Methodof the Waterfall Method

• Sought to move away from the Waterfall Method Sought to move away from the Waterfall Method which was seen as which was seen as bureaucraticbureaucratic, , slowslow, , demeaningdemeaning, and , and inconsistentinconsistent with the ways that developers perform with the ways that developers perform effective workeffective work

• Initially called Initially called lightweight methodslightweight methods

Page 5: Apt agile methodology

www.orangeandbronze.com

HistoryHistory• Earlier MethodsEarlier Methods

→ Scrum (1986)Scrum (1986)→ Crystal Clear and Other Crystal MethodologiesCrystal Clear and Other Crystal Methodologies→ Extreme Programming (XP) (1996)Extreme Programming (XP) (1996)→ Adaptive Software Development (ASD)Adaptive Software Development (ASD)→ Feature Driven DevelopmentFeature Driven Development→ Dynamic Systems Development Method (DSDM) (1995)Dynamic Systems Development Method (DSDM) (1995)→ Agile ModelingAgile Modeling→ Lean Software DevelopmentLean Software Development→ Agile Unified Process (AUP)Agile Unified Process (AUP)

Page 6: Apt agile methodology

www.orangeandbronze.com

The Agile ManifestoThe Agile Manifesto

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 work by doing it and helping others do it. Through this work we have come to value:we have come to value:

Individuals and interactionsIndividuals and interactions over processes and tools over processes and tools

Working softwareWorking software over comprehensive documentation over comprehensive documentation

Customer collaborationCustomer collaboration over contract negotiation over contract negotiation

Responding to changeResponding to change over following a plan over following a plan

Page 7: Apt agile methodology

www.orangeandbronze.com

Agile Principles (The Agile Manifesto)Agile Principles (The Agile Manifesto)• Customer satisfaction by Customer satisfaction by rapidrapid, , continuous deliverycontinuous delivery of of

useful softwareuseful software

• Working software is delivered frequently (Working software is delivered frequently (weeks rather weeks rather than monthsthan months))

• Working softwareWorking software is the is the principal measureprincipal measure of progress of progress

• CloseClose, , daily cooperationdaily cooperation between business people and between business people and developersdevelopers

• Face-to-face conversationFace-to-face conversation is the best form of is the best form of communicationcommunication

Page 8: Apt agile methodology

www.orangeandbronze.com

Agile Principles (The Agile Manifesto)Agile Principles (The Agile Manifesto)• Projects are built around Projects are built around motivated individualsmotivated individuals, who , who

should be trusted to get the job doneshould be trusted to get the job done

• Continuous attention to Continuous attention to technical excellencetechnical excellence and and good good designdesign

• SimplicitySimplicity

• Self-organizing teamsSelf-organizing teams

• Regular adaptationRegular adaptation to changing circumstances to changing circumstances

Page 9: Apt agile methodology

www.orangeandbronze.com

Agile CharacteristicsAgile Characteristics• More More adaptiveadaptive than predictive than predictive

• Focuses on the Focuses on the near futurenear future rather than the distant rather than the distant futurefuture

• Focuses on Focuses on adapting quicklyadapting quickly to changing realities rather to changing realities rather than planning for the entire length of the development than planning for the entire length of the development processprocess

• Has a lot in common with Has a lot in common with Rapid Application Rapid Application DevelopmentDevelopment

Page 10: Apt agile methodology

www.orangeandbronze.com

Agile CharacteristicsAgile Characteristics• Time periods are Time periods are strict time boxesstrict time boxes and are measured in and are measured in

weeks rather than monthsweeks rather than months

• Highly collaborative workHighly collaborative work

• Emphasizes Emphasizes real time communicationreal time communication

• Emphasis on Emphasis on building releasable softwarebuilding releasable software in short time in short time periodsperiods

• Customer is on site and part of the development teamCustomer is on site and part of the development team

Page 11: Apt agile methodology

www.orangeandbronze.com

Agile CharacteristicsAgile Characteristics• PhasesPhases

→ InceptionInception→ ElaborationElaboration→ ConstructionConstruction→ TransitionTransition

Page 12: Apt agile methodology

www.orangeandbronze.com

Agile CharacteristicsAgile Characteristics• Inception PhaseInception Phase

→ Smallest phase in the projectSmallest phase in the project→ Ideally shortIdeally short→ Goals:Goals:• Establish a justification or business case for the project

• Establish the project scope and boundary conditions

• Outline the Use Cases and key requirements that will drive design tradeoffs

• Outline one or more architectures

• Identify risks

Page 13: Apt agile methodology

www.orangeandbronze.com

Agile CharacteristicsAgile Characteristics• Inception PhaseInception Phase

→ Goals:Goals:• Prepare a preliminary project schedule and cost estimate

• Establish a baseline by which to compare actual and planned expenditures

→ Deliverables:Deliverables:• Objectives and Scope of the Project

• High Level Use Cases

• Candidate Architectures

• Project Schedule and Cost Estimates

Page 14: Apt agile methodology

www.orangeandbronze.com

Agile CharacteristicsAgile Characteristics• Elaboration PhaseElaboration Phase

→ Project starts to take shapeProject starts to take shape→ Healthy majority of the system requirements is Healthy majority of the system requirements is

capturedcaptured→ Analysis of the problem domainAnalysis of the problem domain

Page 15: Apt agile methodology

www.orangeandbronze.com

Agile CharacteristicsAgile Characteristics• Elaboration PhaseElaboration Phase

→ Primary Goals:Primary Goals:• Address known risk factors

• Establish and validate system architecture

• Delve deeper into the requirements previously gathered

Page 16: Apt agile methodology

www.orangeandbronze.com

Agile CharacteristicsAgile Characteristics• Elaboration PhaseElaboration Phase

→ Deliverables:Deliverables:• Detailed Use Cases

• Conceptual Diagrams– Ex. Process Flow Diagrams, Activity Diagrams, etc.

• Package Diagrams– Architectural Diagrams

• Stable System Architecture

• Plan for Construction Phase– Including cost and schedule estimates

Page 17: Apt agile methodology

www.orangeandbronze.com

Agile CharacteristicsAgile Characteristics• Construction PhaseConstruction Phase

→ Largest phaseLargest phase→ Where the bulk of the coding takes placeWhere the bulk of the coding takes place→ Use cases are translated to demonstrable prototypesUse cases are translated to demonstrable prototypes→ System is built under the foundation laid in ElaborationSystem is built under the foundation laid in Elaboration

Page 18: Apt agile methodology

www.orangeandbronze.com

Agile CharacteristicsAgile Characteristics• Construction PhaseConstruction Phase

→ Main Focus: Development of components and featuresMain Focus: Development of components and features• Implemented in a series of short, timeboxed iterations

• Each iteration yields an executable release of software

→ Deliverables:Deliverables:• First external release of the software

• Succeeding releases of the software as per iteration

Page 19: Apt agile methodology

www.orangeandbronze.com

Agile CharacteristicsAgile Characteristics• Transition PhaseTransition Phase

→ Product moves from development team to end usersProduct moves from development team to end users→ Feedback received may lead to further refinementsFeedback received may lead to further refinements→ Refinements may be incorporated in several iterationsRefinements may be incorporated in several iterations

Page 20: Apt agile methodology

www.orangeandbronze.com

Agile CharacteristicsAgile Characteristics• Transition PhaseTransition Phase

→ Activities:Activities:• System conversion

• Training of end users and maintenance team

• Validation of system against end user expectation via beta testing

• Quality level validation

→ Deliverables:Deliverables:• Final release of the system

Page 21: Apt agile methodology

www.orangeandbronze.com

Agile CharacteristicsAgile Characteristics• Principles on Code ProductionPrinciples on Code Production

→ Keep it Keep it simplesimple→ Have Have one shared metaphorone shared metaphor→ Regularly restructure the system (Regularly restructure the system (RefactoringRefactoring))→ Continuously Continuously integrateintegrate and and testtest→ Follow Follow coding standardscoding standards

Page 22: Apt agile methodology

www.orangeandbronze.com

Agile CharacteristicsAgile Characteristics• Agile Best PracticesAgile Best Practices

→ Daily kickoff and review of goalsDaily kickoff and review of goals→ Short release cyclesShort release cycles→ Responsive developmentResponsive development→ GeneralismGeneralism• Use of generic skill sets that are common across the

team, instead of reliance on specific skill sets that are scarce

Page 23: Apt agile methodology

www.orangeandbronze.com

Agile CharacteristicsAgile Characteristics• AdvantagesAdvantages

→ Customer decides Customer decides scopescope, , prioritypriority, and , and datesdates from a from a business perspective, while technical people business perspective, while technical people estimateestimate and and track progresstrack progress

→ Incremental developmentIncremental development→ Emphasis on responsibility for qualityEmphasis on responsibility for quality

Page 24: Apt agile methodology

www.orangeandbronze.com

Agile CharacteristicsAgile Characteristics• AdvantagesAdvantages

→ Emphasis on keeping it simple, regular refactoring, and Emphasis on keeping it simple, regular refactoring, and continuous integration and testingcontinuous integration and testing

→ Lightweight, efficient, low-risk, flexible, scientific, and Lightweight, efficient, low-risk, flexible, scientific, and fun way of developing softwarefun way of developing software

Page 25: Apt agile methodology

www.orangeandbronze.com

Agile CharacteristicsAgile Characteristics• Criticism / DisadvantagesCriticism / Disadvantages

→ Puts strong dependence on trustPuts strong dependence on trust→ Code-centered rather than design-centeredCode-centered rather than design-centered→ Lack of orderly design process and structured reviews Lack of orderly design process and structured reviews

may lead to extensive and time consuming testsmay lead to extensive and time consuming tests

Page 26: Apt agile methodology

www.orangeandbronze.com

Agile CharacteristicsAgile Characteristics• Criticism / DisadvantagesCriticism / Disadvantages

→ Lack of structure and necessary documentationLack of structure and necessary documentation→ Only works with senior-level developersOnly works with senior-level developers→ Reliance on verbal communicationReliance on verbal communication→ Requires too much cultural change to adoptRequires too much cultural change to adopt

Page 27: Apt agile methodology

www.orangeandbronze.com

Suitability with Types of ProjectsSuitability with Types of Projects• AGILE HomegroundAGILE Homeground

→ Low criticalityLow criticality→ Senior developersSenior developers→ Requirements change frequentlyRequirements change frequently→ Culture that thrives on “chaos” or changing realitiesCulture that thrives on “chaos” or changing realities

Page 28: Apt agile methodology

www.orangeandbronze.com

Suitability with Types of ProjectsSuitability with Types of Projects• PLAN-DRIVEN HomegroundPLAN-DRIVEN Homeground

→ High criticalityHigh criticality→ Junior developersJunior developers→ Requirements don't change too oftenRequirements don't change too often→ Large number of developersLarge number of developers→ Culture that demands orderCulture that demands order

Page 29: Apt agile methodology

www.orangeandbronze.com

Agile MethodsAgile Methods• ScrumScrum

• Extreme Programming (XP)Extreme Programming (XP)

• Agile ModelingAgile Modeling

• Agile Unified Process (AUP)Agile Unified Process (AUP)

• Agile Data MethodAgile Data Method

• Test Driven Development (TDD)Test Driven Development (TDD)

• Feature Driven Development (FDD)Feature Driven Development (FDD)

• Behavior Driven Development (BDD)Behavior Driven Development (BDD)

• Essential Unified Process (EssUP)Essential Unified Process (EssUP)

Page 30: Apt agile methodology

www.orangeandbronze.com

SCRUMSCRUM• Originally a rugby term which is short for “scrummage”Originally a rugby term which is short for “scrummage”

Page 31: Apt agile methodology

www.orangeandbronze.com

SCRUMSCRUM• CharacteristicsCharacteristics

→ An An iterative incrementaliterative incremental process commonly used with process commonly used with the Agile Methodologythe Agile Methodology

→ Can be used:Can be used:• For managing software development projects

• As a program management approach (Scrum of Scrums)

→ Works hand in hand with the Works hand in hand with the PSA Time and Material PSA Time and Material ModelModel

Page 32: Apt agile methodology

www.orangeandbronze.com

SCRUMSCRUM• CharacteristicsCharacteristics

→ A A process skeletonprocess skeleton that includes a set of practices and that includes a set of practices and predefined rolespredefined roles

→ Employs “Employs “SprintsSprints” - a time period, usually 15 – 30 days, ” - a time period, usually 15 – 30 days, in which development occurs on a set backlog items in which development occurs on a set backlog items that the team has committed tothat the team has committed to

Page 33: Apt agile methodology

www.orangeandbronze.com

SCRUM RolesSCRUM Roles• Pig RolesPig Roles – The ones committed to the project and the – The ones committed to the project and the

Scrum process (Scrum Team)Scrum process (Scrum Team)

• Chicken RolesChicken Roles – The ones not part of the actual Scrum – The ones not part of the actual Scrum process but are only involvedprocess but are only involved

Page 34: Apt agile methodology

www.orangeandbronze.com

Pig RolesPig Roles• Product OwnerProduct Owner

→ The voice of the customerThe voice of the customer→ Responsible for maintaining the Product Responsible for maintaining the Product

BacklogBacklog

• Scrum Master (or Facilitator)Scrum Master (or Facilitator)→ Responsible for the Scrum processResponsible for the Scrum process→ Ensures that Scrum is used correctly and its Ensures that Scrum is used correctly and its

benefits are maximizedbenefits are maximized

Page 35: Apt agile methodology

www.orangeandbronze.com

Pig RolesPig Roles• TeamTeam

→ A cross-functional group of peopleA cross-functional group of people→ Responsible for managing itself to develop Responsible for managing itself to develop

the productthe product

Page 36: Apt agile methodology

www.orangeandbronze.com

Chicken RolesChicken Roles• UsersUsers

→ Who the software is built forWho the software is built for

• StakeholdersStakeholders→ People who have interest in the projectPeople who have interest in the project→ People within or outside an organization People within or outside an organization

that may influence the project's objectives that may influence the project's objectives and outcomesand outcomes

• ManagersManagers→ The people who will set up the environment The people who will set up the environment

for developmentfor development

Page 37: Apt agile methodology

www.orangeandbronze.com

SCRUM DocumentsSCRUM Documents• Product BacklogProduct Backlog

→ The The WHATWHAT that will be built that will be built→ High levelHigh level document for the entire project document for the entire project→ Prioritized listPrioritized list of high level requirements of high level requirements→ Contains Contains broad descriptionsbroad descriptions of all required features, of all required features,

wish list items, etc.wish list items, etc.→ Contains Contains rough estimatesrough estimates

Page 38: Apt agile methodology

www.orangeandbronze.com

SCRUM DocumentsSCRUM Documents

Page 39: Apt agile methodology

www.orangeandbronze.com

SCRUM DocumentsSCRUM Documents• Sprint BacklogSprint Backlog

→ Tells Tells HOWHOW requirements are to be implemented in the requirements are to be implemented in the upcoming Sprintupcoming Sprint

→ Greatly detailedGreatly detailed document enumerating tasks to be document enumerating tasks to be completed during the Sprintcompleted during the Sprint

→ Broken down list of tasksBroken down list of tasks, with each task being no more , with each task being no more than 16 hoursthan 16 hours

→ Tasks are Tasks are never assignednever assigned, but signed-up for by team , but signed-up for by team membersmembers

Page 40: Apt agile methodology

www.orangeandbronze.com

SCRUM DocumentsSCRUM Documents

Page 41: Apt agile methodology

www.orangeandbronze.com

SCRUM DocumentsSCRUM Documents

Page 42: Apt agile methodology

www.orangeandbronze.com

SCRUM DocumentsSCRUM Documents• Burn Down ChartBurn Down Chart

→ Publicly displayedPublicly displayed chart chart→ Shows the Shows the amount of remaining tasksamount of remaining tasks for the current for the current

SprintSprint→ Updated Updated dailydaily→ Gives a Gives a simple view of the daily progresssimple view of the daily progress of the team of the team

during a Sprintduring a Sprint

Page 43: Apt agile methodology

www.orangeandbronze.com

SCRUM DocumentsSCRUM Documents

Page 44: Apt agile methodology

www.orangeandbronze.com

SCRUM General PracticesSCRUM General Practices• Customers are part of the development teamCustomers are part of the development team

• Frequent intermediate deliveries with working Frequent intermediate deliveries with working functionalityfunctionality

• Frequent risk and mitigation plansFrequent risk and mitigation plans

• Transparency in planning and module developmentTransparency in planning and module development

Page 45: Apt agile methodology

www.orangeandbronze.com

SCRUM General PracticesSCRUM General Practices• Frequent stakeholder meetings to monitor progressFrequent stakeholder meetings to monitor progress

• No one is penalized for recognizing or describing any No one is penalized for recognizing or describing any unforeseen problemsunforeseen problems

• Workplaces and working hours must be energizedWorkplaces and working hours must be energized

Page 46: Apt agile methodology

www.orangeandbronze.com

SCRUM ProcessSCRUM Process

Page 47: Apt agile methodology

www.orangeandbronze.com

Extreme Programming (XP)Extreme Programming (XP)

““Extreme Programming is a Extreme Programming is a discipline of software discipline of software developmentdevelopment based on values of based on values of simplicitysimplicity, , communicationcommunication, , feedbackfeedback, and , and couragecourage. It works by . It works by bringing the whole team together in the presence of bringing the whole team together in the presence of simple practices, with enough feedback to enable the simple practices, with enough feedback to enable the team to see where they are and to tune the practices to team to see where they are and to tune the practices to their unique situation.”their unique situation.”

–– Ron Jeffries (2001)Ron Jeffries (2001)

Page 48: Apt agile methodology

www.orangeandbronze.com

Extreme Programming (XP)Extreme Programming (XP)• Founded by Founded by Ron JeffriesRon Jeffries, , Kent BeckKent Beck & & Ward CunninghamWard Cunningham

• A A deliberatedeliberate and and disciplineddisciplined approach to software approach to software developmentdevelopment

• Stresses Stresses customer satisfactioncustomer satisfaction→ It is designed to deliver the software needed by the It is designed to deliver the software needed by the

customer and when it is neededcustomer and when it is needed

Page 49: Apt agile methodology

www.orangeandbronze.com

Extreme Programming (XP)Extreme Programming (XP)• Empowers developers to confidently Empowers developers to confidently respond to respond to

changing customer requirementschanging customer requirements, even late in the life , even late in the life cyclecycle

• Emphasizes Emphasizes teamworkteamwork→ Managers, customers and developers are all part of a Managers, customers and developers are all part of a

team dedicated to delivering quality softwareteam dedicated to delivering quality software

• Involves changing Involves changing the way we programthe way we program, putting greater , putting greater emphasis on producing emphasis on producing simple, high quality codesimple, high quality code

Page 50: Apt agile methodology

www.orangeandbronze.com

Extreme Programming (XP)Extreme Programming (XP)

Ron JeffriesRon Jeffries Ward CunninghamWard CunninghamKent BeckKent Beck

Page 51: Apt agile methodology

www.orangeandbronze.com

XP ValuesXP Values• CommunicationCommunication

→ Accomplished through documentationAccomplished through documentation→ Goal is to give developers a shared view of the system Goal is to give developers a shared view of the system

which matches the views held by the userswhich matches the views held by the users

• SimplicitySimplicity→ Start with the simplest solution, extras can be added Start with the simplest solution, extras can be added

laterlater→ Focus on Focus on todaytoday, not tomorrow, not tomorrow→ Simple design with simple code can be easily Simple design with simple code can be easily

understoodunderstood

Page 52: Apt agile methodology

www.orangeandbronze.com

XP ValuesXP Values• FeedbackFeedback

→ From the system through unit testsFrom the system through unit tests→ From the customer through functional / acceptance From the customer through functional / acceptance

teststests→ From the team through changes in the requirementsFrom the team through changes in the requirements

• CourageCourage→ Enables developers to feel comfortable in refactoring Enables developers to feel comfortable in refactoring

their own codetheir own code→ Knowing when to throw obsolete code awayKnowing when to throw obsolete code away→ PersistencePersistence

Page 53: Apt agile methodology

www.orangeandbronze.com

XP ValuesXP Values• RespectRespect

→ Respect for each Respect for each member's workmember's work

→ Nobody on the team Nobody on the team should feel should feel unappreciated or unappreciated or ignoredignored

Page 54: Apt agile methodology

www.orangeandbronze.com

RequirementsRequirements

Page 55: Apt agile methodology

www.orangeandbronze.com

Capturing Requirements: User StoriesCapturing Requirements: User Stories• Each story is a Each story is a short description of the behavior of the short description of the behavior of the

systemsystem, from the viewpoint of the user, from the viewpoint of the user

• The system is specified entirely through storiesThe system is specified entirely through stories

Page 56: Apt agile methodology

www.orangeandbronze.com

Capturing Requirements: User StoriesCapturing Requirements: User Stories

Page 57: Apt agile methodology

www.orangeandbronze.com

Iterative DevelopmentIterative Development• What is an iteration?What is an iteration?

→ A A completecomplete development cycle development cycle• Planning, Designing, Implementation, Testing

→ Customer selects featuresCustomer selects features to implement at the start of to implement at the start of the iterationthe iteration

→ By the end of an iteration, the system should have By the end of an iteration, the system should have acquired acquired additional business behavioradditional business behavior that implements that implements business value to the customerbusiness value to the customer

Page 58: Apt agile methodology

www.orangeandbronze.com

VelocityVelocity• The number of IPDs (Ideal Programming Days) The number of IPDs (Ideal Programming Days)

completed per iterationcompleted per iteration

• Used to determine the Used to determine the amount the work that can be amount the work that can be accomplishedaccomplished by the team or an individual in an by the team or an individual in an iterationiteration

• The The pacepace of the team or individual of the team or individual

Page 59: Apt agile methodology

www.orangeandbronze.com

Software Release CycleSoftware Release Cycle• Software is built Software is built incrementallyincrementally by iteration by iteration

• Each iteration lasts from Each iteration lasts from 1 – 3 weeks1 – 3 weeks

• Customer defines the releaseCustomer defines the release→ Customer decides what to release at the end of one or Customer decides what to release at the end of one or

more iterationsmore iterations

Page 60: Apt agile methodology

www.orangeandbronze.com

Customer Defines ReleaseCustomer Defines Release• In each release cycle, the customer controls the scope:In each release cycle, the customer controls the scope:

→ What to do, what to deferWhat to do, what to defer→ Provide the best possible release by due dateProvide the best possible release by due date

• Towards or at the end of each iteration, the customer Towards or at the end of each iteration, the customer decides whether enough functionality has been added decides whether enough functionality has been added to warrant a releaseto warrant a release

Page 61: Apt agile methodology

www.orangeandbronze.com

Common Problem: Too Much to DoCommon Problem: Too Much to Do• Not Enough TimeNot Enough Time

→ No solution: Can't create timeNo solution: Can't create time

• Too Much to DoToo Much to Do→ Have solutions:Have solutions:• Prioritize and defer some things

• Reduce the size of the things you need to do

• Ask someone else to do things

Page 62: Apt agile methodology

www.orangeandbronze.com

Planning the BudgetPlanning the Budget• The Items: The Items: StoriesStories

• The Cost: The Cost: EstimatesEstimates

• The Budget: The Budget: Team VelocityTeam Velocity

• The Constraints: The Constraints: Business and technology constraints Business and technology constraints discovereddiscovered

Page 63: Apt agile methodology

www.orangeandbronze.com

Planning the ReleasePlanning the Release• CustomerCustomer: Write enough stories to define a successful : Write enough stories to define a successful

product or systemproduct or system

• Development TeamDevelopment Team: Estimate effort of implementing : Estimate effort of implementing each storyeach story

• CustomerCustomer: Prioritize stories based on business value : Prioritize stories based on business value and difficultyand difficulty

• Development TeamDevelopment Team: Divide stories into iterations based : Divide stories into iterations based on team velocity (in previous iterations)on team velocity (in previous iterations)

Page 64: Apt agile methodology

www.orangeandbronze.com

XP Development CycleXP Development Cycle

Page 65: Apt agile methodology

www.orangeandbronze.com

XP Basic ActivitiesXP Basic Activities• CodingCoding

• TestingTesting

• ListeningListening

• DesigningDesigning

Page 66: Apt agile methodology

www.orangeandbronze.com

XP Core PracticesXP Core Practices

Page 67: Apt agile methodology

www.orangeandbronze.com

XP Core PracticesXP Core Practices• Fine Scale FeedbackFine Scale Feedback

→ Pair ProgrammingPair Programming→ Planning GamePlanning Game→ Test Driven DevelopmentTest Driven Development→ Whole TeamWhole Team

• Continuous ProcessContinuous Process→ Continuous IntegrationContinuous Integration→ Small ReleasesSmall Releases→ Refactoring or Design ImprovementRefactoring or Design Improvement

Page 68: Apt agile methodology

www.orangeandbronze.com

XP Core PracticesXP Core Practices• Shared UnderstandingShared Understanding

→ Coding StandardsCoding Standards→ Collective Code OwnershipCollective Code Ownership→ Simple DesignSimple Design→ System MetaphorSystem Metaphor

• Programmer WelfareProgrammer Welfare→ Sustainable PaceSustainable Pace

Page 69: Apt agile methodology

www.orangeandbronze.com

XP Core PracticesXP Core Practices• Fine Scale FeedbackFine Scale Feedback

→ Pair ProgrammingPair Programming• Ensures all production code is reviewed by at least one

programmer

• Results in better design, better testing, and better code

• A good way to pass knowledge

Page 70: Apt agile methodology

www.orangeandbronze.com

XP Core PracticesXP Core Practices• Fine Scale FeedbackFine Scale Feedback

→ Planning GamePlanning Game• Addresses two key questions:

– What should/will be accomplished by the due date?

– What to do next?

• Emphasis on steering the project

• Release Planning– Desired features are determined and estimates are done

• Iteration Planning– Features are broken down into tasks

– Costs are estimated in a finer level of detail

Page 71: Apt agile methodology

www.orangeandbronze.com

XP Core PracticesXP Core Practices• Fine Scale FeedbackFine Scale Feedback

→ Test Driven DevelopmentTest Driven Development• Aims to improve the system; always notching forward,

never backsliding

• It's not enough to write tests, you have to run them

• 100% or bust

• Provides immediate feedback

Page 72: Apt agile methodology

www.orangeandbronze.com

XP Core PracticesXP Core Practices• Fine Scale FeedbackFine Scale Feedback

→ Whole TeamWhole Team• Everyone on an XP team contributes in any way they can

• The best teams have no specialists, only general contributors with special skill (Jeffries, 2001)

Page 73: Apt agile methodology

www.orangeandbronze.com

XP Core PracticesXP Core Practices• Continuous ProcessContinuous Process

→ Continuous IntegrationContinuous Integration• It is encouraged to integrate multiple times a day

• Infrequent integration usually leads to “integration hell”

Page 74: Apt agile methodology

www.orangeandbronze.com

XP Core PracticesXP Core Practices• Continuous ProcessContinuous Process

→ Small ReleasesSmall Releases• The team releases running, tested software, delivering

business value chosen by the customer, every iteration (Jeffries, 2001)

• Ultimate goal is to have software that is visible, which is given to the customer at the end of each iteration

Page 75: Apt agile methodology

www.orangeandbronze.com

XP Core PracticesXP Core Practices• Continuous ProcessContinuous Process

→ RefactoringRefactoring or or Design ImprovementDesign Improvement• Focuses on:

– Removal of duplicate / obsolete code

– Increasing cohesion

– Decreasing coupling

““High cohesion and low coupling are recognized as High cohesion and low coupling are recognized as hallmarks of well-designed code for at least thirty years.”hallmarks of well-designed code for at least thirty years.”

-- Ron Jeffries-- Ron Jeffries

Page 76: Apt agile methodology

www.orangeandbronze.com

XP Core PracticesXP Core Practices• Share UnderstandingShare Understanding

→ Coding StandardsCoding Standards• All the code looks as if it were written by a single – very

competent – individual (Jeffries, 2001)

• All the code looks familiar to the developers

Page 77: Apt agile methodology

www.orangeandbronze.com

XP Core PracticesXP Core Practices• Share UnderstandingShare Understanding

→ Collective Code OwnershipCollective Code Ownership• Code gets the benefit of many people's attention,

increasing code quality and reducing defects (Jeffries, 2001)

Page 78: Apt agile methodology

www.orangeandbronze.com

XP Core PracticesXP Core Practices• Shared UnderstandingShared Understanding

→ Simple DesignSimple Design• Start simple, maintain through programmer testing and

design improvement / refactoring

→ System MetaphorSystem Metaphor• A simple evocative description of how the program

works (Jeffries, 2001)

• Provides a common vision for the team

• A way to get everyone on the same page

Page 79: Apt agile methodology

www.orangeandbronze.com

XP Core PracticesXP Core Practices• Example of a Metaphor:Example of a Metaphor:

““This program works like a This program works like a hive of bees, going out for hive of bees, going out for pollen and bringing it back pollen and bringing it back to the hive.”to the hive.”

→→ Description for an agent-Description for an agent-based information retrieval based information retrieval systemsystem

(Jeffries, 2001)(Jeffries, 2001)

(Roberts, 2006)(Roberts, 2006)

Page 80: Apt agile methodology

www.orangeandbronze.com

XP Core PracticesXP Core Practices• Programmer WelfareProgrammer Welfare

→ Sustainable PaceSustainable Pace• XP teams work at a pace that can be sustained

indefinitely

• Maximize productivity week in and week out

• XP teams are “in it to win it, not to die” (Jeffries, 2001)

Page 81: Apt agile methodology

www.orangeandbronze.com

Strong Opinions Against XPStrong Opinions Against XP• Unstable RequirementsUnstable Requirements

→ Informal change requests may lead to costly rework and Informal change requests may lead to costly rework and scope creepscope creep

• User ConflictsUser Conflicts→ Dependence on programmers being able to assume a Dependence on programmers being able to assume a

unified client viewpointunified client viewpoint

Page 82: Apt agile methodology

www.orangeandbronze.com

Strong Opinions Against XPStrong Opinions Against XP• Requirements are expressed as automated acceptance Requirements are expressed as automated acceptance

tests rather than specification documentstests rather than specification documents

• Requirements are defined incrementally, rather than Requirements are defined incrementally, rather than trying to get them all in advancetrying to get them all in advance

• Developers are required to work in pairsDevelopers are required to work in pairs

Page 83: Apt agile methodology

www.orangeandbronze.com

Strong Opinions Against XPStrong Opinions Against XP• No “No “Big Design Up FrontBig Design Up Front””

→ Most design activities take place on the flyMost design activities take place on the fly

• A customer representative is attached to the projectA customer representative is attached to the project

• ScalabilityScalability→ Historically, XP only works in teams of twelve or fewer Historically, XP only works in teams of twelve or fewer

peoplepeople

Page 84: Apt agile methodology

www.orangeandbronze.com

Benefits of XPBenefits of XP• Allows one to be more Allows one to be more AgileAgile

• Focus on Focus on programmingprogramming

• Enables Enables quicker delivery of quality softwarequicker delivery of quality software than than traditional methodstraditional methods

• Enables Enables more flexibilitymore flexibility than traditional methods than traditional methods

Page 85: Apt agile methodology

www.orangeandbronze.com

ReferencesReferences• Beck, K., Beedle, M., Bennekum, A., Cockburn, A., Beck, K., Beedle, M., Bennekum, A., Cockburn, A.,

Cunningham, W., Fowler, M., et al. (2001) Cunningham, W., Fowler, M., et al. (2001) Manifesto for Manifesto for Agile Software Development.Agile Software Development. Retrieved from Retrieved from http://agilemanifesto.orghttp://agilemanifesto.org

• Clark, T., Vizdos, M. (2006) Clark, T., Vizdos, M. (2006) The Classic Story of the Pig The Classic Story of the Pig and Chicken.and Chicken. Retrieved from Retrieved from http://implementingscrum.comhttp://implementingscrum.com

• Jeffries, R. (2001) Jeffries, R. (2001) What is Extreme Programming?What is Extreme Programming? Retrieved from Retrieved from http://www.xprogramming.com/xpmag/whatisxp.htmhttp://www.xprogramming.com/xpmag/whatisxp.htm

Page 86: Apt agile methodology

www.orangeandbronze.com

ReferencesReferences• Landingin, R. (2008) Landingin, R. (2008) Agile Methodology WorkshopAgile Methodology Workshop

[Powerpoint Slides].[Powerpoint Slides].

• Patel, N. (2006) Patel, N. (2006) Agile MethodsAgile Methods [Powerpoint Slides]. [Powerpoint Slides]. Retrieved from Retrieved from http://greenbay.usc.edu/csci577/spring2006/site/presentation/Patel.ppthttp://greenbay.usc.edu/csci577/spring2006/site/presentation/Patel.ppt

• Roberts, H. (Artist). (2006) Roberts, H. (Artist). (2006) Bees swarming around a Bees swarming around a beehivebeehive [Digital Image]. Retrieved July 31, 2008 from [Digital Image]. Retrieved July 31, 2008 from http://bluebison.net/sketchbook/2006/0906/bees.pnghttp://bluebison.net/sketchbook/2006/0906/bees.png