agile web development c. daniel chase university of colorado at boulder

15
Agile Web Agile Web Development Development C. Daniel Chase C. Daniel Chase University of Colorado at Boulder University of Colorado at Boulder

Upload: barry-dickerson

Post on 27-Dec-2015

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Agile Web Development C. Daniel Chase University of Colorado at Boulder

Agile Web DevelopmentAgile Web DevelopmentC. Daniel ChaseC. Daniel ChaseUniversity of Colorado at BoulderUniversity of Colorado at Boulder

Page 2: Agile Web Development C. Daniel Chase University of Colorado at Boulder

Manifesto for Agile Manifesto for Agile Software DevelopmentSoftware Development

We are uncovering better ways of developingsoftware by doing it and helping others do it.Through this work we have come to value: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 interactionsIndividuals and interactions over processes and toolsover processes and toolsWorking softwareWorking software over comprehensive documentation over comprehensive documentationCustomer collaborationCustomer collaboration over contract negotiation over contract negotiationResponding to Responding to

changechange over following a plan over following a planThat is, while there is value in the items onthe right, we value the items on the left more.That is, while there is value in the items onthe right, we value the items on the left more.

http://agilemanifesto.org//February 11-13, February 11-13,

20012001

Page 3: Agile Web Development C. Daniel Chase University of Colorado at Boulder

Principles behind the Principles behind the Agile ManifestoAgile ManifestoWe follow these principles:We follow these principles:

Our highest priority is to satisfy the customer Our highest priority is to satisfy the customer through early and continuous delivery of through early and continuous delivery of valuable software.valuable software.

Welcome changing requirements, even late in Welcome changing requirements, even late in development. Agile processes harness change development. Agile processes harness change for the customer's competitive advantage.for the customer's competitive advantage.

Deliver working software frequently, from a Deliver working software frequently, from a couple of weeks to a couple of months, with a couple of weeks to a couple of months, with a preference to the shorter timescale. preference to the shorter timescale.

Page 4: Agile Web Development C. Daniel Chase University of Colorado at Boulder

Principles behind the Principles behind the Agile ManifestoAgile Manifesto

Business people and developers must work Business people and developers must work together daily throughout the project.together daily throughout the project.

Build projects around motivated individuals. Build projects around motivated individuals. Give them the environment and support they Give them the environment and support they need, and trust them to get the job done.need, and trust them to get the job done.

The most efficient and effective method of The most efficient and effective method of conveying information to and within a conveying information to and within a development team is face-to-face development team is face-to-face conversation.conversation.

Working software is the primary measure of Working software is the primary measure of progress. progress.

Page 5: Agile Web Development C. Daniel Chase University of Colorado at Boulder

Principles behind the Principles behind the Agile ManifestoAgile Manifesto

Agile processes promote sustainable Agile processes promote sustainable development. The sponsors, developers, and development. The sponsors, developers, and users should be able to maintain a constant users should be able to maintain a constant pace indefinitely.pace indefinitely.

Continuous attention to technical excellence Continuous attention to technical excellence and good design enhances agility.and good design enhances agility.

Simplicity--the art of maximizing the amount of Simplicity--the art of maximizing the amount of work not done--is essential. work not done--is essential.

Page 6: Agile Web Development C. Daniel Chase University of Colorado at Boulder

Principles behind the Principles behind the Agile ManifestoAgile Manifesto

The best architectures, requirements, and The best architectures, requirements, and designs emerge from self-organizing teams.designs emerge from self-organizing teams.

At regular intervals, the team reflects on how At regular intervals, the team reflects on how to become more effective, then tunes and to become more effective, then tunes and adjusts its behavior accordingly. adjusts its behavior accordingly.

Page 7: Agile Web Development C. Daniel Chase University of Colorado at Boulder

AuthorsAuthorsAgile AllianceAgile Alliance

Kent BeckKent Beck

Mike BeedleMike Beedle

Arie van BennekumArie van Bennekum

Alistair CockburnAlistair Cockburn

Ward CunninghamWard Cunningham

Martin FowlerMartin Fowler

James GrenningJames Grenning

Jim HighsmithJim Highsmith

Andrew HuntAndrew Hunt

Ron JeffriesRon Jeffries

Jon KernJon Kern

Brian MarickBrian Marick

Robert C. MartinRobert C. Martin

Steve MellorSteve Mellor

Ken SchwaberKen Schwaber

Jeff SutherlandJeff Sutherland

Dave ThomasDave Thomas

Page 8: Agile Web Development C. Daniel Chase University of Colorado at Boulder

Agile MethodologiesAgile Methodologies

Agile ModelingAgile Modeling

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

Agile Data MethodAgile Data Method

Dynamic Systems Development Method (DSDM)Dynamic Systems Development Method (DSDM)

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

Extreme programming (XP)Extreme programming (XP)

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

ScrumScrum

Page 9: Agile Web Development C. Daniel Chase University of Colorado at Boulder

Agile Web TechniquesAgile Web Techniques

Source Code ManagementSource Code Management

Test Driven DevelopmentTest Driven Development

Unit TestingUnit Testing

Functional TestingFunctional Testing

Continuous IntegrationContinuous Integration

Design PatternsDesign Patterns

RefactoringRefactoring

Page 10: Agile Web Development C. Daniel Chase University of Colorado at Boulder

Source Code Source Code ManagementManagement

Version ControlVersion Control

Release trackingRelease tracking

Development vs Production code linesDevelopment vs Production code lines

Page 11: Agile Web Development C. Daniel Chase University of Colorado at Boulder

Test Driven Test Driven DevelopmentDevelopment

1.1. What does this section of code do?What does this section of code do?

2.2. Write the Test first!Write the Test first!

3.3. Write code to pass the testWrite code to pass the test

4.4. Repeat 1-3 as you add more operationsRepeat 1-3 as you add more operations

Page 12: Agile Web Development C. Daniel Chase University of Colorado at Boulder

Test Driven Test Driven DevelopmentDevelopment

Unit TestingUnit Testing

Component levelComponent level

Finds basic logic & syntax errorsFinds basic logic & syntax errors

Functional TestingFunctional Testing

Application levelApplication level

Finds business rule & systemic problemsFinds business rule & systemic problems

Page 13: Agile Web Development C. Daniel Chase University of Colorado at Boulder

Continuous IntegrationContinuous Integration

Automated Check-outAutomated Check-out

Automated BuildAutomated Build

Automated TestingAutomated Testing

Immediate Feedback for failuresImmediate Feedback for failures

Page 14: Agile Web Development C. Daniel Chase University of Colorado at Boulder

RefactoringRefactoring

Refactoring improves the readability of codeRefactoring improves the readability of code

Does not fix bugs or add new functionality!Does not fix bugs or add new functionality!

Code smells (Duplicate code, large class or Code smells (Duplicate code, large class or method...)method...)

Test first!Test first!

Refactor codeRefactor code

Retest--should pass!Retest--should pass!

Page 15: Agile Web Development C. Daniel Chase University of Colorado at Boulder

Design PatternsDesign Patterns

Most problems have been solved before and Most problems have been solved before and solutions optimizedsolutions optimized

Using standard constructs makes it easier for Using standard constructs makes it easier for both you & others to maintain codeboth you & others to maintain code

Object Oriented Programming (OOP)Object Oriented Programming (OOP)