DOC PREVIEW
CU-Boulder CSCI 5828 - Agile Development and Extreme Programming

This preview shows page 1-2-3-4-28-29-30-31-57-58-59-60 out of 60 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 60 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 60 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 60 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 60 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 60 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 60 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 60 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 60 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 60 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 60 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 60 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 60 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 60 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

Agile Development and Extreme ProgrammingCredit where Credit is DueGoals for this lectureOutlineAgile Development (I)Agile Development (II)Agile Development (III)Deliver Early and Often to Satisfy CustomerWelcome Changing RequirementsFace to Face Communication is BestMeasure Progress against Working SoftwareSimplicity is EssentialThe Other SevenSlide 14Extreme ProgrammingXP PracticesCustomer Team MemberUser Stories (I)User Stories (II)Short Cycles (I)Short Cycles (II)Acceptance TestsPair ProgrammingTest-Driven DevelopmentCollective OwnershipContinuous IntegrationSustainable PaceOpen WorkspaceThe Planning GameSimple DesignRefactoringMetaphor (I)Metaphor (II)Metaphor (III)Benefits of XPCriticisms of XPSlide 37Agile Methods: Perspective on DesignBad DesignGood Design PrinciplesSingle Responsibility PrincipleOpen-Closed PrincipleLiskov Substitution PrincipleExample (I)Example (II)Example (III)Example (IV)Dependency-Inversion PrincipleWhy “inversion”?Solution (I)Solution (II)Inversion of OwnershipDepend on AbstractionInterface Segregation PrincipleSlide 55Slide 56Slide 57Slide 58SummaryComing Up NextAgile Development and Extreme ProgrammingCSCI 5828: Foundations of Software EngineeringLecture 24Kenneth M. AndersonApril 12, 2007 © University of Colorado, 2007 2Credit where Credit is DueThe material for this lecture is based on content from “Agile Software Development: Principles, Patterns, and Practices” by Robert C. MartinAs such, some of this material is copyright © Prentice Hall, 2003April 12, 2007 © University of Colorado, 2007 3Goals for this lecture(Very) Briefly introduce the concepts of Agile Design and Extreme ProgrammingAgile Design is a design frameworkExtreme Programming is one way to “implement” agile designOther agile life cycles include SCRUM, Crystal, feature-driven development, and adaptive software developmentSee http://www.agilealliance.org/ for pointersApril 12, 2007 © University of Colorado, 2007 4OutlineBackground on Agile MethodsExtreme ProgrammingAgile Perspective on Software DesignApril 12, 2007 © University of Colorado, 2007 5Agile Development (I)Agile development is a response to the problems of traditional “heavyweight” software development processestoo many artifactstoo much documentationinflexible planslate, over budget, and buggy softwareApril 12, 2007 © University of Colorado, 2007 6Agile Development (II)A manifesto (from the Agile Alliance)“We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to valueindividuals and interactions over processes and toolsworking software over comprehensive documentationcustomer collaboration over contract negotiationresponding to change over following a planThat is, while there is value in the items on the right, we value the items on the left moreApril 12, 2007 © University of Colorado, 2007 7Agile Development (III)From this statement of values, agile development has identified twelve principles that distinguish agile practices from traditional software life cyclesLets look at five of themDeliver Early and Often to Satisfy CustomerWelcome Changing RequirementsFace to Face Communication is BestMeasure Progress against Working SoftwareSimplicity is EssentialApril 12, 2007 © University of Colorado, 2007 8Deliver Early and Often to Satisfy CustomerMIT Sloan Management Review published an analysis of software development practices in 2001Strong correlation between quality of software system and the early delivery of a partially functioning systemthe less functional the initial delivery the higher the quality of the final delivery!Strong correlation between final quality of software system and frequent deliveries of increasing functionalitythe more frequent the deliveries, the higher the final quality!Customers may choose to put initial/intermediate systems into production use; or they may simply review functionality and provide feedbackApril 12, 2007 © University of Colorado, 2007 9Welcome Changing RequirementsWelcome change, even late in the project!Statement of AttitudeDevelopers in agile projects are not afraid of change; changes are good since it means our understanding of the target domain has increasedPlus, agile development practices (such as refactoring) produce systems that are flexible and thus easy to changeApril 12, 2007 © University of Colorado, 2007 10Face to Face Communication is BestIn an agile project, people talk to each other!The primary mode of communication is conversationthere is no attempt to capture all project information in writingartifacts are still created but only if there is an immediate and significant need that they satisfythey may be discarded, after the need has passedApril 12, 2007 © University of Colorado, 2007 11Measure Progress against Working SoftwareAgile projects measure progress by the amount of software that is currently meeting customer needsThey are 30% done when 30% of required functionality is working AND deployedProgress is not measured in terms of phases or creating documentsApril 12, 2007 © University of Colorado, 2007 12Simplicity is EssentialThis refers to the art of maximizing the amount of work NOT doneAgile projects always take the simplest path consistent with their current goalsThey do not try to anticipate tomorrow’s problems; they only solve today’s problemsHigh-quality work today should provide a simple and flexible system that will be easy to change tomorrow if the need arisesApril 12, 2007 © University of Colorado, 2007 13The Other SevenThe other seven principles areDeliver working software frequentlyStakeholders and developers work together dailyBuild projects around motivated individualsAgile processes promote sustainable development Continuous attention to technical excellence and good design enhances agilityAgile team members work on all aspects of the projectAt regular intervals, the team reflects on how to become more effectiveApril 12, 2007 © University of Colorado, 2007 14OutlineBackground on Agile MethodsExtreme ProgrammingAgile Perspective on Software DesignApril 12, 2007 © University of Colorado, 2007 15Extreme ProgrammingExtreme Programming (XP) takes commonsense software engineering principles and practices to extreme levelsFor instance“Testing is


View Full Document

CU-Boulder CSCI 5828 - Agile Development and Extreme Programming

Documents in this Course
Drupal

Drupal

31 pages

Deadlock

Deadlock

23 pages

Deadlock

Deadlock

23 pages

Deadlock

Deadlock

22 pages

Load more
Download Agile Development and Extreme Programming
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Agile Development and Extreme Programming and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Agile Development and Extreme Programming 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?