extreme programming in agile development

17
Extreme Programming in Agile Development Presented by: Nidhi Singh

Upload: nidhi-singh

Post on 17-Dec-2014

115 views

Category:

Education


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Extreme programming in Agile Development

Extreme Programming in Agile Development

Presented by:Nidhi Singh

Page 2: Extreme programming in Agile Development

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?

Page 3: Extreme programming in 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

Page 4: Extreme programming in Agile Development

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.

Page 5: Extreme programming in Agile Development

Agile is response to change.

Charecterized by quickness and ease of movements; Nimble

What is Agile

Page 6: Extreme programming in Agile Development

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

Page 7: Extreme programming in Agile Development

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

Page 8: Extreme programming in Agile Development

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

Page 9: Extreme programming in Agile Development

''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

Page 10: Extreme programming in Agile Development

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

Page 11: Extreme programming in Agile Development
Page 12: Extreme programming in Agile Development

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

Page 13: Extreme programming in Agile Development

XP Practices- a road map

Page 14: Extreme programming in Agile Development

XP emphasizes iteration

Page 15: Extreme programming in Agile Development

Test driven plan

Page 16: Extreme programming in Agile Development

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

Page 17: Extreme programming in Agile Development

Thank you