cse 403, spring 2008, alverson agile development practices

18
CSE 403, Spring 2008, Alverson Agile Development Practices

Upload: marylou-sanders

Post on 17-Jan-2016

221 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CSE 403, Spring 2008, Alverson Agile Development Practices

CSE 403, Spring 2008, Alverson

Agile Development Practices

Page 2: CSE 403, Spring 2008, Alverson Agile Development Practices

Reading summaries

CSE 403, Spring 2008, Alverson

Tips:• 1/3 page max summary • Relate to project• Opinion on concepts

Page 3: CSE 403, Spring 2008, Alverson Agile Development Practices

Project teams

CSE 403, Spring 2008, Alverson

Page 4: CSE 403, Spring 2008, Alverson Agile Development Practices

CSE 403, Spring 2008, Alverson

Outline

Agile processes One last lifecycle – XP Team time

Page 5: CSE 403, Spring 2008, Alverson Agile Development Practices

CSE 403, Spring 2008, Alverson

Agile principles

Agility is: Observing and Adapting to your environment . Moving

faster than things that will harm your project Keeping up with relevant changes

o In requirements o In priorities o In environmento In budget

Goal of Agility - develop software in the face of changing environment and constrained resources

Page 6: CSE 403, Spring 2008, Alverson Agile Development Practices

CSE 403, Spring 2008, Alverson

Agile principles

Satisfy the customer through early and continuous deliveryo Studies show a strong correlation between final quality and

frequent deliveries of increasing functionality. More frequent == higher quality.

Deliver working software frequentlyo Working software is the primary measure of progress

Cost/Benefit?

Page 7: CSE 403, Spring 2008, Alverson Agile Development Practices

CSE 403, Spring 2008, Alverson

Agile principles

Welcome changing requirements, even late in development

o Statement of attitudeo Agile team works hard to keep the structure of software

flexible

Page 8: CSE 403, Spring 2008, Alverson Agile Development Practices

CSE 403, Spring 2008, Alverson

Agile principles

Customers, developers, stakeholders work together dailyo An agile project must be continuously guided

Page 9: CSE 403, Spring 2008, Alverson Agile Development Practices

CSE 403, Spring 2008, Alverson

Agile Principles

Build projects around motivated individuals

o Other things may need to change to enable this

Promote self-organizing teams, and teams that reflect and adjust as needed

Page 10: CSE 403, Spring 2008, Alverson Agile Development Practices

CSE 403, Spring 2008, Alverson

Agile Principles

Simplicity is essentialo Take the simplest path that is consistent with the

goals (and be confident that it will be easy to change if needed)

o YAGNI (you ain’t gonna need it) (GA: shortsighted?)

Page 11: CSE 403, Spring 2008, Alverson Agile Development Practices

CSE 403, Spring 2008, Alverson

Standish data argues for simplicity…

54% of features were rarely or never used! That effort could have been productively spent elsewhere! (1994 report)

Never 45%

Rarely 19%

Always 7%

Often 13%

Sometimes 16%

Page 12: CSE 403, Spring 2008, Alverson Agile Development Practices

Continuous attention to technical excellenceHigh quality is the key to high speed“Do no harm” creed Plug for refactoring

CSE 403, Spring 2008, Alverson

Agile Principles

Page 13: CSE 403, Spring 2008, Alverson Agile Development Practices

CSE 403, Spring 2008, Alverson

Continuous Delivry

WelcomChanging Req

Stakeholders work together daily

Motivatedindivid, self org teams

Sustainable development

Techexcellence

Simplicty

CodeFix

Water-fall

Spiral

Staged Delivery

Evolutionary

Page 14: CSE 403, Spring 2008, Alverson Agile Development Practices

CSE 403, Spring 2008, Alverson

“Features” are the control variable of the triangleo Can deliver less, but on time and on budget

Expert customer is part of the team, involved in all stages; No complete up-front analysis and design

Extreme Programming

FEATURES

TIME RESOURCES

Page 15: CSE 403, Spring 2008, Alverson Agile Development Practices

CSE 403, Spring 2008, Alverson

Development cycle (2 week period)o Meet with client to elicit requirementso Planning – break requirements into taskso Implementation

Write tests first Simplest possible design to pass the tests Can refactor occasionally

o Evaluate progress

Extreme Programming

Page 16: CSE 403, Spring 2008, Alverson Agile Development Practices

CSE 403, Spring 2008, Alverson

Development cycle (2 week period)o Meet with client to elicit requirementso Planning – break requirements into taskso Implementation

Write tests first Simplest possible design to pass the tests Can refactor occasionally

o Evaluate progress

Extreme Programming

Feels a little like evolutionary prototyping …

Focuses on employing a number of Agile practices

Feels a little like evolutionary prototyping …

Focuses on employing a number of Agile practices

Page 17: CSE 403, Spring 2008, Alverson Agile Development Practices

CSE 403, Spring 2008, Alverson

Pair Programming

Page 18: CSE 403, Spring 2008, Alverson Agile Development Practices

CSE 403, Spring 2008, Alverson

When to use XPUse for:

o A dynamic project done in small teamso Projects with requirements prone to changeo Customer is available

Not for:o Requirements are truly fixedo Cost of late changes is very higho Customer is not available