extreme programming in agile development

Post on 17-Dec-2014

116 Views

Category:

Education

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

 

TRANSCRIPT

Extreme Programming in Agile Development

Presented by:Nidhi Singh

o Waterfall Model required a complete analysis of user requirements.

Months of intense interaction with users and customers

programmers implement and the complete system is tested and shipped.

Why a need for agile development?

oBut users change their minds.

After months, of collecting requirements users still not sure of what hey want.

Requirements tend to change mid-development and difficult to stop the momentum of the project to accommodate the change.

Copious amounts of documentation need to be kept up to date to accommodate even small changes

o CMM focuses on turning software development into repeatable, defined, and

predictable processes, but were found that many of them were, in fact,

largely unpredictable and unrepeatable because

Applicable first principles are not present. The process is only beginning to be understood.

The process is complex. The process is changing and unpredictable.

Agile is response to change.

Charecterized by quickness and ease of movements; Nimble

What is Agile

Individuals and interactions over processes and tools.

Working software over comprehensive documentation.

Customer collaboration over contract negotiation.

Responding to change over following a plan.

Agile Manifesto

Designed to focus on four things:◦Coding, Testing, Listening, Designing

Feedback is built into the development practices, not bolted on.

No phases: you do all four of those things all the time.

Extreme Programming

What does lack of communication do to projects?

XP emphasizes value of communication in many of its practices: • On-site customer, user stories, pair programming, collective ownership (popular with open source developers), daily standup meetings, etc.

Communication

''Do the simplest thing that could possibly work'' (DTSTTCPW) principle.(Elsewhere known as KISS)

A coach may say DTSTTCPW when he sees an XP developer doing something needlessly complicated

YAGNI principle (''You ain’t gonna need it'')

How do simplicity and communication support each other?

Simplicity

Feedback at different time scalesUnit tests tell programmers status of the system

When customers write new user stories, programmers estimate time required to deliver changes

Programmers produce new releases every 2-3 weeks for customers to review

How does valuing feedback turn the waterfall model upside down?

Feedback

The courage to communicate and accept feedback

The courage to throw code away (prototypes)

The courage to refactor the architecture of a system

Do you have what it takes?

Courage

XP Practices- a road map

XP emphasizes iteration

Test driven plan

Extreme programming includes practices such as systematic testing, continuous improvement and customer involvement.

Customers are involved in developing requirements which are expressed as simple scenarios.

The approach to testing in XP is a particular strength where executable tests are developed before the code is written.

Key problems with XP include difficulties of getting representative customers and problems of architectural design.

KeyPoints

Thank you

top related